4

我是一名学生,对 Hadoop 很感兴趣,最近开始探索它。我尝试在该模式下添加一个额外的 DataNodepseudo-distributed但失败了。

我正在关注 Yahoo 开发人员教程,所以我使用的 Hadoop 版本是hadoop-0.18.0

我尝试使用我在网上找到的 2 种方法启动:

方法一链接

我对这条线有疑问

bin/hadoop-daemon.sh --script bin/hdfs $1 datanode $DN_CONF_OPTS 

--script bin/hdfs在我使用的版本中似乎无效。我将其更改为 --config$HADOOP_HOME/conf2以及该目录中的所有配置文件,但是当脚本运行时它给出了错误:

用法:Java DataNode [-rollback]

知道错误是什么意思吗?日志文件已创建,但 DataNode 未启动。

方法二链接

基本上,我将 conf 文件夹复制到conf2文件夹,对网站上记录的必要更改hadoop-site.xmlhadoop-env.sh. 然后我运行了命令

./hadoop-daemon.sh --config ..../conf2 start datanode

它给出了错误:

作为进程 4190 运行的数据节点。首先停止它。

所以我猜这是启动的第一个 DataNode,并且该命令无法启动另一个 DataNode。

我可以做些什么来在 Yahoo VM Hadoop 环境中启动额外的 DataNode 吗?任何帮助/建议将不胜感激。

4

1 回答 1

0

Hadoop 启动/停止脚本/tmp用作存储已启动守护程序的 PID 的默认目录。在您的情况下,当您启动第二个数据节点时,启动脚本 /tmp/hadoop-someuser-datanode.pid会从第一个数据节点中找到文件并假定数据节点守护程序已经启动。

  • 简单的解决方案是将HADOOP_PID_DIRenv 变量设置为其他值(但不是/tmp)。也不要忘记更新所有网络端口号conf2

  • 明智的解决方案是使用 hadoop 环境启动第二个 VM,并将它们加入单个集群。这是hadoop打算使用的方式。

于 2013-07-26T12:27:03.033 回答