问题标签 [hortonworks-dataflow]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1186 浏览

hadoop - Apache Nifi 无法写入 HDFS

当我尝试使用 PutHDFS 处理器将文件放在 HDFS 上时,出现以下错误:

错误

我使用 HortonWorks 沙箱 HDP 和 HDF(Windows 上的 docker 容器)。好像是Nifi的问题,HDFS没问题,可以放/写/读。

我正在尝试解决此问题,但没有结果,我删除了 docker 的 HDP 图像并获得了一个新图像,但也没有结果。

0 投票
1 回答
1201 浏览

apache-nifi - Apache Nifi - 使用 Kafka + 合并内容 + 放置 HDFS 以避免小文件

我在 Kafka 主题中有大约 2000000 条消息,我想使用 NiFi 将这些记录放入 HDFS,所以我PutHDFS同时使用处理器,ConsumeKafka_0_10但它在 HDFS 中生成小文件,所以我使用合并内容处理器来合并记录在推送文件之前。 在此处输入图像描述 如果配置需要更改,请提供帮助 这适用于少量消息,但在涉及大量数据的主题时为每条记录写入一个文件。

谢谢!!

0 投票
1 回答
102 浏览

apache-nifi - Ambari 自动重定向到 NiFi

我在我的 Hortonworks 中安装了 NiFi,每当我在 Ambari 中开始我的会话时,我都会被重定向到 NiFi。有谁知道如何更改它,以便我的 localhost:8080 不会自动重定向到 NiFi?我附上了下面的图片。

在此处输入图像描述

提前致谢 :)

0 投票
2 回答
629 浏览

apache-nifi - NiFi中触发了FetchFolder?

我正在使用 NiFi 使用专有处理工具(在 NiFi外部运行)来编排大型二进制文件的处理。

NiFi 将源文件放在磁盘上,我调用外部工具(使用 ExecuteScript 处理器),该工具加载二进制文件并继续生成许多较小的文件。

当外部工具完全完成后,我需要“拾取”较小(生成)文件的目录并继续通过 NiFi 处理。我需要等待,因为 [输出目录]、[文件数] 和 [处理所需时间] 是动态的。

问题:

  1. GetFile(获取目录)没有上游连接,所以我无法在处理完成后触发它。
  2. ListFile + FetchFile 组合不起作用 b/c ListFile 没有上游连接,所以 - 再次 - 我无法在处理完成后触发它。

...那么,在完成二进制处理后,我可以使用什么处理器来获取文件的目录并将它们带入 NiFi 领域?

0 投票
1 回答
621 浏览

apache - NiFi GenerateTableFetch 不存储每个 database.name 的状态

我正在测试 NiFi 以替换我们当前的摄取设置,该设置从表的多个 MySQL 分片导入数据并将其存储在 HDFS 中。

我正在使用GenerateTableFetchExecuteSQL实现这一目标。

每个传入的流文件都有一个database.name属性,用于DBCPConnectionPoolLookup选择相关的分片。

问题是,假设我有 2 个分片要从中提取数据,shard_1对于shard_2表帐户,我也有updated_atas Maximum Value Columns,它没有为table@updated_at每个分片存储状态。状态中的每个表只有 1 个条目。

当我检查 Data Provenance 时,我看到 shard_2 流文件文件在没有传递给 ExecuteSQL 的情况下被删除。我的猜测是,这是因为 shard_1 查询首先执行,然后当 shard_2 查询到来时,它的记录会与 shard_1 的 updated_at 进行检查,并且由于它返回空,它会删除文件。

有没有人遇到过这个问题?还是我错过了什么?

0 投票
2 回答
2374 浏览

apache-nifi - 调试复杂 NiFi 数据流的理想方法

根据我在使用 NiFi 构建一些 DB 摄取 PoC 后的理解,整个数据流作为流文件流运行。并且在任何特定时间,执行控制可以同时在一个或多个处理器上。

所以我真的很困惑如何为任何故障调试复杂的数据流。

我的 PoC 工作流程本身看起来像这样。 nifi 数据流

当我们使用生产用例时,它会变得比这复杂得多。所以我有几个问题。

  1. 如何知道数据流的状态。如果假设 10 个分叉流文件中有 4 个GenerateTableFetch因数据库池错误而失败,我怎么知道哪些失败了,以及如何快速重放它们,而无需去数据来源并一一进行。

  2. 有没有办法通过查看数据流来知道哪个处理器的流文件出现故障。

我对使用 NiFi 调试数据流有更多的疑虑/困惑,如果有人可以向我指出一些文档或分享最佳实践,那将很有帮助。

谢谢。

0 投票
2 回答
905 浏览

apache-nifi - 如何等待 GenerateTableFetch 查询完成

我的用例是这样的。我有一些 X 表要从 MySQL 中提取。我正在拆分它们SplitText以将每个表放在一个单独的流文件中并使用GenerateTableFetchand拉取ExecuteSQL

当所有表的导入完成时,我希望得到通知或采取其他措施。在SplitText文本处理器中,我已将original关系路由到Waiton ${filename}with target count ${fragment.count}。这将跟踪完成了多少张表。

但是现在我无法弄清楚如何知道特定表何时完成。GenerateTableFetch根据分区大小将流文件分成多个。但它没有写入像 fragment.count 这样的属性,我可以用它来等待每个表。

有没有办法可以做到这一点?或者,是否有办法在整个流程结束时知道流程中的所有流程文件是否都已处理,并且队列中没有任何内容或正在处理?

0 投票
1 回答
455 浏览

apache-nifi - 如何为处理器设置默认的“运行计划”

GenerateFlowFile经常使用处理器来测试其他处理器的行为并了解流程。但是每次,我都忘记更改默认的“运行计划”,默认为“0”。在我意识到它用数千个文件轰炸流程之前。

有没有办法改变默认值?有时真的很令人沮丧。

0 投票
1 回答
184 浏览

apache-nifi - GenerateTableFetch 在没有数据的情况下丢弃流文件进行查询

我正在使用GenerateTableFetch包含table_name导入数据的传入流文件。我已经手动使用表的列Additional WHERE clause来处理增量更新。updated_at

问题是当构建查询没有要导入的数据时,它只是删除流文件。对于这种情况,除了成功和失败之外,它应该有一个单独的关系,这样如果必须为这种情况做些什么,我可以自己处理。

目前,在工作流程开始时,我正在使用Wait已投入流程的表格数量并跟踪它们何时完成以使用Notify. 但是对于被丢弃的表GenerateTableFetch,它只是继续等待。

有什么办法处理这个吗?

0 投票
1 回答
1259 浏览

apache-nifi - 清除处理器公告的方法

对于快速测试和开发,有一种方法可以从处理器的右上角清除公告确实很有帮助。一旦我看到错误并修复它,我想在重新启动之前清除它。

如果当前版本可以,请指导。