Hadoop启动时出现Unrecognized option: -jvm

来源:互联网 发布:黑帽工具 猫云seo 编辑:程序博客网 时间:2024/06/11 10:10

接着上一篇文章继续,当我终于解决了namenode -format的问题之后,本以为可以顺利的启动hadoop了,但是却继而遇到了另外一个问题。

在执行bin/start-all.sh命令执行过程中,报告一下错误:

  1. MyHostName: Unrecognized option: -jvm  
  2. MyHostName:   Could not create the Java virtual machine.    

网上很多都是说内存分配不够导致的,我觉得问题不在这里,就没有尝试,不过这里还是把因为此问题而修改的代码,贴出来,至少是一种思路

/hadoop/conf/hadoop-env.sh中:

  1.  The maximum amount of heap to use, in MB. Default is 1000.
  2.  export HADOOP_HEAPSIZE=2000
继而在网上找到其他的解决方案就继续尝试,在bin/hadoop 脚本中有以下一段代码:

CLASS='org.apache.hadoop.hdfs.server.datanode.DataNode'
if[[ $EUID -eq0 ]]; then
HADOOP_OPTS="$HADOOP_OPTS -jvm server $HADOOP_DATANODE_OPTS"
else
HADOOP_OPTS="$HADOOP_OPTS -server $HADOOP_DATANODE_OPTS"
fi

其中的

?
1
2
if[[ $EUID -eq0 ]]; then
HADOOP_OPTS="$HADOOP_OPTS -jvm server $HADOOP_DATANODE_OPTS"
可以在命令行中输入echo $EUID 可以看到其为0, 因为我是在root用户下跑的该程序,所以用户标识码EUID为0,

所以我就把这段代码的if else语句给去掉了,就只剩下,else语句中的那句话:

1
HADOOP_OPTS="$HADOOP_OPTS -server $HADOOP_DATANODE_OPTS"
然后再运行start-all.sh发现运行成功了

执行jps可以得到namenode datanode tasktrack jobtrack等进程信息。

然后根据官网上的命令执行了mapreduce操作,至此伪分布式的hadoop程序就跑起来了。

至此结束了一天的工作,甚是开心,java的东西就是需要耐心的配置,所以这里给出记录以备后续之用


原创粉丝点击