当前位置: 首页>>技术教程>>正文


ubuntu – 有0个数据节点正在运行,并且此操作中不排除任何节点

, , , ,

问题描述

我已经建立了一个多节点Hadoop集群。 NameNode和Secondary Namenode在同一台计算机上运行,​​并且群集只有一个Datanode。所有节点都在Amazon EC2计算机上配置。

以下是主节点上的配置文件:

masters
54.68.218.192 (public IP of the master node)

slaves
54.68.169.62 (public IP of the slave node)

core-site.xml

<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>

mapred-site.xml

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

hdfs-site.xml

<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop_store/hdfs/namenode</value>
</property>
<property>
<name>dfs.datanode.name.dir</name>
<value>file:/usr/local/hadoop_store/hdfs/datanode</value>
</property>
</configuration>

现在是datanode上的配置文件:

core-site.xml

<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://54.68.218.192:10001</value>
</property>
</configuration>

mapred-site.xml

<configuration>
<property>
<name>mapred.job.tracker</name>
<value>54.68.218.192:10002</value>
</property>
</configuration>

hdfs-site.xml

<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop_store/hdfs/namenode</value>
</property>
<property>
<name>dfs.datanode.name.dir</name>
<value>file:/usr/local/hadoop_store/hdfs/datanode</value>
</property>
</configuration>

在Namenode上运行的jps提供以下内容:

5696 NameNode
6504 Jps
5905 SecondaryNameNode
6040 ResourceManager

和datanode上的jps:

2883 DataNode
3496 Jps
3381 NodeManager

在我看来这是对的。

现在,当我尝试运行put命令时:

hadoop fs -put count_inputfile /test/input/

它给了我以下错误:

put: File /count_inputfile._COPYING_ 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.

datanode上的日志显示以下内容:

hadoop-datanode log
INFO org.apache.hadoop.ipc.Client: Retrying connect to server:      54.68.218.192/54.68.218.192:10001. Already tried 8 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1000 MILLISECONDS)

yarn-nodemanager日志:

INFO org.apache.hadoop.ipc.Client: Retrying connect to server: 0.0.0.0/0.0.0.0:8031. Already tried 9 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1000 MILLISECONDS)

节点管理器(50070)的Web UI显示存在0个活动节点和0个死节点,并且使用的dfs为100%

我也禁用了IPV6。

在一些网站上,我发现我还应该编辑/etc/hosts文件。我还编辑了它们,它们看起来像这样:

127.0.0.1 localhost
172.31.25.151 ip-172-31-25-151.us-west-2.compute.internal
172.31.25.152 ip-172-31-25-152.us-west-2.compute.internal

为什么我仍然收到错误消息?

最佳答案

有两件事对我有用,

步骤1:停止hadoop并从hduser清除临时文件

sudo rm -R /tmp/*

also, you may need to delete and recreate /app/hadoop/tmp(主要是当我将hadoop版本从2.2.0更改为2.7.0时)

sudo rm -r /app/hadoop/tmp
sudo mkdir -p /app/hadoop/tmp
sudo chown hduser:hadoop /app/hadoop/tmp
sudo chmod 750 /app/hadoop/tmp

步骤2:格式化namenode

hdfs namenode -format

现在,我可以看到DataNode

hduser@prayagupd:~$ jps
19135 NameNode
20497 Jps
19477 DataNode
20447 NodeManager
19902 SecondaryNameNode
20106 ResourceManager

次佳答案

不当关闭节点后,我遇到了同样的问题。还检查了UI中未列出的datanode。

现在,从datanode文件夹中删除文件并重新启动服务后,它就可以工作了。

stop-all.sh

rm -rf /usr/local/hadoop_store/hdfs/datanode/*

start-all.sh

第三种答案

@Learner,我遇到了名称节点的Web UI中未显示的数据节点问题。通过Hadoop 2.4.1中的这些步骤解决了它。对所有节点(主节点和从节点)执行此操作1.删除所有临时文件(默认情况下在/tmp中)-sudo rm -R /tmp/*。 2.现在,尝试使用ssh username@host通过ssh连接到所有节点,并使用ssh-copy-id -i ~/.ssh/id_rsa.pub username@host在主服务器中添加密钥,以使从属服务器不受限制地访问主服务器(这样做可能是拒绝连接的问题)。 3.使用hadoop namenode -format格式化namenode,然后尝试重新启动守护程序。

第四种答案

就我而言,防火墙服务正在运行。它是默认配置。而且它不允许节点之间的通信。我的hadoop集群是一个测试集群。因此,我停止了服务。如果您的服务器正在生产中,则应在firewalld上允许hadoop端口,而不是

service firewalld stop
chkconfig firewalld off

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/7918.html,未经允许,请勿转载。