yarnapplicationstate:已接受:等待分配、启动和注册am容器

6rvt4ljy  于 2021-05-29  发布在  Hadoop
关注(0)|答案(2)|浏览(539)

我是hadoop生态系统的新手。
我最近在单节点集群上尝试了hadoop(2.7.1),没有出现任何问题,并决定转向一个具有1个namenode和2个datanode的多节点集群。
然而,我面临着一个奇怪的问题。无论我尝试运行什么作业,都会遇到以下信息:
在web界面上:

YarnApplicationState: ACCEPTED: waiting for AM container to be allocated, launched and register

在cli中:

16/01/05 17:52:53 INFO mapreduce.Job: Running job: job_1451083949804_0001

他们甚至没有开始,在这一点上,我不知道我需要做什么样的改变,以使其工作。
以下是我试图解决的问题:
在所有节点上禁用防火墙
设置资源下限
在不同的机器、路由器和发行版下配置
我真的很感激任何帮助(即使是一个小提示)在正确的方向。
我遵循了以下说明(配置):
在ubuntu linux(多节点集群)上运行hadoop
如何设置多节点hadoop2(yarn)集群

dwbf0jvd

dwbf0jvd1#

我终于解决了这个问题。张贴详细步骤供将来参考(仅用于测试环境)
hadoop(2.7.1)多节点集群配置
确保您有一个没有主机隔离的可靠网络。最好是静态ip分配,或者至少有很长的dhcp租约。此外,所有节点(namenode/主节点和datanodes/从节点)都应该有一个具有相同密码的公共用户帐户;如果没有,请在所有节点上创建这样的用户帐户。在所有节点上使用相同的用户名和密码使事情变得不那么复杂。
[在所有计算机上]首先为单节点群集配置所有节点。你可以用我贴在这里的剧本。
在新终端中执行这些命令
[在所有机器上]↴

stop-dfs.sh;stop-yarn.sh;jps
rm -rf /tmp/hadoop-$USER

[仅在namenode/master上]↴

rm -rf ~/hadoop_store/hdfs/datanode

[仅在数据节点/从节点上]↴

rm -rf ~/hadoop_store/hdfs/namenode

[在所有计算机上]为群集中的所有节点添加ip地址和相应的主机名。

sudo nano /etc/hosts

主机

xxx.xxx.xxx.xxx master
xxx.xxx.xxx.xxy slave1
xxx.xxx.xxx.xxz slave2

# Additionally you may need to remove lines like "xxx.xxx.xxx.xxx localhost", "xxx.xxx.xxx.xxy localhost", "xxx.xxx.xxx.xxz localhost" etc if they exist.

# However it's okay keep lines like "127.0.0.1 localhost" and others.

[在所有计算机上]配置iptables
允许通过防火墙为各种hadoop守护进程使用默认或自定义端口
或者
更简单,禁用iptables
红帽式发行版(fedora,centos)

sudo systemctl disable firewalld
sudo systemctl stop firewalld

类似debian的发行版(ubuntu)

sudo ufw disable

[仅在namenode/master上]获得namenode(master)到所有datnode(slaves)的ssh访问权限。

ssh-copy-id -i ~/.ssh/id_rsa.pub $USER@slave1
ssh-copy-id -i ~/.ssh/id_rsa.pub $USER@slave2

通过运行来确认事情 ping slave1 , ssh slave1 , ping slave2 , ssh slave2 等等。你应该有一个适当的React(记住通过键入退出每个ssh会话 exit 或者关闭终端。为了安全起见,我还确保所有节点都能够相互访问,而不仅仅是namenode/master)
[在所有计算机上]编辑core-site.xml文件

nano /usr/local/hadoop/etc/hadoop/core-site.xml

core-site.xml文件

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>master:9000</value>
        <description>NameNode URI</description>
    </property>
</configuration>

[在所有机器上]编辑yarn-site.xml文件

nano /usr/local/hadoop/etc/hadoop/yarn-site.xml

yarn-site.xml文件

<configuration>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>master</value>
        <description>The hostname of the RM.</description>
    </property>
    <property>
         <name>yarn.nodemanager.aux-services</name>
         <value>mapreduce_shuffle</value>
    </property>
    <property>
         <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
         <value>org.apache.hadoop.mapred.ShuffleHandler</value>
    </property>
</configuration>

[在所有计算机上]修改从属文件,删除文本“localhost”并添加从属主机名

nano /usr/local/hadoop/etc/hadoop/slaves

奴隶

slave1
slave2

(我想只在namenode/master上使用这个功能也可以,但无论如何,我在所有机器上都这么做了。还要注意的是,在这个配置中,主服务器的行为只是作为资源管理器,这就是我的意图。)
[在所有计算机上]修改hdfs-site.xml文件以更改属性的值 dfs.replication 到大于1的某个值(至少到集群中从属的数量;这里我有两个奴隶,所以我会把它设置为2)
[仅在namenode/master上](通过namenode重新格式化hdfs

hdfs namenode -format

[可选]
删除 dfs.datanode.data.dir 来自主机的hdfs-site.xml文件的属性。
删除 dfs.namenode.name.dir 所有从属服务器的hdfs-site.xml文件中的属性。
测试(仅在namenode/master上执行)

start-dfs.sh;start-yarn.sh

echo "hello world hello Hello" > ~/Downloads/test.txt

hadoop fs -mkdir /input

hadoop fs -put ~/Downloads/test.txt /input

hadoop jar /usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar wordcount /input /output

等待几秒钟,Map器和还原器应该开始。
这些链接帮助我解决了这个问题:
https://stackoverflow.com/a/24544207/2534513
hadoopYarn安装:集群安装的最终指南

7vhp5slm

7vhp5slm2#

我跑步时也遇到了同样的问题
“hadoop jar hadoop-mapreduce-examples-2.6.4.jar wordcount/calculatecount//output”
命令停在那里,
我追踪了那份工作,发现“有15个街区不见了,而且都被破坏了”
然后我做了以下操作:1)运行“hdfs fsck/”2)运行“hdfs fsck/-delete”3)将“-a input-p tcp-j accept”添加到两个数据节点上的/etc/sysconfig/iptables 4)运行“stop-all.sh和start all.sh”
一切顺利
我认为防火墙是关键。

相关问题