java - 使用 “hdfs zkfc -formatZK”时未为此名称节点启用HA

标签 java hadoop

我正在使用Zookeeper建立一个单节点hadoop集群
我的Zookeeper群集有三个节点,它们在同一台机器上具有不同的端口。它们工作正常。
我的hadoop集群只有一个节点。我的hadoop和zookeeper在同一台机器上。当使用“hdfs zkfc -formatZK”时,它们告诉我:线程“main”中的异常org.apache.Hadoop.HadoopIllegalArgumentException:为此未启用HA名字节点

我的core-site.xml:

<configuration>
 <property>    
      <name>fs.defaultFS</name>    
      <value>hdfs://yavin</value>    
 </property>
 <property>
      <name>hadoop.tmp.dir</name>
      <value>/usr/local/hadoop/hdfs/temp</value>
 </property>                             
 <property>    
      <name>io.file.buffer.size</name>    
      <value>4096</value>    
 </property>
 <property>
      <name>ha.zookeeper.quorum</name>
      <value>coruscant:2181,coruscant:2182,coruscant:2183</value>
 </property>
 </configuration>

coruscant正在将我的IP地址映射到hosts文件中。我所有的动物园管理员都使用端口2181 2182 2183进行腐 eclipse

我的hdfs-site.xml:

<configuration>   
    <property>    
        <name>dfs.nameservices</name>    
        <value>yavin</value>    
    </property>  
    <property>
       <name>dfs.ha.namenodes.yavin</name>
       <value>nn1</value>
    </property>
    <property>
       <name>dfs.namenode.rpc-address.yavin.nn1</name>
       <value>coruscant:9000</value>
    </property>
    <property>
        <name>dfs.namenode.http-address.yavin.nn1</name>
        <value>coruscant:50070</value>
    </property>
    <property>
        <name>dfs.namenode.servicerpc-address.yavin.nn1</name>
        <value>coruscant:53310</value>
    </property>
    <property>
         <name>dfs.namenode.shared.edits.dir</name>
         <value>qjournal://coruscant:8485;coruscant:8486;coruscant:8487/yavin</value>
    </property>
    <property>
          <name>dfs.journalnode.edits.dir</name>
          <value>/usr/local/hadoop/journal</value>
    </property>
    <property>
          <name>dfs.ha.automatic-failover.enabled</name>
          <value>true</value>
    </property>
    <property>
            <name>dfs.client.failover.proxy.provider.yavin</name>
            <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
    </property>
    <property>
             <name>dfs.ha.fencing.methods</name>
             <value>sshfence</value>
    </property>
    <property>
            <name>dfs.ha.fencing.ssh.private-key-files</name>
            <value>/root/.ssh/id_rsa</value>
    </property>                              
    <property>    
        <name>dfs.namenode.name.dir</name>    
        <value>file:///usr/local/hadoop/hdfs/name</value>    
    </property>    
    <property>    
        <name>dfs.datanode.data.dir</name>    
        <value>file:///usr/local/hadoop/hdfs/data</value>    
    </property>    
    <property>    
       <name>dfs.replication</name>    
       <value>2</value>    
    </property>                                                                     <property>    
       <name>dfs.webhdfs.enabled</name>    
       <value>true</value>    
    </property>    
<property>
        <name>dfs.permissions.enable</name>
        <value>false</value>
    </property>
    <property>
        <name>dfs.permissions</name>
        <value>false</value>
    </property>
</configuration>

我的mapred-site.xml:

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

我的yarn-site.xml:

<configuration>
    <property>
           <name>yarn.resourcemanager.ha.enabled</name>
           <value>true</value>
    </property>
    <property>    
            <name>yarn.nodemanager.aux-services</name>    
            <value>mapreduce_shuffle</value>    
     </property>  
     <property>
            <name>yarn.resourcemanager.hostname</name>
            <value>coruscant</value>
      </property> 
</configuration>

我做错了什么?

最佳答案

我遇到了同样的问题。阅读 HAUtil.isHAEnabled() 的源代码后,我找到了解决方案:

仅当您配置了多个名称节点时,HDFS高可用性才可用。该错误消息仍然有些误导。

关于java - 使用 “hdfs zkfc -formatZK”时未为此名称节点启用HA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43201830/

相关文章:

hadoop - 在HIVE查询中设置变量

java - 在方法 java 中设置按钮操作

hadoop - 当本地模式下数据不适合 RAM 时,如何设置 Apache Spark 以使用本地硬盘?

hadoop - 如何决定并行映射器/ reducer 以及堆内存的数量?

sql - 插入到HIVE

apache-spark - 使用 pyspark 从 S3 读取数据抛出 java.lang.NumberFormatException : For input string: "100M"

java - ionic 电容器 Admob 插件 loadAd null 对象引用

java - 如何实现插入排序?

java - .NET JPA 规范

java - 从 Xmappr 更改为 BeanIO