【发布时间】:2018-05-09 08:13:03
【问题描述】:
在 NiFi 中有listHDFS->moveHDFS 形式的管道,尝试运行管道我们会看到错误日志
13:29:21 HSTDEBUG01631000-d439-1c41-9715-e0601d3b971c
ListHDFS[id=01631000-d439-1c41-9715-e0601d3b971c] Returning CLUSTER State: StandardStateMap[version=43, values={emitted.timestamp=1525468790000, listing.timestamp=1525468790000}]
13:29:21 HSTDEBUG01631000-d439-1c41-9715-e0601d3b971c
ListHDFS[id=01631000-d439-1c41-9715-e0601d3b971c] Found new-style state stored, latesting timestamp emitted = 1525468790000, latest listed = 1525468790000
13:29:21 HSTDEBUG01631000-d439-1c41-9715-e0601d3b971c
ListHDFS[id=01631000-d439-1c41-9715-e0601d3b971c] Fetching listing for /hdfs/path/to/dir
13:29:21 HSTERROR01631000-d439-1c41-9715-e0601d3b971c
ListHDFS[id=01631000-d439-1c41-9715-e0601d3b971c] Failed to perform listing of HDFS due to File /hdfs/path/to/dir does not exist: java.io.FileNotFoundException: File /hdfs/path/to/dir does not exist
将 listHDFS 路径更改为 /tmp 似乎运行正常,因此让我认为问题在于我对我要列出的目录的权限。但是,通过设置bootstrap.properties 值run.as=myuser 并重新启动(参见https://nifi.apache.org/docs/nifi-docs/html/administration-guide.html#bootstrap_properties)将NiFi 用户更改为可以访问该目录的用户(例如hadoop fs -ls /hdfs/path/to/dir)似乎仍然会为目录产生相同的问题。文字目录。正在使用但不起作用的字符串是:
“/etl/ucera_internal/datagov_example/raw-ingest-tracking/version-1/ingest”
有人知道这里发生了什么吗?谢谢。
** 注意:我正在访问的 hadoop 集群没有启用 kerberos(它是一个安全的MapR hadoop 集群)。
更新:似乎mapr hadoop 实现非常不同,需要特殊步骤才能让 NiFi 正常工作(请参阅https://community.mapr.com/thread/10484 和 http://hariology.com/integrating-mapr-fs-and-apache-nifi/)。可能有一段时间没有机会解决这个问题,看看是否仍然有效(因为某些要求已经改变),所以我在这里为其他可能同时遇到这个问题的人提供链接。
【问题讨论】:
-
我建议更改 HDFS 目录的权限以包含
nifi用户而不是更改 NiFi run.as 用户,因为许多其他条件取决于操作系统用户 NiFi 正在运行。 -
一个简单的问题。您使用的
core-site.xml和hdfs-site.xml是否正确?使用/tmp查看文件是否和使用hdfs dfs -ls /tmp查看文件一样?
标签: apache-nifi