- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我目前在带有 java jdk1.7 的 CentOS 6.5 上安装了 CDH 5,我正在尝试让 CDH 使用 jdk1.8。
我知道 Java 1.8 不是推荐的 CDH 版本,但它只是一个测试集群,所以没什么大不了的。
我已经使用 RPM 安装从 Oracle 网站安装了 Java 1.7 和 Java 1.8,因此这两个版本的 Java 目前都在 /usr/java
下。使用 ls -ld
我的 Java 目录如下所示:
/usr/java/default -> /usr/java/latest
/usr/java/jdk1.7.0_75
/usr/java/jdk1.8.0_31
/usr/java/latest -> /usr/java/jdk1.8.0_31
我还在 /etc/profile.d
中设置了脚本,以将 $JAVA_HOME
设置为 /usr/java/default
。我的 profile.d 脚本的内容:
export JAVA_HOME=/usr/java/default
export PATH=${JAVA_HOME}/bin:${PATH}
所以当我觉得我有这个权利时,我跑:
$ which java
/usr/java/default/bin/java
告诉我它指向默认符号链接(symbolic link)的 Java 版本。为了确定运行的是哪个版本的 java,我运行:
$ java -version
java version "1.8.0_31"
Java(TM) SE Runtime Environment (build 1.8.0_31-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.31-b07, mixed mode)
而且我可以看到我当前正在运行 Java 1.8。
一切似乎都很好,除了当我尝试启动 Hadoop 服务时。最容易上手的是 ZooKeeper,因为它只有一个服务。 HDFS 有多个服务器,因此启动和停止 ZooKeeper 需要更多工作。
使用以下命令启动 ZooKeeper:
$ sudo service zookeeper-server start
然后为了检查它运行的是哪个版本的 java,我在正在运行的进程列表中搜索 java
:
$ ps -ef | grep java
495 7170 1 7 12:27 ? 00:00:00 /usr/java/jdk1.7.0_75/bin/java -Dzookeeper.datadir.autocreate=false -Dzookeeper.log.dir=/var/log/zookeeper -Dzookeeper.root.logger=INFO,ROLLINGFILE -cp /usr/lib/zookeeper/bin/../build/classes:/usr/lib/zookeeper/bin/../build/lib/*.jar:/usr/lib/zookeeper/bin/../lib/slf4j-log4j12.jar:/usr/lib/zookeeper/bin/../lib/slf4j-log4j12-1.7.5.jar:/usr/lib/zookeeper/bin/../lib/slf4j-api-1.7.5.jar:/usr/lib/zookeeper/bin/../lib/netty-3.2.2.Final.jar:/usr/lib/zookeeper/bin/../lib/log4j-1.2.16.jar:/usr/lib/zookeeper/bin/../lib/jline-0.9.94.jar:/usr/lib/zookeeper/bin/../zookeeper-3.4.5-cdh5.3.0.jar:/usr/lib/zookeeper/bin/../src/java/lib/*.jar:/etc/zookeeper/conf::/etc/zookeeper/conf:/usr/lib/zookeeper/*:/usr/lib/zookeeper/lib/* -Dzookeeper.log.threshold=INFO -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.local.only=false org.apache.zookeeper.server.quorum.QuorumPeerMain /etc/zookeeper/conf/zoo.cfg
我知道它在屏幕外运行,但重要的是 Zookeeper 正在由 /usr/java/jdk1.7.0_75/bin/java
启动。
为了解决这个问题,我尝试了一些方法:
分别在 /etc/hadoop/conf
和 /etc/zookeeper/conf
下查看 Hadoop 和 ZooKeeper 的 conf 文件。
我没有找到任何设置 JAVA_HOME
。
查看 /usr/bin/zookeeper
脚本以查看是否在别处设置了 JAVA_HOME
,
我确实发现脚本 /usr/lib/bigtop-utils/bigtop-detect-javahome
能够设置 JAVA_HOME
,但是我的 profile.d 脚本覆盖了
手动移动 /usr/java/jdk1.7
到 /tmp
。
遗憾的是,这是唯一有效的方法。当我将 jdk1.7 目录移动到另一个目录并启动 ZooKeeper 时,它将使用 Java 1.8。将 jdk1.7 目录移回,恢复为使用 Java 1.7 的 ZooKeeper。
有没有人处理过这个问题,有人知道如何处理吗?我觉得我的 Java 设置正确,但是有什么东西告诉 ZooKeeper/Hadoop 使用旧版本的 Java?
最佳答案
我来这里是因为我正在寻找在最新的 Coudera QuickStart VM 5.8 上将 JDK 从 1.7 升级到 1.8 的方法(不敢相信他们仍然默认附带 JDK1.7!)。上述答案中的提示和建议非常有帮助 - 但由于它们没有列出实现升级的完整步骤 - 我想我会添加它以帮助像我这样的其他人。
因此,这是将 Cloudera QuickStart VM 从 JDK1.7 升级到 1.8 的一组完整步骤:
检查您当前的 JDK 版本 - 开箱即用:
[cloudera@quickstart ~]$ java -version
java version "1.7.0_67"
Java(TM) SE Runtime Environment (build 1.7.0_67-b01)
Java HotSpot(TM) 64-Bit Server VM (build 24.65-b04, mixed mode)
下载所需版本的 JDK1.8.xx - 在我的例子中:jdk-8u111-linux-x64.tar.gz
作为用户'cloudera':
解压并将生成的 jdk1.8.0_111 目录移动到/usr/java 目录:
tar xzf jdk-8u111-linux-x64.tar.gz
sudo mv -f jdk1.8.0_111 /usr/java
关闭所有 Hadoop 服务:
$ for x in `cd /etc/init.d ; ls hadoop-*` ; do sudo service $x stop ; done
更新 bigtop-utils 文件 - 将 JAVA_HOME 设置为您的新 JDK:
sudo vi /etc/default/bigtop-utils
updated lines:
# Override JAVA_HOME detection for all bigtop packages
export JAVA_HOME=/usr/java/jdk1.8.0_111
更新“cloudera”用户的 .bash_profile - 导出 JAVA_HOME 并添加更新路径:
export JAVA_HOME=/usr/java/jdk1.8.0_111
PATH=$JAVA_HOME/bin:$PATH:$HOME/bin
export PATH
重启您的虚拟机
检查 Java 版本 - 现在应该是 1.8:
[cloudera@quickstart ~]$ java -version
java version "1.8.0_111"
Java(TM) SE Runtime Environment (build 1.8.0_111-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode)
顺便说一句,为了简单起见,我没有像 @milk3422 那样使用“最新”符号链接(symbolic link)设置/usr/java/default,但它也能正常工作。
谢谢!
关于java - 如何更改 CDH 使用的 Java 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28854722/
我对 cdh 及其维护方式有疑问: 当我转到与特定 cdh 版本相关的包装信息时,我可以检查每个组件的包装版本(例如 cdh 5.5.5 : https://www.cloudera.com/docu
我们有一个 12 台服务器的 hadoop 集群 (CDH),最近,我们想停用其中的三台,但是这个进程已经在那里运行了 2 天多了。但它永远不会结束,特别是在过去的 24 小时内,我看到三个数据节点上
我安装了一个 CDH 集群 并使用了 hadoop 版本,但它只返回了 Hadoop 版本。有没有办法在图形界面上获取所有已安装组件的版本号?例如,哪个命令可以获取 Spark 版本号? 最佳答案 打
我正在尝试使用 Cloudera Manager 在云服务器上的 3 个节点上设置集群。但在集群安装步骤,它卡在 64%。请指导我如何继续它以及在哪里查看相同的日志。 以下是安装屏幕的图像 最佳答案
我使用的是 cdh 5.5.1 中的 impala 2.3 据我了解,这个版本应该支持数组和 map 。 我有一个包含数组字段的表(请参见下文) 当我尝试使用 CLI 获取此字段时,我得到:选择列表中
Datastax DSE 带有组织良好的 demos . Cloudera CDH5 是否提供类似的东西? 最佳答案 看看 Cloudera Quickstart VM .它(特别是 Hue)包含一些
我参加了一个将使用 Cloudera CDH 和 Hadoop 等的类(class)。 类(class)的当前设置涉及使用带有 VirtualBox 的虚拟机。 我只是想知道是否有更快、更有效的程序实
我有一个包含 3 个节点的 CDH 5.1 集群。我们使用cloudera manager自动安装来安装它。在我们将盒子移动到不同的网络并更改 IP 地址之前,它一直运行良好。我尝试了以下步骤 1.
是否有任何可靠且有效的方法来确保 impala 查询结果得到完全具体化,而无需将结果打印到控制台?作为示例,我将使用 INNER JOIN 查询。 具体化查询结果的明显方法是创建表作为选择。 CREA
我碰巧在 CDH 工作了很长时间(大约 1 年),并计划重新开始。现在我们有 CDH、HDP 和 Hortonwork 被 Cloudera 收购。 HDP 是否正在积极开发中?还是CDH正在积极开发
我正在评估多个大数据工具。其中之一当然是Impala。 我想通过在集群节点上手动启动进程来启动 Impala 集群。正如我目前为 Spark、H2O、Presto 和 Dask 所做的那样,我想获取二
我正在使用CDH 4.2.0群集。为了监视群集,我计划安装Ganglia。我发现link表示Ganglia 3.1与hadoop 0.21.0不兼容。有人可以指导我,哪个版本的Ganglia与CDH
尝试在hadoop群集上运行mrjob示例时出现此错误。 我已经设置了hadoop_home,还可以在hdfs文件系统上创建一个新目录。 如果使用hadoop流,则可以运行python map-red
我知道如何使用Cloudera Manager界面启动服务,但是我更想知道幕后真正发生的事情,而不是依靠“魔术”。 我读过this page,但未提供所需信息 我知道有一些.sh文件可以使用,但是它们
我是 aws 新手,我正在尝试通过 Cloudera 的 AMI 在 EC2 上运行 Hadoop。我安装了 AMI,下载了 cloudera-haddop-for-ec2-tools,现在我正在尝试
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 去年关闭。 Improve this
我正在使用 AWS EC2 运行 3 个实例(m1.small -- 20GB 硬盘和 1.7GB 内存)。 集群上会有hadoop、mapReduce和几个监控进程。 我是这样拆分的: 1个主服务器
我在 myCentOS 7.1 上配置了 CDH 5.5.2。除了以下与网络相关的警告外,一切都运行良好 网络接口(interface)速度抑制... 以下网络接口(interface)似乎未全速运行
我是 CDH 新手(我使用的当前版本是 5.7.1) 我已经添加了 HBase thrift 角色并在 Hue 中设置,但我仍然遇到以下问题。 HBase Browser Failed to au
可以在Ubuntu 17上安装CDH 5.x吗?根据Cloudera网站的说法,他们一直支持到Ubuntu 16。 我不熟悉大数据,所以请原谅我的无知。 最佳答案 CDH是Cloudera的发行版,包
我是一名优秀的程序员,十分优秀!