4.4.2. ## 集群搭建常见错误

` 1) 防火墙没关闭 2) 主机名称配置错误 3) ip 地址配置错误 4) ssh 没有配置好 5)  服务器集群时间不同步 6) 配置文件修改不仔细 `

### 7) 在启动HDFS时,datanode 不被 namenode 识别问题

Namenode 在 format 初始化的时候会形成两个标识, blockPoolId 和 clusterId。新的datanode 加入时, 会获取这两个标识作为自己工作目录中的标识。
一旦 namenode 重新 format 后, namenode 的身份标识已变,而 datanode 如果依然持有原来的 id,就不会被 namenode 识别。
解决办法,删除 datanode 节点中的数据后,再次重新格式化 namenode。

解决方案链接:
https://blog.csdn.net/qq_16633405/article/details/75054228

### 8) 问题描述:The auxService:mapreduce_shuffle does not exist

INFO mapreduce.Job: Task Id : attempt_1461808335315_0001_m_000000_1, Status : FAILED
Container launch failed for container_1461808335315_0001_01_000003 : org.apache.hadoop.yarn.exceptions.InvalidAuxServiceException: The auxService:mapreduce_shuffle does not exist
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
        at org.apache.hadoop.yarn.api.records.impl.pb.SerializedExceptionPBImpl.instantiateException(SerializedExceptionPBImpl.java:168)
        at org.apache.hadoop.yarn.api.records.impl.pb.SerializedExceptionPBImpl.deSerialize(SerializedExceptionPBImpl.java:106)
        at org.apache.hadoop.mapreduce.v2.app.launcher.ContainerLauncherImpl$Container.launch(ContainerLauncherImpl.java:155)
        at org.apache.hadoop.mapreduce.v2.app.launcher.ContainerLauncherImpl$EventProcessor.run(ContainerLauncherImpl.java:369)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)

问题分析:The auxService:mapreduce_shuffle does not exist;yarn-site.xml配置文件有问题(注意单词拼写) 问题解决:vim /usr/local/hadoop/etc/hadoop/yarn-site.xml

<configuration>
  <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>

### 8) 问题描述:The auxService:mapreduce_shuffle does not exist

执行命令:bin/hadoop dfsadmin -safemode leave
这是因为在分布式文件系统启动的时候,开始的时候会有安全模式,当分布式文件系统处于安全模式的情况下,文件系统中的内容不允许修改也不允许删除,直到安全模式结束。安全模式主要是为了系统启动的时候检查各个DataNode上数据块的有效性,同时根据策略必要的复制或者删除部分数据块。运行期通过命令也可以进入安全模式。在实践过程中,系统启动的时候去修改和删除文件也会有安全模式不允许修改的出错提示,只需要等待一会儿即可。

可以通过以下命令来手动离开安全模式:

用户可以通过dfsadmin -safemode value 来操作安全模式,参数value的说明如下:
enter - 进入安全模式
leave - 强制NameNode离开安全模式
get - 返回安全模式是否开启的信息
wait - 等待,一直到安全模式结束。