温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。
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的新功能》。本文Fayson主要介绍如何将CDH从Oracle JDK迁移到OpenJDK。
JDK的迁移需要重启整个集群,所以对于所有主机的重启你需要规划停机时间。如果你的集群启用了HDFS HA,可以使用滚动重启而不用规划停机时间。
- 内容概述
1.CDH各版本的JDK支持说明
2.迁移JDK
3.检查JDK的使用版本
4.组件功能校验
5.总结
- 测试环境
1.CM和CDH版本为5.16.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-13-38 shell]# sh ssh_do_all.sh node.list "yum list installed |grep oracle"
可以注意到Fayson集群的的5个节点既安装了Oracle JDK1.7也安装了1.8。
2.我们在Cloudera Manager的页面上确认集群目前在使用的JDK版本。进入Cloudera Manager主页,然后点击“Support > About”。
集群使用的JDK是Oracle JDK1.7
3.安装Redhat自带的OpenJDK到各台节点,使用yum命令进行安装。
[root@ip-172-31-13-38 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<