Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hadoop DataNode赢了';不要使用远程IPC服务器地址_Hadoop_Cluster Computing_Virtual Machine - Fatal编程技术网

Hadoop DataNode赢了';不要使用远程IPC服务器地址

Hadoop DataNode赢了';不要使用远程IPC服务器地址,hadoop,cluster-computing,virtual-machine,Hadoop,Cluster Computing,Virtual Machine,为了实现“快速”的概念验证,我想通过连接两个虚拟机来建立一个迷你Hadoop 0.18集群,我发现这两个虚拟机是以伪分布式模式配置的 在我的hadoop-vm-1上,我启动了一个完整的集群,在这台机器上有主节点、从节点和TaskTracker。 然后我将第二个VM作为hadoop-VM-2,并希望它承载第二个DataNode和TaskTracker,它将连接到hadoop-VM-1并添加到此集群 不幸的是,我无法启动第二个DataNode,因为它想连接到本地IPC服务器。这是我希望它连接到had

为了实现“快速”的概念验证,我想通过连接两个虚拟机来建立一个迷你Hadoop 0.18集群,我发现这两个虚拟机是以伪分布式模式配置的

在我的hadoop-vm-1上,我启动了一个完整的集群,在这台机器上有主节点、从节点和TaskTracker。 然后我将第二个VM作为hadoop-VM-2,并希望它承载第二个DataNode和TaskTracker,它将连接到hadoop-VM-1并添加到此集群

不幸的是,我无法启动第二个DataNode,因为它想连接到本地IPC服务器。这是我希望它连接到hadoop-vm-1的地方。日志内容如下所示:

2013-02-07 19:55:29954 INFO org.apache.hadoop.ipc.Client:正在重试连接到服务器:/192.168.17.135:9000。已尝试了9次。
2013-02-07 19:55:29958错误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)

我想我已经正确配置了slave的hadoop-site.xxml:

<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>

有什么想法吗?提前感谢:-)

/etc/hosts文件的内容应该如下所示

127.0.0.1   localhost
#127.0.1.1  hadoop-vm-1
192.168.0.101 hadoop-vm-1
192.168.0.100 hadoop-vm-2
查看此项及其注释以了解更多详细信息。此外,在伪分布式模式下,所有守护进程都将在它们自己的JVM和单个节点上运行。对于1+节点,它是完全分布式模式。更多关于不同模式的信息

此外,有多种方法可以设置Hadoop集群

1) 从Apache下载所有相关框架并手动设置它们。这里(,)是一些很好的教程。这种方法需要一些努力,但也学到了很多东西


2) 用于自动化Hadoop和其他相关框架(如Hive、HBase、ZooKeeper等)的安装过程。还有两家其他公司提供自动安装,如HortonWorks。大多数事情都是自动化的,隐藏在UI后面。

我找到了解决问题的方法:事实上,我的直觉是正确的,我的配置确实被忽略了

来自YAHOO的文件有一些模糊的附加配置目录。这将覆盖“conf”目录中的所有配置,即使您手动启动集群并且不使用提供的教程启动脚本


因此,我删除了目录,并放置了一个同名的符号链接,该链接指向conf目录。现在,它的工作如预期。呸:-)

对不起,那没用。我已经准备好了你博客文章推荐的所有东西,包括经过测试的ssh连接、开放端口等。
127.0.0.1   localhost
#127.0.1.1  hadoop-vm-1
192.168.0.101 hadoop-vm-1
192.168.0.100 hadoop-vm-2