【问题标题】:Preproces a large file using Nifi使用 Nifi 预处理一个大文件
【发布时间】:2019-06-25 12:42:58
【问题描述】:

我们有多达 8GB 的​​包含结构化内容的文件,但重要的元数据存储在文件的最后一行,需要附加到每一行内容。使用 ReverseFileReader 来获取最后一行很容易,但这需要文件在磁盘上是静态的,而我在现有的 Nifi 流程中找不到执行此操作的方法?在数据流式传输到内容存储库之前,这可能吗?

【问题讨论】:

  • 如何摄取这么大的文件?
  • 目前文件是使用另一个进程分块的,但我们正在尝试将所有内容合并到 Nifi 中。我们将使用流处理器来读取每一行,但显然这不利于先获取最后一行。

标签: java apache-nifi preprocessor


【解决方案1】:

在 Nifi 中处理 8 GB 文件可能效率低下。您可以尝试其他选项:-

ListSFTP --> ExecuteSparkInteractive --> RouteOnAttributes ----> ....

在这里,您实际上不需要通过 Nifi 传输数据,只需在 nifi 属性中传递文件位置(可以是 hdfs 或非 hdfs 位置)并编写 pyspark 或 spark scala 代码来读取该文件(您可以运行此代码通过 ExecuteSparkInteractive )。代码将在 spark 集群上执行,只有作业结果将被发送回 Nifi,您可以进一步使用它来路由您的 nifi 流(使用 RouteOnAttribute 处理器)。

注意:您需要设置 Livy 才能从 Nifi 运行 spark 代码。

希望这有帮助。

【讨论】:

  • 谢谢。它确实证实了我所掌握的其他信息。虽然我不会使用 spark,但 Flink 或 Web-service 也是一种选择。
  • 很高兴我的回答对某人有所帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-01
  • 1970-01-01
  • 2018-08-11
  • 2015-01-24
  • 2018-10-18
相关资源
最近更新 更多