hadoop - QueryDatabaseTable Nifi 处理器从 mysql 数据库中获取重复行

标签 hadoop distributed-computing apache-nifi

QueryDatabaseTable2 节点 集群上两次从 Mysql 表中获取行。当执行设置被配置到所有节点时,抓取过程本身不会被分发。每个节点获取相似的数据,这不是我需要的理想输出。 换成主节点也能正常工作,但是一个节点承担了整个获取数据的过程,这就违背了分布式计算的意义。有解决方法吗?

最佳答案

QueryDatabaseTable 设计为仅在主节点上运行一个任务,它只执行一次提取,不是分布式解决方案。对于集群中的并行/分布式抓取,您需要以下内容:

GenerateTableFetch -> RemoteProcessGroup -> 输入端口 -> ExecuteSQL

GenerateTableFetch应设置为仅在主节点上执行一项任务。它通过生成 SQL 语句来获取指定大小的批量行来完成 QueryDatabaseTable 所做的“前半部分”。但它不执行提取。

相反,您将 SQL 语句发送到 RemoteProcessGroup (RPG) 指向 Input Port在同一个集群上。这将在 NiFi 集群的节点之间分发 SQL 语句。

ExecuteSQL每个节点上的处理器将获取要执行的 SQL 语句的子集,从而在集群中并行执行提取。请注意,此流程的其余部分将并行执行,您稍后将无法合并结果,但听起来这并不是您想要的。

关于hadoop - QueryDatabaseTable Nifi 处理器从 mysql 数据库中获取重复行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48294976/

相关文章:

hadoop - Cloudera错误-java.lang.NoSuchFieldError : IS_SECURITY_ENABLED while trying to access this field

hadoop - 使用datastax,hadoop,hive将数据与C *中的Feed数据的最后5个版本进行比较

apache-nifi - 复制参数上下文 NiFi

python - Apache NiFi : Processing multiple csv's using the ExecuteScript Processor

hadoop - PigStorage多字节字段分隔符

hadoop - GCP Hadoop数据仓库?

python - 类型错误 : Variable to save is not a Variable

matlab - MATLAB parfor 中的错误版本或字节序键?

python - 在 BOINC 上运行 Python 应用程序

apache-nifi - 如何用 POST 查询的特定值替换 InvokeHTTP?