Hadoop报错信息处理积累

一、报错信息:Shuffle Error: Exceeded MAX_FAILED_UNIQUE_FETCHES; bailing-out

错误描述:把Hadoop集群架设好以后,运行TestDFSIO基准测试,发现总是可以map成功,但是reduce总是卡在某个位置13%、11%、16%等,等待七分钟左右,输出信息Shuffle Error: Exceeded MAX_FAILED_UNIQUE_FETCHES; bailing-out。

原因分析:由于是在局域网中通信,使用的是主机名,主机名如果无法解析,则DataNode彼此无法找到对方,使得数据快无法复制,从而产生上述问题。

解决办法:在/etc/hosts文件中加入主机名和IP地址的映射

例如:我的hosts文件为:

127.0.0.1	localhost
192.168.1.2	chw-desktop2
192.168.1.3	chw-desktop
192.168.1.4	chw-ProLiant-DL380-G4

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

其中chw-desktop、chw-desktop2、chw-ProLiant-DL380-G4分别为其他DataNode的主机名,前面对应的是它们的IP 地址;

修改所有节点的hosts信息,搞定!!!困扰了好久,好久啊~~~

二、报错信息:org.apache.hadoop.hdfs.server.datanode.DataNode: java.io.IOException: Incompatible namespaceIDs in /var/lib/hadoop-0.20/cache/hdfs/dfs/data: namenode namespaceID = 240012870; datanode namespaceID = 1462711424 .

  错误描述:datanode无法正常启动,日志文件报上面的错。

         原因分析Namenode上namespaceID与datanode上namespaceID不一致。每次namenode format会重新创建一个namenodeId,而tmp/dfs/data下包含了上次format下的id,namenode format清空了namenode下的数据,但是没有清空datanode下的数据,所以造成namenode节点上的namespaceID与datanode节点上的namespaceID不一致。启动失败。

      解决办法:

  (1)停掉集群服务

  (2)在出问题的datanode节点上删除data目录,data目录即是在hdfs-site.xml文件中配置的dfs.data.dir目录,如果没有配置则存放在/tmp底下,可以把/tmp底下的所有带Hadoop字样的文件和文件夹全部删除。

  (3)格式化namenode.

  (4)重新启动集群。

  问题解决。

三、报错信息:org.apache.hadoop.security.AccessControlException: org.apache.hadoop.security.AccessControlException: Permission denied: user=DrWho, access=WRITE, inode="hadoop":hadoop:supergroup:rwxr-xr-x

     错误描述:从windows底下访问hadoop集群,报上述错误。

      原因分析:Hadoop有权限限制,固定的用户组只能访问固定的文件,windows底下的用户访问hadoop,没有相关权限。

      解决办法:在hdfs-site.xml中加入如下属性:

      
          dfs.permissions
          false
          
              If "true", enable permission checking in HDFS.
              If "false", permission checking is turned off,
              but all other behavior is unchanged.
              Switching from one parameter value to the other does not change the mode,
              owner or group of files or directories.
          
      

      PS:上述方法会降低Hadoop的安全性

你可能感兴趣的:(Linux平台)