对于“快速”的概念验证,我想通过连接两个虚拟机来设置一个迷你 Hadoop 0.18 集群,我发现这两个虚拟机在Yahoo上配置为伪分布式模式。
在我的hadoop-vm-1上,我在该机器上启动了一个包含主节点和从属 DataNode 和 TaskTracker 的完整集群。然后我将第二个虚拟机作为hadoop-vm-2并希望它托管第二个 DataNode 和 TaskTracker,它将连接到hadoop-vm-1并添加到这个集群。
不幸的是,我无法启动第二个 DataNode,因为它想要连接到本地 IPC 服务器。这是我希望它连接到hadoop-vm-1的地方。日志中写道:
2013-02-07 19:55:29,954 INFO org.apache.hadoop.ipc.Client:重试连接到服务器:/192.168.17.135:9000。已经尝试了 9 次。
2013-02-07 19:55:29,958 错误 org.apache.hadoop.dfs.DataNode:java.io.IOException:本地异常调用失败
..
原因:java.net.ConnectException:连接被拒绝
应该使用来自hadoop-vm-1的 192.168.17.134 而不是 IP 192.168.17.135(即hadoop-vm-2) 。
我想我正确配置了从站的 hadoop-site.xml:
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://hadoop-vm-1/</value>
<description>The name of the default file system. A URI whose
scheme and authority determine the FileSystem implementation. The
uri's scheme determines the config property (fs.SCHEME.impl) naming
the FileSystem implementation class. The uri's authority is used to
determine the host, port, etc. for a filesystem.</description>
</property>
<property>
<name>mapred.job.tracker</name>
<value>hadoop-vm-1:9001</value>
<description>The host and port that the MapReduce job tracker runs
at. If "local", then jobs are run in-process as a single map
and reduce task.
</description>
</property>
</configuration>
当然,我配置了主机文件:
127.0.0.1 localhost
127.0.1.1 hadoop-vm-2.localdomain hadoop-vm-2
192.168.17.134 hadoop-vm-1
有任何想法吗?提前致谢 :-)