hadoop完全分布式遇到的问题总结

第一步、确保你的jdk、hadoop、SSH免密已经配置好了,开启2台以上的虚拟机,并且能正常上网(后面放大招啦)

第二部、配置/etc/hosts文件(如下格式)

192.168.244.128   hadoop02
192.168.244.129   hadoop03
192.168.244.130   hadoop04

第三步、配置hadoop/etc/hadoop下面的core.site.xml, hdfs-site.xml, mapred-site.xml, yarn-site.xml

             其中这个文件夹有3个.sh文件需要添加一个JAVA_HOME的真实路径-->hadoop-env.sh , yarn-env.sh ,mapred-env.sh

开始修改4个配置文件  本人使用的是 hadoop02,hadoop03, hadoop04 三台虚拟机

core.site.xml

 <!-- 指定HADOOP所使用的文件系统schema(URI),HDFS的老大(NameNode)的地址 -->   
 <property>        
        <name>fs.defaultFS</name>           
         <value>hdfs://hadoop02:9000</value>   
 </property>
 <!-- 配置临时数据存放的存储目录-->
<property>
   <name>hadoop.tmp.dir</name>
      <value>/usr/local/hadoop-2.7.2/data/tmp</value>
</property>

hdfs.site.xml

<!-- 指定HDFS副本的数量 --> 
        <property>   
                 <name>dfs.replication</name>    
                 <value>3</value>
        </property>
        <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>hadoop04:50090</value>
        </property>

mapred-site.xml

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

yarn-site.xml

<property>
        <name>yarn.resourcemanager.hostname</name>
        <value>hadoop03</value>
</property>
<!--指定rm的shuffle -->
<property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
</property>

常见的问题:

1 防火墙没关闭、或者没有启动

yarnINFO client.RMProxy: Connecting to ResourceManager at hadoop108/192.168.10.108:8032

2主机名称配置错误

3ip 地址配置错误

4ssh 没有配置好

5root 用户和 hadoop0x两个用户启动集群不统一

6配置文件修改不细心

7防火墙没关闭、或者没有启动 yarn

INFO client.RMProxy: Connecting to ResourceManager at hadoop108/192.168.10.108:8032

8 datanode 不被 namenode 识别问题

        Namenode 在 format 初始化的时候会形成两个标识,blockPoolId 和 clusterId。新的

datanode 加入时,会获取这两个标识作为自己工作目录中的标识。

一旦 namenode 重新 format 后,namenode 的身份标识已变,而 datanode 如果依然持有原来的 id,就不会被 namenode 识别。

解决办法,1、删除 datanode 节点中的数据后,再次重新格式化 namenode。2、将namenode里的clusterld复制一个,把datanode里的clusterld覆盖掉

9 jps 发现进程已经没有,但是重新启动集群,提示进程已经开启。原因是在 linux 的根 目录下/tmp 目录中存在启动的进程临时文件,将集群相关进程删除掉,再重新启动集群。

10 jps 不生效。

原因:全局变量 hadoop      java 没有生效,需要 source /etc/profile 文件。

最最重要的一点(坑了小编一下午)

如果配置过程全程用的root权限 不会出现这个错误

如果用的是普通用户的请注意了:

3台机器上面的普通用户必须配置名字一样 例如:

节点hadoop02    一般用户名hadoop02

节点hadoop03   一般用户名也要配置hadoop02

节点hadoop03    一般用户名也要配置hadoop02

不然start-all.dfs启动的时候,datanode节点上面就会出现启动成功(或者卡住需强退ctrl+c),浏览器端不显示,--> 说明还是没启动成功

总之就是使用一般用户的时候把几台虚拟机的一般用户配置名称一样就行了,可以减少错误的发生

小编qq602862011 欢迎一起探讨学习

 

 

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值