【问题标题】:nodemanager is connected to resourcemanager, but datanode is not connected to namenodenodemanager连接到resourcemanager,但是datanode没有连接到namenode
【发布时间】:2015-04-26 01:44:27
【问题描述】:

我在 CentOS 7.0 上安装 hadoop 2.5.1。

(1) 当我通过hadoop运行应用程序时,我怀疑消息路径“/tmp/hadoop-yarn/staging/hadoop/.staging/job_1424775783787_0001/files”是由于兼容性引起的。 如果是兼容性问题,那我该如何修补呢?

15/02/24 20:27:41 错误流。StreamJob:错误启动作业: 文件 /tmp/hadoop-yarn/staging/hadoop/.staging/job_1424775783787_0001/files/Formatter.sh 只能复制到 0 个节点而不是 minReplication (=1)。有 0 个数据节点正在运行,此操作中没有排除任何节点。

(2) 监听端口master:9000,但是datanode没有连接到master, 但是节点管理器还活着。 所以我可以从 8088 端口检查活动的数据节点 但是它没有检查 50070 端口

配置如下。

主机文件

    XXX.XXX.XXX.65 mccb-com65 #server
    XXX.XXX.XXX.66 mccb-com66  #client01
    XXX.XXX.XXX.67 mccb-com67  #client02
    127.0.1.1      mccb-com65 (mccb-com66, mccb-com67 per computer setting)
    127.0.0.1      localhost

核心站点.xml

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

hdfs-site.xml

<configuration>
 <property>
   <name>dfs.name.dir</name>
   <value>file:///home/hadoop/hdfs/hdfs/namenode</value>
   <description>the path which save the file system image </description>
</property>
<property>
   <name>dfs.data.dir</name>
   <value>file:///home/hadoop/hdfs/hdfs/datanode</value>
   <description>the path which the datanode save the block</description>
</property>
<property>
   <name>dfs.http.address</name>
   <value>0.0.0.0:50070</value>
</property>
<property>
    <name>dfs.datanode.http.address</name>
    <value>0.0.0.0:50075</value>
</property>
<property>
    <name>dfs.datanode.ipc.address</name>
    <value>0.0.0.0:50020</value>
</property>
<property>
    <name>dfs.replication</name>
    <value>3</value>
</property>

mapred-site.xml

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <property>
       <name>mapred.child.java.opts</name>
       <value>-Xmx400m</value>
    </property>
    <property>
       <name>mapreduce.jobhistory.address</name>
       <value>0.0.0.0:10020</value>
    </property>
   <property>
       <name>mapreduce.jobhistory.webapp.address</name>
       <value>0.0.0.0:19888</value>
    </property>
    <property>
        <name>mapred.system.dir</name>
        <value>/home/hadoop/hdfs/hdfs/mapred/system</value>
       <final>true</final>       
    </property>
    <property>
        <name>mapred.local.dir</name>
        <value>/home/hadoop/hdfs/hdfs/mapred/local</value>
        <final>true</final>
    </property>
</configuration>

yarn-site.xml

<configuration>
   <property>
      <name>yarn.resourcemanager.resource-tracker.address</name>
      <value>XXX.XXX.XXX.65:8031</value>
   </property>
   <property> 
       <name>yarn.resourcemanager.scheduler.address</name>
      <value>XXX.XXX.XXX.65:8030</value>
   </property>
   <property> 
       <name>yarn.resourcemanager.address</name>
       <value>XXX.XXX.XXX.65:8032</value>
   </property>
   <property>
       <name>yarn.nodemanager.aux-services</name>
       <value>mapreduce_shuffle</value>
   </property>
   <property>
       <name>yarn.resoucemanager.webapp.address </name>
       <value>XXX.XXX.XXX.65:8088</value>
    </property>
    <property>
       <name>yarn.nodemanager.webapp.address  </name>
       <value>0.0.0.0:8042</value>
    </property>
  </configuration>

[root@mccb-com65 ~]# netstat -antlp

活动的 Internet 连接(服务器和已建立) 原型 Recv-Q Send-Q 本地地址 外国地址状态
PID/程序名称 tcp 0 0 127.0.0.1:25
0.0.0.0:* LISTEN 2868/master tcp 0 0 0.0.0.0:3389 0.0.0.0:* LISTEN
1746/xrdp tcp 0 0 XXX.XXX.XXX.65:8030
0.0.0.0:* LISTEN 10858/java tcp 0 0 XXX.XXX.XXX.65:8031 0.0.0.0:* LISTEN
10858/java tcp 0 0 XXX.XXX.XXX.65:8032
0.0.0.0:* LISTEN 10858/java tcp 0 0 0.0.0.0:8033 0.0.0.0:* LISTEN
10858/java tcp 0 0 0.0.0.0:50885
0.0.0.0:* LISTEN 2282/rpc.statd tcp 0 0 XXX.XXX.XXX.65:9000 0.0.0.0:* LISTEN
10470/java tcp 0 0 0.0.0.0:50090
0.0.0.0:* LISTEN 10684/java tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
1753/rpcbind tcp 0 0 0.0.0.0:50070
0.0.0.0:* LISTEN 10470/java tcp 0 0 127.0.0.1:3350 0.0.0.0:* LISTEN
1745/xrdp-sesman tcp 0 0 0.0.0.0:22
0.0.0.0:* LISTEN 1761/sshd tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN
3278/cupsd tcp 0 0 127.0.0.1:5911
0.0.0.0:* LISTEN 3053/Xvnc tcp 0 0 0.0.0.0:8088 0.0.0.0:* LISTEN
10858/java tcp 0 0 XXX.XXX.XXX.65:8031
XXX.XXX.XXX.67:44914 已建立 10858/java tcp 0 0 XXX.XXX.XXX.65:42505 XXX.XXX.XXX.65:9000 TIME_WAIT - tcp 0 0 127.0.0.1:5911 127.0.0.1:50271
已建立 3053/Xvnc tcp 0 0 XXX.XXX.XXX.65:3389 XXX.XXX.XXX.96:52951 已建立 1746/xrdp tcp 0 0 127.0.0.1:50271
127.0.0.1:5911 已建立 1746/xrdp tcp 0 0 XXX.XXX.XXX.65:8031 XXX.XXX.XXX.66:46816 已建立 10858/java tcp6 0 0 :::44331 :::* 听 2282/rpc.statd tcp6 0 0 :::111
:::* 听 1753/rpcbind tcp6 0 0 :::22 :::* 听
1761/sshd

【问题讨论】:

    标签: java hadoop


    【解决方案1】:

    以下步骤应该可以解决此问题。 但是,您可能会丢失数据。

    • 停止 Hadoop:

      • sbin/stop-dfs.sh
      • sbin/stop.yarn.sh
    • 删除NameNode & DataNode:

      • hdfs dfs -rm -r /hdfs/namenode
      • hdfs dfs -rm -r /hdfs/datanodenode
    • 格式化NameNode

      • hdfs 名称节点格式
    • 启动 NameNode、Datanodes 和 YARN

      • sbin/start-dfs.sh
      • sbin/start-yarn.sh

    【讨论】:

    • @EunhuiKim 很高兴它成功了。如果您能接受答案作为您问题的解决方案,那就太好了。它将帮助许多其他人寻找完全相同的问题的解决方案。 stackoverflow.com/help/someone-answers
    • 我愿意,这是我在stackoverflow中的第一个问题,所以我对stackoverflow甚至写作和选择,chcking都不熟悉...... ^^
    • 删除datanode和namenode时,我只是以root用户身份使用“rm -rf namenode”命令,因为hdfs dfs命令要求namenode处于活动状态以打开端口9000。^^
    猜你喜欢
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-29
    • 1970-01-01
    • 1970-01-01
    • 2017-11-08
    • 2012-05-12
    相关资源
    最近更新 更多