我正在尝试运行HDFS,但是namenode还没有开始,我也尝试通过命令启动它,如
sudo -l /usr/hdp/hadoop/sbin/hadoop-daemon.sh --config /usr/hdp/hadoop/conf start namenode
但它没有开始。我看过hadoop日志并得到以下错误:
错误
2015-04-28 10:36:04,752 FATAL namenode.NameNode (NameNode.java:main(1509)) - Failed to start namenode.java.io.FileNotFoundException: /hadoop/hdfs/namenode/in_use.lock (Permission denied)
at java.io.RandomAccessFile.open(Native Method)
at java.io.RandomAccessFile.<init>(RandomAccessFile.java:241)
at org.apache.hadoop.hdfs.server.common.Storage$StorageDirectory.tryLock(Storage.java:706)
at org.apache.hadoop.hdfs.server.common.Storage$StorageDirectory.lock(Storage.java:678)
at org.apache.hadoop.hdfs.server.common.Storage$StorageDirectory.analyzeStorage(Storage.java:499)
at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverStorageDirs(FSImage.java:308)
at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:202)
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFSImage(FSNamesystem.java:1022)
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFromDisk(FSNamesystem.java:741)at org.apache.hadoop.hdfs.server.namenode.NameNode.loadNamesystem(NameNode.java:536)
at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:595)
at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:762)
at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:746)
at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1438)
at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1504) 2015-04-28 10:36:04,755 INFO util.ExitUtil (ExitUtil.java:terminate(124)) - Exiting with status 1 2015-04-28 10:36:04,834 INFO namenode.NameNode (StringUtils.java:run(659)) - SHUTDOWN_MSG: /************************************************************
答案 0 :(得分:1)
无法启动namenode.java.io.FileNotFoundException: /hadoop/hdfs/namenode/in_use.lock(权限被拒绝) 在java.io.RandomAccessFile.open(本机方法)
如果您不将namenode作为hadoop用户启动,则可能会出现此错误。实际上,您尝试以root用户身份运行它,但文件/hadoop/hdfs/namenode/in_use.lock
由hadoop用户拥有。
不要使用sudo来启动hadoop processess。尝试在没有sudo的情况下启动它。试试这个:
/usr/hdp/hadoop/sbin/hadoop-daemon.sh --config /usr/hdp/hadoop/conf start namenode