Hadoop Datanode slave未连接到我的主服务器

时间:2013-12-11 20:36:53

标签: hadoop hdfs

由于许多错误,我无法弄清楚为什么在没有将datanode slave vm连接到我的主vm时发生这种情况。任何建议都是受欢迎的,所以我可以尝试一下。 首先,其中一个是我的slave vm log中的错误:

WARN org.apache.hadoop.hdfs.server.datanode.DataNode: Problem connecting to server: ubuntu-378e53c1-3e1f-4f6e-904d-00ef078fe3f8:9000

因此,我无法在我的主人vm中运行我想要的工作:

hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar pi 2 5

给我这个错误

org.apache.hadoop.ipc.RemoteException(java.io.IOException): File /user/ubuntu/QuasiMonteCarlo_1386793331690_1605707775/in/part0 could only be replicated to 0 nodes instead of minReplication (=1).  There are 0 datanode(s) running and no node(s) are excluded in this operation.

即便如此,hdfs dfsadmin -report(在主vm)给我全部0

Configured Capacity: 0 (0 B)
Present Capacity: 0 (0 B)
DFS Remaining: 0 (0 B)
DFS Used: 0 (0 B)
DFS Used%: NaN%
Under replicated blocks: 0
Blocks with corrupt replicas: 0
Missing blocks: 0
Datanodes available: 0 (0 total, 0 dead)

为此,我建立了openstack 3 vms ubuntu,一个用于master和其他奴隶。 在master中,它是在etc/hosts

中构建的
127.0.0.1 localhost
50.50.1.9 ubuntu-378e53c1-3e1f-4f6e-904d-00ef078fe3f8
50.50.1.8 slave1
50.50.1.4 slave2

芯-site.xml中

<name>fs.default.name</name>
<value>hdfs://ubuntu-378e53c1-3e1f-4f6e-904d-00ef078fe3f8:9000</value>
<name>hadoop.tmp.dir</name>
<value>/home/ubuntu/hadoop-2.2.0/tmp</value>

HDFS-site.xml中

<name>dfs.replication</name>
<value>3</value>
<name>dfs.namenode.name.dir</name>
<value>file:/home/ubuntu/hadoop-2.2.0/etc/hdfs/namenode</value>
<name>dfs.datanode.data.dir</name>
<value>file:/home/ubuntu/hadoop-2.2.0/etc/hdfs/datanode</value>
<name>dfs.permissions</name>
<value>false</value>

mapred-site.xml中

<name>mapreduce.framework.name</name>
<value>yarn</value>

我的slave vm文件包含每一行:slave1和slave2。

来自主 vm的所有日志都没有错误,但是当我使用slave vm时,它会给出连接错误。并且nodemanager在日志中也给出了错误:

Error starting NodeManager org.apache.hadoop.yarn.exceptions.YarnRuntimeException: java.net.ConnectException: Call From ubuntu-e6df65dc-bf95-45ca-bad5-f8ddcc272b76/50.50.1.8 to 0.0.0.0:8031 failed on connection exception: java.net.ConnectException: Connection refused;

从我的奴隶机器: 芯的site.xml

<name>fs.default.name</name>
<value>hdfs://ubuntu-378e53c1-3e1f-4f6e-904d-00ef078fe3f8:9000</value>
<name>hadoop.tmp.dir</name>
<value>/home/ubuntu/hadoop-2.2.0/tmp</value>

HDFS-site.xml中

<name>dfs.namenode.name.dir</name>
<value>file:/home/ubuntu/hadoop-2.2.0/etc/hdfs/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/home/ubuntu/hadoop-2.2.0/etc/hdfs/datanode</value>

和我的/ etc / hosts

127.0.0.1 localhost
50.50.1.8 ubuntu-e6df65dc-bf95-45ca-bad5-f8ddcc272b76
50.50.1.9 ubuntu-378e53c1-3e1f-4f6e-904d-00ef078fe3f8

JPS 主人

15863 ResourceManager
15205 SecondaryNameNode
14967 NameNode
16194 Jps

从属

1988 Jps
1365 DataNode
1894 NodeManager

3 个答案:

答案 0 :(得分:4)

导致所有错误显示的原因,以下错误是无法主连接到slave的主要原因:

Error starting NodeManager org.apache.hadoop.yarn.exceptions.YarnRuntimeException: java.net.ConnectException: Call From ubuntu-e6df65dc-bf95-45ca-bad5-f8ddcc272b76/50.50.1.8 to 0.0.0.0:8031 failed on connection exception: java.net.ConnectException: Connection refused;

基本上,0.0.0.0:8031yarn.resourcemanager.resource-tracker.address的端口,所以我使用lsof -i:8031检查,端口未启用/打开/允许。由于我使用的是OpenStack(云端),因此添加了8031以及其他显示错误和故障的端口,并按计划运行。

答案 1 :(得分:1)

就我而言,我使用hdfs datanode -format格式化datanode服务器,hdfs namenode -format格式化datanode服务器。在此之前,请确保删除数据文件夹中包含在hdfs-site文件中的所有文件。

答案 2 :(得分:0)

我挣扎了很多,最后在使用“systemctl stop firewalld”之后得到了我之前我也禁用了selinux和ipv6。