Hadoop nifi putHDFS写入本地文件系统 挑战

Hadoop nifi putHDFS写入本地文件系统 挑战,hadoop,hdfs,apache-nifi,Hadoop,Hdfs,Apache Nifi,我目前有两个hortonworks集群,一个NIFI集群和一个HDFS集群,并且希望使用NIFI写入HDFS 在NIFI集群上,我使用一个连接到PutHDFS的简单GetFile 当将文件推送到该位置时,PutHDFS将成功终止。然而,我并没有看到一个文件被放在我的HFD上(在HDFS集群上),而是看到一个文件被放在我运行NIFI的本地文件系统上 这让我困惑,因此我提出了以下问题: 如何确保PutHDFS写入HDFS,而不是本地文件系统? 可能相关的背景: 在PutHDFS中,我链接到了HD

我目前有两个hortonworks集群,一个NIFI集群和一个HDFS集群,并且希望使用NIFI写入HDFS

在NIFI集群上,我使用一个连接到PutHDFS的简单GetFile

当将文件推送到该位置时,PutHDFS将成功终止。然而,我并没有看到一个文件被放在我的HFD上(在HDFS集群上),而是看到一个文件被放在我运行NIFI的本地文件系统上

这让我困惑,因此我提出了以下问题:

如何确保PutHDFS写入HDFS,而不是本地文件系统?
可能相关的背景:
  • 在PutHDFS中,我链接到了HDFS集群的配置单元站点和核心站点(我尝试更新所有服务器对HDFS namenode的引用,但没有效果)
  • 我在HDFS集群上不使用Kerberos(我在NIFI集群上使用它)
  • 我在NIFI应用程序日志中没有看到任何看起来像错误的东西(这很有意义,因为它成功地写入了,只是在错误的地方)
  • 这两个集群都是使用CloudBreak在AmazonAWS上新生成的,向所有流量开放所有节点并没有帮助

您能否确保能够使用以下命令将文件从NiFi节点移动到Hadoop:- hadoop fs-put

如果您能够使用上面的命令移动文件,那么您必须检查您正在PutHDFS处理器中传递的Hadoop配置文件


另外,请检查您没有运行任何其他流,以确保没有其他流正在处理该文件。

您是否在
Hadoop Configuration
属性中提供了
hdfs site.xml
的路径?@SivaprasannaSethuraman是的,这里引用了hdfs站点和核心站点。(我没有发现它找不到它们的错误)。xml文件中的属性被验证为正确的,即datanode和namenode的主机名详细信息?
*-site.xml
conf文件是可选的,如果Hadoop客户端lib找不到它们,它们会自动恢复为硬编码的默认值——包括“默认FS是本地的”这对于单元测试很好——期望通过Java代码实现overide。@SamsonScharfrichter感谢您的解释,这给了我一些需要研究的东西。你知道如果发现它们会发生什么,但包含错误(比如namenode/datanode的地址错误?)nifi节点运行在不同的集群上,因此我认为不可能在那里运行hadoop命令(因为nifi集群没有HDFS)。我认为您应该在NiFi节点上安装hadoop客户端。请注意,我所说的不仅仅是2个节点,实际上我有2个完整的集群。-即使在nifi集群上有hdfs,put命令也只会将其提交给nifi集群上的hdfs,而不是hdp集群上的hdfs。