formatzk”时,没有为此namenode启用java-ha

gfttwv5a  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(322)

我正在使用zookeeper建立一个单节点hadoop集群我的zookeeper集群有三个节点,它们在同一台机器上有不同的端口。它们工作正常。我的hadoop群集只有一个节点。我的hadoop和zookeepers在同一台计算机上。当使用“hdfs zkfc-formatzk”时,它们告诉我:线程“main”org.apache.hadoop.hadoopillegalargumentexception中的异常:没有为此namenode启用ha
my 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>

科洛桑正在主机文件中Map我的ip地址。我所有的Zookeeper都在科洛桑使用2181 2182 2183端口
我的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>

my mapred-site.xml:

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

my-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>

我做错了什么?

hgb9j2n6

hgb9j2n61#

我也遇到了同样的问题。在阅读了 HAUtil.isHAEnabled() 我找到了解决办法:
hdfs高可用性仅在配置了多个namenode时可用。不过,这个错误消息还是有点误导。

相关问题