在NameNode HA模式下集群的Kafka HDFS连接器
问题描述:
我在NameNode HA模式下有一个HDP集群。具体来说,该模式改变HDFS高级核心站点配置-fs.defaultFS的方式。在NameNode HA模式下集群的Kafka HDFS连接器
它是从hdfs://<host>:<port>
设置为(如在例如https://docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.4.2/bk_hadoop-ha/content/ha-nn-config-cluster.html示出):
<property> <name>fs.defaultFS</name> <value>hdfs://mycluster</value> </property>
此设置用于通过连接器的配置,hdfs.url=hdfs://mycluster
,它不连接,因为它不能找到的群集: Caused by: java.net.UnknownHostException: mycluster
我必须做的,而是使其工作,是设置hdfs.url=hdfs://<active NameNode fqdn>:8020
。但是,这不支持HA。如果将NameNode取下,则整个集成失败并且Kafka Connector不会切换到新的NameNode。
是否有人成功让Kafka HDFS Connect在HA模式下与NameNode一起使用?
答
您是否还有配置了HA设置的hdfs-site
?你能分享这些吗?你必须确保至少有:
dfs.nameservices
dfs.ha.namenodes.mycluster
dfs.client.failover.proxy.provider.mycluster
-
dfs.namenode.http-address.mycluster.*
和dfs.namenode.rpc-address.mycluster.*
当然,实际上我的群集名称不同,但让我们假设它是myCluster中。然后,nameservices设置为“myclusternameservice”,namenodes.mycluster设置为“nn1,nn2”,故障转移代理提供程序设置为“org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider”。对于名称节点http-address和rpc-address,我有两个NameNode的设置,例如dfs.namenode.http-address.mycluster.nn1 =“nn1.ourdomain.com:50070”和dfs.namenode.http-address.mycluster.nn2 =“nn2.ourdomain.com:50070”。 – wjp
所以你的'dfs.nameservices'设置为'myclusternameservice'或'mycluster',它应该是'mycluster'。不知道你在评论中是否有错字? – ravwojdyla
这是myclusternameservice以及所有其他配置使用myclusternameservice,所以实际上它是namenodes.myclusternameservice,dfs.namenode.http-address.myclusternameservice.nn1,dfs.namenode.http-address.myclusternameservice.nn2。对不起我早些时候的mystake! – wjp