如何将CDH集群JAVA升级至JDK8
温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。
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以及JDK8。Cloudera提供相应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版本支持情况:
JDK8版本支持情况:
建议使用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
2.下载JDK8的无限制权限策略文件JCE
http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html
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]# 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
[root@ip-172-31-6-148 java]#
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]#
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 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
[root@ip-172-31-6-148 java]#
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
2.安装Kafka3.0版本测试
Kafka3.0版本安装成功
版本查看
[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集群JDK版本升级为JDK8,大家可以使用JDK的一些新特性开发,也可以安装Spark2.2、Kafka3等需要JDK8以上版本支持的组件。
7.常见问题
1.Cloudera-scm-server使用的jdk版本仍然为jdk7
解决方法:
将CM节点的/usr/java/jdk1.7.0_67-cloudera删除
重启cloudera-scm-server服务
为天地立心,为生民立命,为往圣继绝学,为万世开太平。
温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。
- 通过几个Hello World感受.NET Core全新的开发体验
- ASP.NET MVC三个重要的描述对象:ControllerDescriptor
- 基于自制数据集的MobileNet-SSD模型训练
- .NET Core采用的全新配置系统[1]: 读取配置数据
- ASP.NET MVC三个重要的描述对象:ActionDescriptor
- 升级比特币区块链后,以特币已叩响成功的大门
- .NET Core采用的全新配置系统[2]: 配置模型设计详解
- 采用双拼域名meicai.cn的美菜网融资4.5亿美元
- 区块链技术或将迎来突破性进展,以特币未来生机勃勃
- 配置多个网卡的OpenStack VM
- .NET Core采用的全新配置系统[3]: “Options模式”下的配置是如何绑定为Options对象
- 游戏用户中心开发
- .NET Core采用的全新配置系统[4]: “Options模式”下各种类型的Options对象是如何绑定的?
- js运算符优先级笔记
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- WPF 启动屏幕键盘
- dotnet 里的那些锁 AutoResetEvent 用法
- MySQL是如何实现事务的ACID
- 白话K8S核心组件概念
- k8s 架构、基本概念及命令
- Java API 连接 Hbase示例
- 点线图和阶梯图的画法
- 添加直线的两种方式
- nginx fastcgi模块ngx_http_fastcgi_module详细解析、使用手册、完整翻译
- Chrome代码调试指南
- Maven安装与配置
- CentOS7安装elk,并监控Nginx的access.log日志
- Aria2 + Rclone 实现离线下载 | 完美脚本配置 | 解决无法上传问题
- alpine使用的避坑指南
- elasticSearch学习(八)