laohanaa888 2014-08-09 13:50
浏览 644
已采纳

Hadoop RemoteException错误, Superuser privilege is required

环境信息:
Master:172.17.1.101
Slave1:172.17.1.102
Slave1:172.17.1.103

Exception in thread "main" org.apache.hadoop.ipc.RemoteException: org.apache.hadoop.security.AccessControlException: Access denied for user hadoop. Superuser privilege is required
at org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.checkSuperuserPrivilege(FSPermissionChecker.java:85)
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.checkSuperuserPrivilege(FSNamesystem.java:5742)
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.datanodeReport(FSNamesystem.java:4638)
at org.apache.hadoop.hdfs.server.namenode.NameNode.getDatanodeReport(NameNode.java:954)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

hadoop fs -put /opt/test.txt /opt/data/ 这个可以顺利执行
防火墙关了;也重新Format试过了,都不行

附件里含有日志和错误信息

  • 写回答

1条回答 默认 最新

  • De_Moivre 2014-08-09 22:58
    关注

    我看你的hadoop-hadoop-namenode-master.log中日志文件中有错误:
    [code="java"]2014-08-08 21:20:24,154 INFO org.apache.hadoop.hdfs.server.common.Storage: Cannot lock storage /opt/hadoop-1.2.1/tmp/dfs/name. The directory is already locked.
    2014-08-08 21:20:24,157 ERROR org.apache.hadoop.hdfs.server.namenode.FSNamesystem: FSNamesystem initialization failed.
    java.io.IOException: Cannot lock storage /opt/hadoop-1.2.1/tmp/dfs/name. The directory is already locked.
    at org.apache.hadoop.hdfs.server.common.Storage$StorageDirectory.lock(Storage.java:599)
    at org.apache.hadoop.hdfs.server.common.Storage$StorageDirectory.analyzeStorage(Storage.java:452)
    at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:299)
    at org.apache.hadoop.hdfs.server.namenode.FSDirectory.loadFSImage(FSDirectory.java:104)
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.initialize(FSNamesystem.java:427)
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.(FSNamesystem.java:395)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:299)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.(NameNode.java:569)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1479)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1488)[/code]

    楼主使用 ./hadoop namenode -format 命令是格式化命名空间,一定是在未启动 hadoop 服务的时候才能执行。出现这个错误提示有可能是因为 hadoop 的服务是子运行状态。是因为没有关闭hadoop就开始format,sh stop-all.sh 后 再format试试

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥35 平滑拟合曲线该如何生成
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了
  • ¥15 链式存储应该如何解决
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站