升级CDH集群的JDK

升级CDH集群的JDK

更改所有节点的java命令

[root@a01 ~]# whereis java
java: /usr/bin/java /etc/java /usr/lib/java /usr/share/java /usr/share/man/man1/java.1.gz
[root@a01 ~]# ll /usr/bin/java
lrwxrwxrwx. 1 root root 22 2月  10 2017 /usr/bin/java -> /etc/alternatives/java
[root@a01 ~]# ll /etc/alternatives/java
lrwxrwxrwx. 1 root root 46 2月  10 2017 /etc/alternatives/java -> /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java
[root@a01 ~]# 


查看我的JDK发现 我的JDK链接到了/etc/alternatives/java 然后又去链接到这个/usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java ,终于这时候遇到真身了。就是这个openjdk下面的java命令

那么这个alternatives是个什么东西呢?

百度一下发现这个东西是一个版本管理器,它可以把一些服务注册到这个管理器上面。然后通过一些链接的指向进行管理。那么就搜一下他的用法

[root@a01 java]# alternatives --help
替换选择(alternatives)的版本 1.3.49.3 - 版权 (C) 1997-2000 Red Hat, Inc.
在 GNU 公共许可的条款下,本软件可以被自由发行。

用法:alternatives --install <link> <name> <path> <priority>
                    [--initscript <service>]
                    [--slave <link> <name> <path>]*
       alternatives --remove <name> <path>
       alternatives --auto <name>
       alternatives --config <name>
       alternatives --display <name>
       alternatives --set <name> <path>

公用选项:--verbose --test --help --usage --version
                --altdir <directory> --admindir <directory>
[root@a01 java]# 

可以看到他的用法可以如上面所示,上面有点抽象,那么来一个具体的实例

比如:查看一下最近的java命令的更改

[root@a01 ~]# alternatives --display java
java - 状态是自动。
 链接目前指向 /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java
/usr/lib/jvm/jre-1.5.0-gcj/bin/java - 优先度 1500
 从 keytool:/usr/lib/jvm/jre-1.5.0-gcj/bin/keytool
 从 orbd:(null)
 从 pack200:(null)
 从 rmid:(null)
 从 rmiregistry:/usr/lib/jvm/jre-1.5.0-gcj/bin/rmiregistry
 从 servertool:(null)
 从 tnameserv:(null)
 从 unpack200:(null)
 从 jre_exports:/usr/lib/jvm-exports/jre-1.5.0-gcj
 从 jre:/usr/lib/jvm/jre-1.5.0-gcj
 从 java.1.gz:(null)
 从 keytool.1.gz:(null)
 从 orbd.1.gz:(null)
 从 pack200.1.gz:(null)
 从 rmid.1.gz:(null)
 从 rmiregistry.1.gz:(null)
 从 servertool.1.gz:(null)
 从 tnameserv.1.gz:(null)
 从 unpack200.1.gz:(null)
/usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java - 优先度 170009
 从 keytool:/usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/keytool
 从 orbd:/usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/orbd
 从 pack200:/usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/pack200
 从 rmid:/usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/rmid
 从 rmiregistry:/usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/rmiregistry
 从 servertool:/usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/servertool
 从 tnameserv:/usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/tnameserv
 从 unpack200:/usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/unpack200
 从 jre_exports:/usr/lib/jvm-exports/jre-1.7.0-openjdk.x86_64
 从 jre:/usr/lib/jvm/jre-1.7.0-openjdk.x86_64
 从 java.1.gz:/usr/share/man/man1/java-java-1.7.0-openjdk.1.gz
 从 keytool.1.gz:/usr/share/man/man1/keytool-java-1.7.0-openjdk.1.gz
 从 orbd.1.gz:/usr/share/man/man1/orbd-java-1.7.0-openjdk.1.gz
 从 pack200.1.gz:/usr/share/man/man1/pack200-java-1.7.0-openjdk.1.gz
 从 rmid.1.gz:/usr/share/man/man1/rmid-java-1.7.0-openjdk.1.gz
 从 rmiregistry.1.gz:/usr/share/man/man1/rmiregistry-java-1.7.0-openjdk.1.gz
 从 servertool.1.gz:/usr/share/man/man1/servertool-java-1.7.0-openjdk.1.gz
 从 tnameserv.1.gz:/usr/share/man/man1/tnameserv-java-1.7.0-openjdk.1.gz
 从 unpack200.1.gz:/usr/share/man/man1/unpack200-java-1.7.0-openjdk.1.gz
/usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java - 优先度 16000
 从 keytool:/usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/keytool
 从 orbd:/usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/orbd
 从 pack200:/usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/pack200
 从 rmid:/usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/rmid
 从 rmiregistry:/usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/rmiregistry
 从 servertool:/usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/servertool
 从 tnameserv:/usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/tnameserv
 从 unpack200:/usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/unpack200
 从 jre_exports:/usr/lib/jvm-exports/jre-1.6.0-openjdk.x86_64
 从 jre:/usr/lib/jvm/jre-1.6.0-openjdk.x86_64
 从 java.1.gz:/usr/share/man/man1/java-java-1.6.0-openjdk.1.gz
 从 keytool.1.gz:/usr/share/man/man1/keytool-java-1.6.0-openjdk.1.gz
 从 orbd.1.gz:/usr/share/man/man1/orbd-java-1.6.0-openjdk.1.gz
 从 pack200.1.gz:/usr/share/man/man1/pack200-java-1.6.0-openjdk.1.gz
 从 rmid.1.gz:/usr/share/man/man1/rmid-java-1.6.0-openjdk.1.gz
 从 rmiregistry.1.gz:/usr/share/man/man1/rmiregistry-java-1.6.0-openjdk.1.gz
 从 servertool.1.gz:/usr/share/man/man1/servertool-java-1.6.0-openjdk.1.gz
 从 tnameserv.1.gz:/usr/share/man/man1/tnameserv-java-1.6.0-openjdk.1.gz
 从 unpack200.1.gz:/usr/share/man/man1/unpack200-java-1.6.0-openjdk.1.gz
当前“最佳”版本是 /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java。
[root@a01 ~]# 

得到目前最新的版本为java7,他的优先级为 170009

那么就需要更改本地java版本了

# 安装JAVA8。你可以自己上传安装也可以通过yum进行安装,这里不演示流程
# 我的java8安装的目录为/usr/java/jdk8
# 于是因此我可以使用如下命令更改
alternatives --install /usr/bin/java java /usr/java/jdk8/bin/java 170010 

参数解析:

--install  表示安装
/usr/bin/java  表示命令存在的公共链接(必须绝对路径)
java   表示安装的命令名称
/usr/java/jdk8/bin/java  表示命令实际上指向的位置
170010   表示命令的优先级,如果你设置的优先级低于上一个版本的优先级,那么他依旧会执行上一个版本的命令

这里只是第一步,此时java命令可以使用了。并且更新为了java8的命令,但是你还需要修改一些/etc/profile的环境变量。

比如我的在/etc/profile下添加了以下内容

export JAVA_HOME=/usr/java/jdk8
export CLASSPATH=$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin

! ! !记得新的JDK一定要在所有节点上面都安装 ! ! !

更改Cloudera Manager Server 的java 环境

  1. 关闭所有服务,不仅包括hdfs,hive等服务,而且包含cloudera server和agent的服务。 service cloudera-scm-agent stop service cloudera-scm-server stop
  2. 在Cloudera Manager Server 主机上修改/etc/default/cloudera-scm-server 添加 export JAVA_HOME=/usr/java/jdk8
  3. 启动 Cloudera Manager Server 使用命令 service cloudera-scm-server start
  4. 更改网页上面的配置java_home 点击顺序【主机】->【所有主机】->【配置】->【高级】
  5. 启动其他agent节点
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天心有情

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值