0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8

本文详细介绍了如何将CDH6.1集群从Oracle JDK 1.8迁移至OpenJDK 1.8,包括检查当前JDK版本、安装OpenJDK、配置Cloudera Manager、验证组件功能以及处理迁移过程中可能出现的错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 文档编写目的

受前段时间Oracle官宣的从2019年1月之后将不再提供免费的的JDK商业版本的影响,Cloudera开始开发基于OpenJDK的Hadoop平台,参考Fayson之前的文章《Java收费,Hadoop怎么办?》。今年11月29日,Cloudera才发布不久的CDH5.16.1正式提供OpenJDK的支持,参考Fayson之前的文章《0466-CDH5.16.1和CM5.16.1的新功能》和《0486-如何将Kerberos的CDH5.16.1从Oracle JDK 1.8迁移至OpenJDK 1.8》。同时12月19日发布的《0487-CDH6.1的新功能》和《0488-Cloudera Manager6.1的新功能》,也开始支持OpenJDK。本文Fayson主要介绍如何将CDH6.1从Oracle JDK迁移到OpenJDK。

JDK的迁移需要重启整个集群,所以对于所有主机的重启你需要规划停机时间。如果你的集群启用了HDFS HA,可以使用滚动重启而不用规划停机时间。本文的方式会直接重启集群,如果是生产系统,需要规划停机时间。

  • 内容概述

1.CDH各版本的JDK支持说明

2.迁移JDK

3.检查JDK的使用版本

4.组件功能校验

5.总结

  • 测试环境

1.CM和CDH版本为6.1

2.采用root用户操作

3.Redhat7.4

2 CDH各版本的JDK支持说明

Cloudera Manager和CDH需要所有节点都安装了受支持的Java Development Kit (JDK) ,具体受支持的版本如下:

Cloudera Enterprise Version Supported JDK
5.3 -5.15 Oracle JDK 1.7, Oracle JDK 1.8
5.16 Oracle JDK 1.7, Oracle JDK 1.8, OpenJDK 1.8
6.0 Oracle JDK 1.8
6.1 Oracle JDK 1.8, OpenJDK 1.8

3 迁移JDK

1.首先我们确认一下CDH集群的各个节点的JDK安装情况

[root@ip-172-31-6-83 shell]# sh ssh_do_all.sh node.list "yum list installed |grep oracle"

可以注意到Fayson集群的的4个节点既安装了Oracle JDK1.7也安装了1.8。

2.我们在Cloudera Manager的页面上确认集群目前在使用的JDK版本。进入Cloudera Manager主页,然后点击“Support > About”。

集群使用的JDK是Oracle JDK1.8

3.安装Redhat自带的OpenJDK到各台节点,使用yum命令进行安装。

[root@ip-172-31-6-83 shell]# sh ssh_do_all.sh node.list "yum -y install java-1.8.0-openjdk-devel"

4.登录到Cloudera Manager节点,编辑以下目录的文件

/etc/default/cloudera-scm-server

增加以下内容:

export JAVA_HOME="/usr/lib/jvm/java-1.8.0-openjdk"

注意:OpenJDK的安装目录根据实际情况可能不同,请根据实际情况调整。

5.重启Cloudera Manager Server

[root@ip-172-31-6-83 shell]# systemctl restart cloudera-scm-server

6.查看Cloudera Manager已经使用的是OpenJDK

7.移除所有节点的Oracle JDK

[root@ip-172-31-6-83 shell]# sh ssh_do_all.sh node.list "yum -y remove oracle-j2sdk1.7"

[root@ip-172-31-6-83 shell]# sh ssh_do_all.sh node.list "yum -y remove oracle-j2sdk1.8"

8.重启Cloudera Management Service

重启整个集群服务

4 检查JDK的使用版本

1.以Cloudera Management Service的其中一个服务Alert Publisher为例进行查看,首先我们在Cloudera Manager的界面查看进程ID

到后台查看该进程的环境变量

可以发现已经是openJDK

2.再以YARN的ResourceManager服务为例查看使用的JDK版本,我们依旧到Cloudera Manager上查看进程ID

到后台终端确认ResourceManger服务的环境变量

可以看到已经是使用的OpenJDK

5 组件功能校验

1.Kerberos环境下提交MapReduce作业

[root@ip-172-31-6-83 java]# kinit fayson
JAR does not exist or is not a normal file: /opt/cloudera/parcels/CDH-6.1.0-1.cdh6.1.0.p0.770702/lib/hadoop-0.20-mapreduce/hadoop-examples.jar
[root@ip-172-31-6-83 java]# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: fayson@FAYSON.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值