2016-06-14 119 views
0

我在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一起使用?

回答

0

您是否還有配置了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.*
+0

當然,實際上我的羣集名稱不同,但讓我們假設它是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

+0

所以你的'dfs.nameservices'設置爲'myclusternameservice'或'mycluster',它應該是'mycluster'。不知道你在評論中是否有錯字? – ravwojdyla

+0

這是myclusternameservice以及所有其他配置使用myclusternameservice,所以實際上它是namenodes.myclusternameservice,dfs.namenode.http-address.myclusternameservice.nn1,dfs.namenode.http-address.myclusternameservice.nn2。對不起我早些時候的mystake! – wjp