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

来源:互联网 发布:维秘无日韩 知乎 编辑:程序博客网 时间:2024/06/05 13:33

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/sys

通过查看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.<init>(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相关文件(这里建议只删除hadoop相关的临时文件,因为/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即可,估计和这个也有关。

0 0
原创粉丝点击