接着上一篇文章继续,当我终于解决了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
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
|
其中的
1
2
|
if
[[ $EUID -
eq
0 ]];
then
HADOOP_OPTS=
"$HADOOP_OPTS -jvm server $HADOOP_DATANODE_OPTS"
|
所以我就把这段代码的if else语句给去掉了,就只剩下,else语句中的那句话:
1
|
HADOOP_OPTS=
"$HADOOP_OPTS -server $HADOOP_DATANODE_OPTS"
,
|
执行jps可以得到namenode datanode tasktrack jobtrack等进程信息。
然后根据官网上的命令执行了mapreduce操作,至此伪分布式的hadoop程序就跑起来了。
至此结束了一天的工作,甚是开心,java的东西就是需要耐心的配置,所以这里给出记录以备后续之用