【问题标题】:Ingesting data into HDFS using Nifi - can't access files使用 Nifi 将数据摄取到 HDFS - 无法访问文件
【发布时间】:2017-01-11 06:44:40
【问题描述】:

所以,我是第一次使用 NiFi。我正在尝试使用它来调用 API,然后将数据通过管道传输到 HDFS(Hortonworks Sandbox 2.4)。我目前只使用 2 个处理器:GetHTTP 和 PutHDFS。

我似乎两个处理器都配置好了...它们运行了,但是我找不到通过 Ambari 进入 Hadoop 时创建的输出文件...我已将输出目录设置为 /用户/,但什么也没有出现。但是,我在 PutHDFS 处理器上收到一条警告消息,建议:

WARNING PutHDFS[...] penalizing StandardFlowFileRecord[...] and routing to failure because file with same name already exists.

...所以必须在某处写入文件。我尝试改变指定 xml 和 JSON 格式的 API 调用,但没有明显区别。

我想我必须要么需要在 NiFi 中的管道中添加一些处理,要么我在沙箱中寻找错误的位置。谁能给点建议?

【问题讨论】:

    标签: hadoop apache-nifi hortonworks-sandbox


    【解决方案1】:

    PutHDFS 处理器读取传入 FlowFile 的“文件名”属性并将其用作 HDFS 中的文件名。如文档中所述[1]。

    GetHTTP 将“文件名”属性设置为“..远程服务器上的文件名”[2]。所以我猜你是GetHTTP处理器每次都获取相同的文件,因此每个FlowFile的“文件名”属性都是相同的。

    因此,为了避免该错误,您需要一个 UpdateAttribute 处理器[3],它将“文件名”属性更改为唯一值。

    [1]https://nifi.apache.org/docs/nifi-docs/components/org.apache.nifi.processors.hadoop.PutHDFS/index.html

    [2]https://nifi.apache.org/docs/nifi-docs/components/org.apache.nifi.processors.standard.GetHTTP/index.html

    [3]https://nifi.apache.org/docs/nifi-docs/components/org.apache.nifi.processors.attributes.UpdateAttribute/index.html

    【讨论】:

    • 感谢@JDP10101。就由具有相同标题的后续文件导致的错误提出您的观点。我将尝试使用 UpdateAttribute 处理器来尝试解决这个问题。我仍然有一个问题,为什么我目前看不到 HDFS 中的文件?你知道为什么会这样吗,或者一旦我合并了 UpdateAttribute 处理器来指定扩展名为 .xml 的文件,它是否应该在输出目录中可见?感谢您的帮助。
    • 如果您通过 SSH 连接到沙箱并运行“hadoop fs -ls /user/”,您会看到该文件吗?通常,您不会将数据直接放在 /user 中,而是为特定用户创建一个子目录。
    • 感谢@BryanBende,但不敢。当我列出目录中的所有文件时,我仍然没有看到输出。我创建了一个子目录/user/maria_dev/MetFiles/ 并将处理器配置为将文件输出到此位置,但是当我使用 PuTTy SSH 到沙箱时仍然没有看到任何内容。非常感谢您对我可以尝试的其他任何建议。
    • 所以我在nifi.rocks/getting-started-with-apache-nifi 学习了一个非常有用的教程,它基本上准确地列出了我想要实现的目标。数据流完美运行(没有错误消息)但我仍然无法在沙盒 HDFS 中找到任何输出文件......我做错了什么吗?
    【解决方案2】:

    终于搞定了。构建了一个包含 4 个处理器的数据流:

    • 获取HTTP
    • 评估XPath
    • 2 个 PutHDFS,一个用于“匹配”,一个用于“不匹配”

    我认为这是正确指定自动终止关系的情况(在 中选择“成功”和“失败”)。

    感谢http://nifi.rocks/getting-started-with-apache-nifi,它提供了构建模块,并感谢其他人提供 cmets。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多