既然你提到了 Flume,我会用类似的工具 springxd 提供一些替代方法。
您可以有一个 Kafka 主题,您可以在其中删除流式消息和可以写入 HAWQ 的 springxd sink 作业。例如;
例如; 如果您有一些从 FTP 到 KAFKA 的流加载文件和 spring java 作业将消息从 kafka 到 hawq。
作业部署 hawqbinjob --properties "module.hawqjob.count=2"
流创建 --name ftpdocs --definition "ftp --host=me.local --remoteDir=/Users/me/DEV/FTP --username=me --password=********** - -localDir=/Users/me/DEV/data/binary --fixedDelay=0 | 日志
流创建 --name file2kafka --definition "文件 --dir=/Users/me/DEV/data/binary --pattern=* --mode=ref --preventDuplicates=true --fixedDelay=1 | transform --expression =payload.getAbsolutePath() --outputType=text/plain | kafka --topic=mybin1 --brokerList=kafka1.localdomain:6667" --deploy
流创建 --name --definition "kafka --zkconnect= kafka1.localdomain:2181 --topic=mybin1 | byte2string > queue:job:hawqbinjob" --deploy
这是获得并行性的一种方法,并且不限于 hdfs 文件打开问题。您可以通过多种方式扩展此模式,因为大多数流数据都是小型集合。希望这有帮助。