我正在使用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>
我做错了什么?
1条答案
按热度按时间hgb9j2n61#
我也遇到了同样的问题。在阅读了
HAUtil.isHAEnabled()
我找到了解决办法:hdfs高可用性仅在配置了多个namenode时可用。不过,这个错误消息还是有点误导。