我有 HDFS 集群,其中包含 Active 和 Stanby Namenodes。 有时,当集群重新启动时,Namenode 会交换它们的角色 - Standby 变为 Active,反之亦然。
然后我让 NiFi 流和 PutParquet 处理器将一些文件写入这个 HDFS 集群。 处理器的目录属性配置为“hdfs://${namenode}/some/path”,其中 ${namenode} 变量值类似于“first.namenode.host.com:8020”。
现在,当集群重新启动并且实际的 Namenode 更改为“second.namenode.host.com:8020”时,NiFi 中的配置没有更新,处理器仍然尝试使用旧的 namenode 地址,因此抛出一些异常(我不记得实际的错误文本,但我认为这对我的问题无关紧要)。
现在的问题是:我如何在 NiFi 中跟踪此事件,以便在 HDFS 配置更改时自动更新 PutParqet 处理器配置?
NiFi版本为1.6.0,HDFS版本为2.6.0-cdh5.8.3
最佳答案
我还没有证实这一点,但我认为使用 HA HDFS(事件和备用 NN)时,您会在 *-site.xml 文件(可能是 core-site.xml)中设置 HA 属性,并引用到 Hadoop 客户端随后将解析为 NameNode 列表的“集群名称”,然后它将尝试连接到该列表。如果是这种情况,请尝试使用集群名称(请参阅集群上的 core-site.xml 文件)而不是硬编码的 NN 地址。
关于hadoop - 如何跟踪 NiFi 中的 HDFS Active Namenode 更改事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52327777/