我想开始名为HaLoop的hadoop修改,但我在namenode中遇到了问题。它没有启动并给出以下错误
org.apache.hadoop.hdfs.server.common.InconsistentFSStateException:目录/ app / haloop / tmp / name处于不一致状态:存储目录不存在或无法访问。
完整的日志如下:
2013-07-05 14:04:38,735 INFO org.apache.hadoop.hdfs.server.namenode.NameNode:STARTUP_MSG: / * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * *** STARTUP_MSG:启动NameNode STARTUP_MSG:host = elmorsy / 127.0.1.1 STARTUP_MSG:args = [] STARTUP_MSG:version = 0.20.2-dev STARTUP_MSG:build = https://haloop.googlecode.com/svn/trunk -r 408; 由' hduser编译'在6月29日星期六06:41:37 EET 2013 的 * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * *** / 2013-07-05 14:04:39,620 INFO org.apache.hadoop.ipc.metrics.RpcMetrics: 使用hostName = NameNode初始化RPC度量标准,port = 50010 2013-07-05 14:04:39,679 INFO org.apache.hadoop.hdfs.server.namenode.NameNode: Namenode up at:localhost / 127.0.0.1:50010 2013-07-05 14:04:39,701 INFO org.apache.hadoop.metrics.jvm.JvmMetrics:初始化JVM指标 with processName = NameNode,sessionId = null 2013-07-05 14:04:39,711 INFO org.apache.hadoop.hdfs.server.namenode.metrics.NameNodeMetrics: 使用上下文初始化NameNodeMeterics object:org.apache.hadoop.metrics.spi.NullContext 2013-07-05 14:04:40,360 INFO org.apache.hadoop.hdfs.server.namenode.FSNamesystem: fsOwner = hduser,hadoop 2013-07-05 14:04:40,360 INFO org.apache.hadoop.hdfs.server.namenode.FSNamesystem: supergroup = supergroup 2013-07-05 14:04:40,360 INFO org.apache.hadoop.hdfs.server.namenode.FSNamesystem: isPermissionEnabled = true 2013-07-05 14:04:40,388 INFO org.apache.hadoop.hdfs.server.namenode.metrics.FSNamesystemMetrics: 使用上下文初始化FSNamesystemMetrics object:org.apache.hadoop.metrics.spi.NullContext 2013-07-05 14:04:40,392 INFO org.apache.hadoop.hdfs.server.namenode.FSNamesystem: 已注册FSNamesystemStatusMBean 2013-07-05 14:04:40,531 INFO org.apache.hadoop.hdfs.server.common.Storage:存储目录 / app / haloop / tmp / dfs / name不存在。 2013-07-05 14:04:40,547错误 org.apache.hadoop.hdfs.server.namenode.FSNamesystem:FSNamesystem 初始化失败。 org.apache.hadoop.hdfs.server.common.InconsistentFSStateException: 目录/ app / haloop / tmp / dfs / name处于不一致状态: 存储目录不存在或无法访问。 在org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:290) at org.apache.hadoop.hdfs.server.namenode.FSDirectory.loadFSImage(FSDirectory.java:87) 在org.apache.hadoop.hdfs.server.namenode.FSNamesystem.initialize(FSNamesystem.java:311) 在org.apache.hadoop.hdfs.server.namenode.FSNamesystem。(FSNamesystem.java:292) at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:201) 在org.apache.hadoop.hdfs.server.namenode.NameNode。(NameNode.java:279) at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:956) 在org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:965) 2013-07-05 14:04:40,557 INFO org.apache.hadoop.ipc.Server:停止 服务器50010 2013-07-05 14:04:40,564错误 org.apache.hadoop.hdfs.server.namenode.NameNode: org.apache.hadoop.hdfs.server.common.InconsistentFSStateException: 目录/ app / haloop / tmp / dfs / name处于不一致状态: 存储目录不存在或无法访问。在 org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:290) at org.apache.hadoop.hdfs.server.namenode.FSDirectory.loadFSImage(FSDirectory.java:87) 在 org.apache.hadoop.hdfs.server.namenode.FSNamesystem.initialize(FSNamesystem.java:311) 在org.apache.hadoop.hdfs.server.namenode.FSNamesystem。(FSNamesystem.java:292) at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:201) 在org.apache.hadoop.hdfs.server.namenode.NameNode。(NameNode.java:279) at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:956) 在org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:965)
2013-07-05 14:04:40,572 INFO org.apache.hadoop.hdfs.server.namenode.NameNode:SHUTDOWN_MSG: / * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * *** SHUTDOWN_MSG:在elmorsy / 127.0.1.1处关闭NameNode 的 * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * *** /
我尝试重新格式化NameNode,但它没有解决问题。
任何帮助?
答案 0 :(得分:2)
确保您使用的是相应的用户,并且该目录具有适当的权限。使用这些命令可以更改目录的用户和权限,以备不时之需:
sudo chown -R haloop_user:haloop_user_group /app/haloop/tmp/name
sudo chmod -R 755 /app/haloop/tmp/name
HTH
答案 1 :(得分:0)
感谢Tariq的回答,我解决了它。 此外,您还应该chown和chmod整个hadoop执行文件夹:
sudo chown -R hadoop_user:haloop_user_group /usr/local/hadoop
sudo chmod -R 755 /usr/local/hadoop