Ubuntu上安装Hadoop环境中org.apache.hadoop.security.UserGroupInformation: PriviledgedActionException

安装环境: ubuntu,  hadoop:  1.2.2    JDK:Java  1.7

在安装Hadoop集群的过程中碰到了如下问题:

ERROR org.apache.hadoop.security.UserGroupInformation: PriviledgedActionException as:hadoop cause:java.io.IOException: File /usr/hadoop_dir/tmp/mapred/system/jobtracker.info could only be replicated to 0 nodes, instead of 1
INFO org.apache.hadoop.ipc.Server: IPC Server handler 4 on 49000, call addBlock(/usr/hadoop_dir/tmp/mapred/system/jobtracker.info, DFSClient_NONMAPREDUCE_1570390041_1, null) from 192.168.2.99:56700: error: java.io.IOException: File /usr/hadoop_dir/tmp/mapred/system/jobtracker.info could only be replicated to 0 nodes, instead of 1

通过查看NameNode和DataNode的启动日志信息以及进程信息,发现两个数据节点中有如下错误信息:

DataNode Log info:
  2014-03-13 09:57:29,222 INFO org.apache.hadoop.metrics2.impl.MetricsConfig: loaded properties from hadoop-metrics2.properties
2014-03-13 09:57:29,305 INFO org.apache.hadoop.metrics2.impl.MetricsSourceAdapter: MBean for source MetricsSystem,sub=Stats registered.
2014-03-13 09:57:29,305 INFO org.apache.hadoop.metrics2.impl.MetricsSystemImpl: Scheduled snapshot period at 10 second(s).
2014-03-13 09:57:29,305 INFO org.apache.hadoop.metrics2.impl.MetricsSystemImpl: DataNode metrics system started
2014-03-13 09:58:12,257 INFO org.apache.hadoop.metrics2.impl.MetricsSourceAdapter: MBean for source ugi registered.
2014-03-13 09:58:12,278 WARN org.apache.hadoop.metrics2.impl.MetricsSystemImpl: Source name ugi already exists!
2014-03-13 09:58:12,871 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.io.IOException: Incompatible namespaceIDs in /home/bladestone/hadoop-1.2.1/tmp/dfs/data: namenode namespaceID = 593374526; datanode namespaceID = 996487692
        at org.apache.hadoop.hdfs.server.datanode.DataStorage.doTransition(DataStorage.java:232)
        at org.apache.hadoop.hdfs.server.datanode.DataStorage.recoverTransitionRead(DataStorage.java:147)
        at org.apache.hadoop.hdfs.server.datanode.DataNode.startDataNode(DataNode.java:414)
        at org.apache.hadoop.hdfs.server.datanode.DataNode.(DataNode.java:321)
        at org.apache.hadoop.hdfs.server.datanode.DataNode.makeInstance(DataNode.java:1712)
        at org.apache.hadoop.hdfs.server.datanode.DataNode.instantiateDataNode(DataNode.java:1651)
        at org.apache.hadoop.hdfs.server.datanode.DataNode.createDataNode(DataNode.java:1669)
        at org.apache.hadoop.hdfs.server.datanode.DataNode.secureMain(DataNode.java:1795)
        at org.apache.hadoop.hdfs.server.datanode.DataNode.main(DataNode.java:1812)

解决步骤:

1.   检查防火墙是否关闭,我的系统是Ubuntu,执行下述命令:

     sudo ufw status  --> 检查当前的ufw状态,  sudo  ufw disable --> 关闭ufw

     确认ufw被关闭,由于是实验环境,暂且直接关闭,一般而言,是需要添加开发端口而已。

2.   针对DataNode中的问题,有同学说是需要清除tmp下的临时文件。 故执行下属操作:

rm -fr tmp/*   删除tmp下所有文件
    则第二次重新启动hadoop集群的过程中,dataNode中的错误信息消失。

     经过分析:  主要是重新启动Hadoop集群之前,进行namenode的格式化,导致了datanode的中namespace的不匹配,所以,需要清除其中的tmp文件。

3.  重新检查了一遍各个几点的主机名信息,注释掉了127.0.0.1的信息。

    重新调整了一下主机名列表,位置/etc/hosts

4.  重新确认了一下配置文件中,是否有错误配置,比如core-site.xml, hdfs-core.xml等涉及主机名的配置,确保没有问题。

5. 清除tmp下的临时文件

6.  bin/hadoop namenode -format:    格式化namenode的信息

7.  bin/start-all.sh

成功启动,并未发现上述的错误信息。   主要的修改是Hosts中的内容. 在研究这个问题过程,曾经有人提示过,可以直接给IP即可,估计和这个也有关。


后续补充:

     在之后的几次重新启动过程中,还是时常会发现上述namenode的错误信息,不过namenode和datanode都可以正常启动,不知所谓何故。如果各位同学有知道为什么,请不吝告知。

  

你可能感兴趣的:(Ubuntu上安装Hadoop环境中org.apache.hadoop.security.UserGroupInformation: PriviledgedActionException)