NiFi 处理器无法连接到 Zookeeper

Posted

技术标签:

【中文标题】NiFi 处理器无法连接到 Zookeeper【英文标题】:NiFi processors cannot connect to Zookeeper 【发布时间】:2021-03-17 12:15:31 【问题描述】:

我正在将 Apache NiFi 1.9.2(安全集群)与 HDP 3.1.4 集成。 HDP 包含带有 SASL 身份验证 (Kerberos) 的 Zookeeper 3.4.6。 NiFi 节点成功连接到此 Zookeeper,同步流并记录心跳。

同时,使用 Zookeeper 的 NiFi 处理器无法连接。 GenerateTableFetch 抛出:

org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Could not open client transport for any of the Server URI's in ZooKeeper: Unable to read HiveServer2 uri from ZooKeeper)

ListHDFS 尝试将其状态写入 ZooKeeper 失败:

o.apache.nifi.processors.hadoop.ListHDFS ListHDFS  Failed to retrieve timestamp of last listing from the State Manager. Will not perform listing until this is accomplished.

但 GetHDFS(不与 zk 通信)工作正常。 启用 HiveConnector 可以正常工作。

感谢您之前的任何想法和支持。

【问题讨论】:

您的state-management.xml 是如何配置的? @BenYaakobi 谢谢,我错过了 state-management.xml 中的 zk 连接字符串! ListHDFS 现在可以工作了。但是,GenerateTableFetch 仍然会抛出异常。它从 zk 和 Could not open client transport with JDBC Uri community.cloudera.com/t5/Support-Questions/… 读取 hive url 【参考方案1】:

首先,我错过了 state-management.xml 中的 zk 连接字符串(感谢@BenYaakobi 的注意)。

其次,Hive 处理器与来自nifi-hive3-nar library 的 Hive3ConnectionPool 一起使用。库包含 Hive3* 处理器,但 Hive1*(例如 SelectHiveQL、GenerateTableFetch)处理器也适用于 Hive3 连接器。

【讨论】:

以上是关于NiFi 处理器无法连接到 Zookeeper的主要内容,如果未能解决你的问题,请参考以下文章

将 SQL 连接到 apache nifi

无法使用 Zookeeper 连接字符串通过 JDBC 连接到 Hive

我的 kafka docker 容器无法连接到我的 zookeeper docker 容器

无法使用localhost中的Solr连接到ZooKeeper

无法使用 apache .NET 库从 C# 应用程序连接到 ZooKeeper

无法从主机连接到 ZooKeeper/Hive 到 Sandbox Hortonworks HDP VM