【问题标题】:Getting error while starting hadoop启动hadoop时出错
【发布时间】:2011-12-07 07:42:55
【问题描述】:

我有 Hadoop 0.20,我通过运行 $HADOOP/bin/start-all.sh 来启动它。 每个恶魔都在运行,但是在 datanode 时它会抛出错误

localhost:无法识别的选项:-jvm
localhost:错误:无法创建 Java 虚拟机。
localhost:错误:发生了致命异常。程序将退出。

但是我已经安装了java。

[root@ulhshr1ld1 bin]# java -version
java版本“1.7.0_01” Java(TM) SE 运行时环境(内部版本 1.7.0_01-b08)
Java HotSpot(TM) 服务器虚拟机(build 21.1-b02,混合模式)

我还可以访问 http://localhost:50070/dfshealth.jsphttp://localhost:50030/jobtracker.jsp

谁能指导我这是什么问题?

【问题讨论】:

  • 这应该迁移到Serverfault

标签: apache networking hadoop client-server


【解决方案1】:

以 root 身份运行时,这是 Hadoop 中的一个错误。它已在较新的版本中得到修复。这是JIRA。使用最新版本的 Hadoop。

Root 提供对系统的完全访问权限。创建一个单独的用户并启动守护程序。为什么要以 root 身份启动守护进程?

另外,Apache recommends 使用 Oracle 的 Java 6。看起来您正在运行 Java 7。使用 Java 7 的 Hadoop 尚未经过彻底测试。

【讨论】:

【解决方案2】:

当我们启动安全的时候,-jvm 选项应该被传递给 jsvc datanode,但是当 start-dfs.sh 由 root 运行时,它仍然传递给 java 而安全数据节点被禁用。

这是 bin/hdfs.or bin/hadoop 的 bug。

应用以下补丁。

HDFS-1943 补丁。

diff --git bin/hdfs bin/hdfs 索引 76ff689..ce9dc0a 100755 --- bin/hdfs +++ bin/hdfs @@ -71,7 +71,7 @@ elif [ "$COMMAND" = "secondarynamenode" ] ;然后 >HADOOP_OPTS="$HADOOP_OPTS $HADOOP_SECONDARYNAMENODE_OPTS" elif [ "$COMMAND" = "datanode" ] ;然后
CLASS='org.apache.hadoop.hdfs.server.datanode.DataNode' - 如果 [[ $EUID -eq 0 ]];然后 + 如果 [ "$starting_secure_dn" = "true" ];然后 HADOOP_OPTS="$HADOOP_OPTS -jvm 服务器 $HADOOP_DATANODE_OPTS" 否则 HADOOP_OPTS="$HADOOP_OPTS -服务器 $HADOOP_DATANODE_OPTS"

将以上内容复制到名为 HDFS.patch 的文件中。在终端中应用补丁运行

patch -p0

/path/to/file/to/be/patched 将是 ../bin/hadoop 或 .../bin/hdfs

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-31
    • 2018-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多