温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。
Fayson的github:
https://github.com/fayson/cdhproject
提示:代码块部分可以左右滑动查看噢
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的安装目录根据实际情况可能不同,请根据实际情况调整。