启动hadoop时出错

时间:2011-12-07 07:42:56

标签: apache networking hadoop client-server

我有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)服务器VM(版本21.1-b02,混合模式)

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

任何人都可以指导我这是什么问题?

2 个答案:

答案 0 :(得分:4)

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

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

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

答案 1 :(得分:3)

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

这是bin / hdfs.or bin / hadoop的错误。

应用以下补丁。

HDFS-1943补丁。

  

diff --git bin / hdfs bin / hdfs index 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]];然后   + if [“$ starting_secure_dn”=“true”];然后        HADOOP_OPTS =“$ HADOOP_OPTS -jvm服务器$ HADOOP_DATANODE_OPTS”否则        HADOOP_OPTS =“$ HADOOP_OPTS -server $ HADOOP_DATANODE_OPTS”

将上述内容复制到名为HDFS.patch的文件中。要在终端

中应用补丁运行
  

patch -p0< / path / to / patch / file / path / to / file / to / be / patched

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