Hadoop启动时出现Unrecognized option:

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

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

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

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

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

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

CLASS='org.apache.hadoop.hdfs.server.datanode.DataNode'

if [[ $EUID -eq 0 ]]; then

HADOOP_OPTS="$HADOOP_OPTS -jvm server $HADOOP_DATANODE_OPTS"

else

HADOOP_OPTS="$HADOOP_OPTS -server $HADOOP_DATANODE_OPTS"

fi

其中的

if [[ $EUID -eq 0 ]]; 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的东西就是需要耐心的配置,所以这里给出记录以备后续之用。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/22693fac24e4da4827dae0f131cf8e0e.html