我是一名学生,对hadoop很感兴趣,最近开始探索它。我尝试在 pseudo-distributed
模式,但失败。
我遵循雅虎开发者教程,所以我使用的hadoop版本是 hadoop-0.18.0
我试着从网上找到的两种方法开始:
方法1(链接)
我对这条线有意见
bin/hadoop-daemon.sh --script bin/hdfs $1 datanode $DN_CONF_OPTS
``` `--script bin/hdfs` 在我使用的版本中似乎无效。我把它改成了--config `$HADOOP_HOME/conf2` 与该目录中的所有配置文件,但当脚本运行时,它给出了错误:
用法:java datanode[-rollback]
你知道这个错误是什么意思吗?日志文件已创建,但datanode未启动。
方法2(链接)
基本上我把conf文件夹复制到 `conf2` 文件夹,进行必要的更改记录在网站上 `hadoop-site.xml` 以及 `hadoop-env.sh` . 然后我执行命令
./hadoop-daemon.sh --config ..../conf2 start datanode
它给出了错误:
数据节点作为进程4190运行。先停下来。
所以我猜这是启动的第一个datanode,命令无法启动另一个datanode。
在yahoo-vm-hadoop环境中,我可以做些什么来启动额外的datanode吗?任何帮助/建议都将不胜感激。
1条答案
按热度按时间ojsjcaue1#
hadoop启动/停止脚本使用
/tmp
作为存储已启动守护进程的PID的默认目录。在您的情况下,当您启动第二个datanode时,启动脚本会发现/tmp/hadoop-someuser-datanode.pid
文件,并假定datanode守护进程已经启动。简单的解决办法是
HADOOP_PID_DIR
env变量转换为其他变量(但不是/tmp
). 另外,不要忘记更新中的所有网络端口号conf2
.聪明的解决方案是使用hadoop环境启动第二个vm,并将它们加入到一个集群中。这是hadoop使用的方式。