1.文档编写目的
大家都知道在安装CDH时默认安装的JDK版本为jdk1.7.0_67,部分企业开发环境为JDK8版本,这个时候可能会出现在本地开发的应用在集群中无法正常运行。前面Fayson也讲过《
如何将CDH集群 Java 升级至JDK8
》。本篇文章主要讲述如何将Kerberos环境下CDH集群的JAVA版本升级至JDK8。
- 内容概述
1.准备需要升级的JDK8版本
2.部署准备好的JDK8到集群所有节点
3.Cloudera Manager配置JAVA_HOME
4.验证是否生效
- 测试环境
1.CM和CDH版本为5.11.2
2.采用sudo权限的ec2-user用户操作
3.RHEL7.2
- 前置条件
1.CM和CDH5.3和更高版本
2.集群Kerberos运行正常
2.CM和CDH支持的JDK版本
CDH支持JDK包括JDK7以及JDK8。Cloudera提供相应JDK包,并可以通过CM自动在集群中部署安装。CDH的版本都能提供对Oracle JDK7的支持,而JDK8的支持则需要CDH5.3之后的版本。目前在CDH发行版中自带的JDK版本为1.7.0_67版本。参考文档:
#pcm_jdk
JDK7版本支持情况:
jdk 8版本支持情况:
建议使用Cloudera官网推荐的JDK版本。
3.JDK8安装包准备
Fayson这里使用Cloudera官网推荐的最新版本(jdk1.8u131),根据自己操作系统的版本选择JDK。
1.在oracle官网下载JDK8的安装包
下载地址:
2.安装JDK8的无限制权限策略文件JCE
3.解压下载的两个压缩包
[ec2-user@ip-172-31-22-86 jdk]# tar -zxf jdk-8u131-linux-x64.tar.gz [ec2-user@ip-172-31-22-86 jdk]# unzip jce_policy-8.zip [ec2-user@ip-172-31-22-86 jdk]# ll total 181216 -rw-r--r-- 1 root root 8409 Mar 18 2014 jce_policy-8.zip drwxr-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.gz drwxrwxr-x 2 root root 4096 Dec 20 2013 UnlimitedJCEPolicyJDK8 [ec2-user@ip-172-31-22-86 jdk]#
4.将UnlimitedJCEPolicyJDK8目录下所有文件拷贝至
./jdk1.8.0_131/ jre /lib/security目录下覆盖原有文件
[ec2-user@ip-172-31-22-86 jdk]# scp UnlimitedJCEPolicyJDK8/* jdk1.8.0_131/jre/lib/security/
注意:这里我们下载了JDK8的无限制权限策略文件JCE两个jar包,如果你的集群启用了Kerberos则必须要下载JCE的包并覆盖{JAVA_HOME}/jre/lib/security目录下的local_policy.jar和US_export_policy.jar两个包。
4.部署JDK8到集群
1.将jdk1.8.0_131目录拷贝至/usr/java目录下
[ec2-user@ip-172-31-22-86 jdk]# sudo cp -r jdk1.8.0_131/ /usr/java/jdk1.8.0_131-cloudera [ec2-user@ip-172-31-22-86 jdk]# ll /usr/java/ total 12 drwxr-xr-x. 9 root root 4096 Aug 30 15:23 jdk1.6.0_31 drwxr-xr-x. 8 root root 4096 Aug 30 15:19 jdk1.7.0_67-cloudera drwxr-xr-x 8 root root 4096 Nov 16 08:34 jdk1.8.0_131-cloudera [ec2-user@ip-172-31-22-86 jdk]#
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/
注意:集群中所有节点jdk1.8.0_131-cloudera的部署目录必须一致。
5.Cloudera Manager配置
1.登录Cloudera Manager的Web管理界面,进入主机列表页面
2.点击“配置”进入主机配置页面
3.选择“高级”类别,在Java主目录输入jdk8的路径并保存配置
4.回到CM主页根据页面提示重启相应服务
重启成功
6.验证集群JDK8环境
1.使用“ps -ef”命令查看启动的java服务使用的jdk版本
[root@ip-172-31-5-190 ~]# ps -ef |grep java
到此为止已将CDH集群JDK版本升级为JDK8,大家可以使用JDK的一些新特性开发,也可以安装Spark2.2、Kafka3等需要JDK8以上版本支持的组件。
2.Kerberos验证
[ec2-user@ip-172-31-22-86 ~]$ kinit fayson Password for fayson@CLOUDERA.COM: [ec2-user@ip-172-31-22-86 ~]$ klist Ticket cache: FILE:/tmp/krb5cc_1000 Default principal: fayson@CLOUDERA.COM Valid starting Expires Service principal 11/17/2017 11:42:16 11/18/2017 11:42:16 krbtgt/CLOUDERA.COM@CLOUDERA.COM renew until 11/24/2017 11:42:16 [ec2-user@ip-172-31-22-86 ~]$
提交一个MR作业
[ec2-user@ip-172-31-22-86 ~]$ hadoop jar /opt/cloudera/parcels/CDH/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar pi 5 5
作业执行成功
7.常见问题
1.Cloudera-scm-server使用的jdk版本仍然为jdk7
解决方法:
将CM节点的/usr/java/jdk1.7.0_67-cloudera删除
重启cloudera-scm-server服务
2.No Java JDK is detected on the host
解决方法:重启此节点的agent服务即可。
至此,如何在Kerberos环境下升级CDH的JDK完毕。注意跟非Kerberos环境下升级,其实就是需要特别注意两个jce文件的替换。
为天地立心,为生民立命,为往圣继绝学,为万世开太平。
温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。
您可能还想看
安装
CENTOS6.5安装CDH5.12.1(一)
CENTOS6.5安装CDH5.12.1(二)
CENTOS7.2安装CDH5.10和Kudu1.2(一)
CENTOS7.2安装CDH5.10和Kudu1.2(二)
如何在CDH中安装Kudu&Spark2&Kafka
如何升级Cloudera Manager和CDH
如何卸载CDH(附一键卸载github源码)
如何迁移Cloudera Manager节点
如何在Windows Server2008搭建DNS服务并配置泛域名解析
安全
如何在CDH集群启用Kerberos
如何在Hue中使用Sentry
如何在CDH启用Kerberos的情况下安装及使用Sentry(一)
如何在CDH启用Kerberos的情况下安装及使用Sentry(二)
如何在CDH未启用认证的情况下安装及使用Sentry
如何使用Sentry管理Hive外部表权限
如何使用Sentry管理Hive外部表(补充)
如何在Kerberos与非Kerberos的CDH集群BDR不可用时复制数据
Windows Kerberos客户端配置并访问CDH
数据科学
如何在CDSW中使用R绘制直方图
如何使用Python Impyla客户端连接Hive和Impala
如何在CDH集群安装Anaconda&搭建Python私有源
如何使用CDSW在CDH中分布式运行所有R代码
如何使用CDSW在CDH集群通过sparklyr提交R的Spark作业
如何使用R连接Hive与Impala
如何在Redhat中安装R的包及搭建R的私有源
如何在Redhat中配置R环境
什么是sparklyr
其他
CDH网络要求(Lenovo参考架构)
大数据售前的中年危机
如何实现CDH元数据库MySQL的主备
如何在CDH中使用HPLSQL实现存储过程
如何在Hive&Impala中使用UDF
Hive多分隔符支持示例
推荐关注Hadoop实操,第一时间,分享更多Hadoop干货,欢迎转发和分享。
原创文章,欢迎转载,转载请注明:转载自微信公众号Hadoop实操