Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法在hadoop中启动namenode?_Java_Apache_Hadoop - Fatal编程技术网

Java 无法在hadoop中启动namenode?

Java 无法在hadoop中启动namenode?,java,apache,hadoop,Java,Apache,Hadoop,我在Windows7中配置Hadoop 它可以设置单节点群集。 当运行hdfs namenode-format格式化namenode时,它会引发如下异常: 当start all.cmd自动强制windows namenode时,我可以在address–中打开namenode GUI 16/01/19 15:18:58警告namenode.FSEditLog:没有为C配置类,dfs.namenode.edits.journal plugin.C为空 16/01/19 15:18:58错误namen

我在Windows7中配置Hadoop 它可以设置单节点群集。 当运行
hdfs namenode-format
格式化namenode时,它会引发如下异常: 当
start all.cmd
自动强制windows namenode时,我可以在address–中打开namenode GUI

16/01/19 15:18:58警告namenode.FSEditLog:没有为C配置类,dfs.namenode.edits.journal plugin.C为空
16/01/19 15:18:58错误namenode.namenode:无法启动namenode。java.lang.IllegalArgumentException:org.apache.hadoop.hdfs.server.namenode.FSEditLog.getJournalClass(FSEditLog.java:1615)org.apache.hadoop.hdfs.server.namenode.FSEditLog.createJournal(FSEditLog.java:1629)上没有为C配置类org.apache.hadoop.hdfs.server.namenode.FSEditLog.initJournals(FSEditLog.java:282)org.apache.hadoop.hdfs.server.namenode.FSEditLog.initJournalsForWrite(FSEditLog.java:247)org.apache.hadoop.hdfs.server.namenode.namenode.format(namenode.java:985)org.apache.hadoop.hdfs.server.namenode.namenode.createNameNode(namenode.java:1429)org.apache.hadoop.hdfs.server.namenode.namenode.main(namenode.java:1554)19年1月16日15:18:58 INFO util.ExitUtil:以状态1退出19年1月16日15:18:58 INFO namenode.namenode:关机消息:/******************************************************************************************************************************************

Core-site.xml

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
</configuration>   

fs.defaultFS
hdfs://localhost:9000
hdfs-site.xml

<configuration>
   <property>
       <name>dfs.replication</name>
       <value>1</value>
   </property>
   <property>
       <name>dfs.namenode.name.dir</name>
       <value>C:/hadoop/data/namenode</value>
   </property>
   <property>
       <name>dfs.datanode.data.dir</name>
       <value>C:/hadoop/data/datanode</value>
   </property>
</configuration>

dfs.replication
1.
dfs.namenode.name.dir
C:/hadoop/data/namenode
dfs.datanode.data.dir
C:/hadoop/data/datanode
mapred-site.xml

<configuration>
    <property>
       <name>mapreduce.framework.name</name>
       <value>yarn</value>
    </property>
</configuration>

mapreduce.framework.name
纱线
web-site.xml

<configuration>
   <property>
       <name>yarn.nodemanager.aux-services</name>
       <value>mapreduce_shuffle</value>
   </property>
   <property>
       <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
       <value>org.apache.hadoop.mapred.ShuffleHandler</value>
   </property>
</configuration>

纱线.节点管理器.辅助服务
mapreduce_shuffle
warn.nodemanager.aux-services.mapreduce.shuffle.class
org.apache.hadoop.mapred.ShuffleHandler

从更改以下属性:

<property>
   <name>dfs.namenode.name.dir</name>
   <value>C:/hadoop/data/namenode</value>
</property>
<property>
   <name>dfs.datanode.data.dir</name>
   <value>C:/hadoop/data/datanode</value>
</property>

dfs.namenode.name.dir
C:/hadoop/data/namenode
dfs.datanode.data.dir
C:/hadoop/data/datanode
致:


dfs.namenode.name.dir
/hadoop/data/namenode
dfs.datanode.data.dir
/hadoop/data/datanode

对于windows,目录应类似于此格式
/c:/path/to/dir
file:///D:/path/to/dir

我已尝试使用“/hadoop/data/namenode”,由于不存在指定的namenode目录,因此无法启动namenode。。我发现它在使用“/hadoop/data/namenode”时将文件存储在c驱动器中,但在启动dfs时,它将解析相对于hadoop源所在驱动器的路径

我已切换到使用以下功能,效果良好:

<property>
   <name>dfs.namenode.name.dir</name>
   <value>/d:/hadoop/data/namenode</value>
</property>
<property>
   <name>dfs.datanode.data.dir</name>
   <value>/d:/hadoop/data/datanode</value>
</property>

dfs.namenode.name.dir
/d:/hadoop/data/namenode
dfs.datanode.data.dir
/d:/hadoop/data/datanode

提示:不要忘记驱动器名前面的前缀斜杠
/d://

我通过在hadoop根位置添加namenode和datanode并使用

<property>
    <name>dfs.namenode.name.dir</name>
    <value>F:\hadoop-2.7.2\data\namenode</value>
</property>

dfs.namenode.name.dir
F:\hadoop-2.7.2\data\namenode
不要使用反斜杠,而是使用正斜杠
F:/hadoop-2.7.2/data/namenode
或者,将其设置为有效的URI
file:///f:/hadoop-2.7.2/数据/名称节点

<property>
    <name>dfs.namenode.name.dir</name>
    <value>F:\hadoop-2.7.2\data\namenode</value>
</property>