温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。


1.文档编写目的




大家都知道在安装CDH时默认安装的JDK版本为jdk1.7.0_67,部分企业开发环境为JDK8版本,这个时候可能会出现在本地开发的应用在集群中无法正常运行。那么如何将CDH集群中的JAVA版本升级至jdk8呢?本篇文章主要讲述如何将CDH集群的JAVA版本升级至JDK8。


  • 内容概述

1.准备需要升级的JDK8版本

2.部署准备好的JDK8到集群所有节点

3.Cloudera Manager配置JAVA_HOME

4.验证是否生效


  • 测试环境

1.CM和CDH版本为5.13

2.采用root用户操作

3.CentOS6.5


  • 前置条件

1.CM和CDH5.3和更高版本

2.集群未启用Kerberos


2.CM和CDH支持的JDK版本




CDH支持JDK包括JDK7以及JDK8Cloudera提供相应JDK包,并可以通过CM自动在集群中部署安装。CDH的版本都能提供对Oracle JDK7的支持,而JDK8的支持则需要CDH5.3之后的版本。目前在CDH发行版中自带的JDK版本为1.7.0_67版本。参考文档:

https://www.cloudera.com/documentation/enterprise/release-notes/topics/rn_consolidated_pcm.html#pcm_jdk

JDK7版本支持情况:

如何将CDH集群JAVA升级至JDK8_java


JDK8版本支持情况:

如何将CDH集群JAVA升级至JDK8_kafka_02

建议使用Cloudera官网推荐的JDK版本。


3.JDK8安装包准备




Fayson这里使用Cloudera官网推荐的最新版本(jdk1.8u131),根据自己操作系统的版本选择JDK。

1.在oracle官网下载JDK8的安装包

下载地址:

http://www.oracle.com/technetwork/java/javase/downloads/java-archive-javase8-2177648.html

如何将CDH集群JAVA升级至JDK8_kafka_03

如何将CDH集群JAVA升级至JDK8_cloudera_04


2.下载JDK8的无限制权限策略文件JCE

​http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html​

如何将CDH集群JAVA升级至JDK8_java_05

如何将CDH集群JAVA升级至JDK8_cloudera_06


3.解压下载的两个压缩包

[root@ip-172-31-6-148 java]# tar -zxf jdk-8u131-linux-x64.tar.gz [root@ip-172-31-6-148 java]# unzip jce_policy-8.zip [root@ip-172-31-6-148 java]# lltotal 181216-rw-r--r-- 1 root root      8409 Mar 18  2014 jce_policy-8.zipdrwxr-xr-x 8 uucp  143      4096 Mar 15  2017 jdk1.8.0_131-rw-r--r-- 1 root root 185540433 Jun 16 21:35 jdk-8u131-linux-x64.tar.gzdrwxrwxr-x 2 root root      4096 Dec 20  2013 UnlimitedJCEPolicyJDK8[root@ip-172-31-6-148 java]#

如何将CDH集群JAVA升级至JDK8_cloudera_07


4.将UnlimitedJCEPolicyJDK8目录下所有文件拷贝至

./jdk1.8.0_131/jre/lib/security目录下覆盖原有文件

[root@ip-172-31-6-148 java]# scp UnlimitedJCEPolicyJDK8/* jdk1.8.0_131/jre/lib/security/[root@ip-172-31-6-148 java]# ll jdk1.8.0_131/jre/lib/security/total 180-rw-r--r-- 1 uucp  143   4054 Mar 15  2017 blacklist-rw-r--r-- 1 uucp  143   1273 Mar 15  2017 blacklisted.certs-rw-r--r-- 1 uucp  143 113484 Mar 15  2017 cacerts-rw-r--r-- 1 uucp  143   2466 Mar 15  2017 java.policy-rw-r--r-- 1 uucp  143  33326 Mar 15  2017 java.security-rw-r--r-- 1 uucp  143     98 Mar 15  2017 javaws.policy-rw-r--r-- 1 uucp  143   3035 Nov 16 08:29 local_policy.jar
-rw-r--r-- 1 root root 7323 Nov 16 08:29 README.txt
-rw-r--r-- 1 uucp 143 0 Mar 15 2017 trusted.libraries-rw-r--r-- 1 uucp 143 3023 Nov 16 08:29 US_export_policy.jar
[root@ip-172-31-6-148 java]#

如何将CDH集群JAVA升级至JDK8_kafka_08


4.部署JDK8到集群




1.将jdk1.8.0_131目录拷贝至/usr/java目录下

[root@ip-172-31-6-148 java]# cp -r jdk1.8.0_131/ /usr/java/jdk1.8.0_131-cloudera [root@ip-172-31-6-148 java]# ll /usr/java/total 12drwxr-xr-x. 9 root root 4096 Aug 30 15:23 jdk1.6.0_31drwxr-xr-x. 8 root root 4096 Aug 30 15:19 jdk1.7.0_67-clouderadrwxr-xr-x  8 root root 4096 Nov 16 08:34 jdk1.8.0_131-cloudera[root@ip-172-31-6-148 java]#

如何将CDH集群JAVA升级至JDK8_cloudera_09


2.将jdk1.8.0_131-cloudera目录同步至集群所有节点的/usr/java目录下

scp -r /usr/java/jdk1.8.0_131-cloudera/ ip-172-31-5-190.fayson.com:/usr/java/

如何将CDH集群JAVA升级至JDK8_java_10

注意:集群中所有节点jdk1.8.0_131-cloudera的部署目录必须一致。


5.Cloudera Manager配置




1.登录Cloudera Manager的Web管理界面,进入主机列表页面

如何将CDH集群JAVA升级至JDK8_kafka_11


2.点击“配置”进入主机配置页面

如何将CDH集群JAVA升级至JDK8_cloudera_12


3.选择“高级”类别,在Java主目录输入jdk8的路径并保存配置

如何将CDH集群JAVA升级至JDK8_kafka_13


4.回到CM主页根据页面提示重启相应服务

如何将CDH集群JAVA升级至JDK8_kafka_14


重启成功

如何将CDH集群JAVA升级至JDK8_kafka_15


6.验证集群JDK8使用




1.使用“ps -ef”命令查看启动的java服务使用的jdk版本

[root@ip-172-31-5-190 ~]# ps -ef |grep java

如何将CDH集群JAVA升级至JDK8_kafka_16


2.安装Kafka3.0版本测试

Kafka3.0版本安装成功

如何将CDH集群JAVA升级至JDK8_cloudera_17


版本查看

[root@ip-172-31-9-33 kafka]# pwd/opt/cloudera/parcels/KAFKA/lib/kafka
[root@ip-172-31-9-33 kafka]# find ./libs/ -name \*kafka_\* | head -1 | grep -o '\kafka[^\n]*'kafka_2.11-0.11.0-kafka-3.0.0-test-sources.jar
[root@ip-172-31-9-33 kafka]#

如何将CDH集群JAVA升级至JDK8_kafka_18


到此为止已将CDH集群JDK版本升级为JDK8,大家可以使用JDK的一些新特性开发,也可以安装Spark2.2、Kafka3等需要JDK8以上版本支持的组件。


7.常见问题




1.Cloudera-scm-server使用的jdk版本仍然为jdk7

如何将CDH集群JAVA升级至JDK8_kafka_19


解决方法:

将CM节点的/usr/java/jdk1.7.0_67-cloudera删除

如何将CDH集群JAVA升级至JDK8_cloudera_20


重启cloudera-scm-server服务

如何将CDH集群JAVA升级至JDK8_cloudera_21



为天地立心,为生民立命,为往圣继绝学,为万世开太平。

温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。







推荐关注Hadoop实操,第一时间,分享更多Hadoop干货,欢迎转发和分享。

如何将CDH集群JAVA升级至JDK8_kafka_22

原创文章,欢迎转载,转载请注明:转载自微信公众号Hadoop实操