在 64 位版本的 Ubuntu 12.04 服务器中,我遇到了一个非常奇怪的问题。我手动安装了 java 7 JDK(将 jdk 文件夹复制粘贴到/usr/lib/jvm 并进行了大量配置以管理 java、javac 和 jps 命令正常工作)。 格式化名称节点时 -
hadoop namenode -format
我的 shell 显示:
$HADOOP_HOME is deprecated
然后突然返回到 shell 而没有格式化 namenode。 同样在通过以下方式启动 hadoop 守护程序之后:
start-all.sh
他们首先显示以下消息:
Warning: $HADOOP_HOME is deprecated.
starting namenode, logging to /usr/local/hadoop-1.2.1/libexec/../logs/hadoop-ubuntu1-namenode-jci1.out
jci1: starting datanode, logging to /usr/local/hadoop-1.2.1/libexec/../logs/hadoop-ubuntu1-datanode-jci1.out
jci1: starting secondarynamenode, logging to /usr/local/hadoop-1.2.1/libexec/../logs/hadoop-ubuntu1-secondarynamenode-jci1.out
starting jobtracker, logging to /usr/local/hadoop-1.2.1/libexec/../logs/hadoop-ubuntu1-jobtracker-jci1.out
jci1: starting tasktracker, logging to /usr/local/hadoop-1.2.1/libexec/../logs/hadoop-ubuntu1-tasktracker-jci1.out
但是当我尝试通过“jps”查看进程时,输出如下:
9351 -- main class information unavailable
9184 -- main class information unavailable
9520 -- main class information unavailable
9612 -- process information unavailable
9831 Jps
一段时间后,jps 仅显示 jps 进程:
9831 Jps
我无法弄清楚为什么守护进程在启动后立即停止。是java问题吗? 请给我建议我应该怎么做才能解决这个问题。
最佳答案
终于解决了这个问题,因为java是hadoop的核心所以JDK应该是兼容的,并且有hadoop运行时需要的所有必要文件。在我的例子中,罪魁祸首是另一个与 Oracle_JDK 1.7 并行的 openjdk-6,所以我清除了以前的安装并安装了 oracle-java 作为唯一的 java 替代。 现在我的 namenode 正在格式化,没有任何问题,查看 hadoop 守护进程的日志文件也解决了我的另一个问题。
关于hadoop namenode 没有格式化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21857724/