Flumeについて言及したので、同様のツールspringxdを使用した代替アプローチを提供します。
ストリーミング メッセージをドロップできる Kafka トピックと、HAWQ に書き込むことができる springxd シンク ジョブを使用できます。例えば;
例えば; FTP から KAFKA にファイルをロードするストリームがあり、kafka から hawq にメッセージを受け取るスプリング Java ジョブがある場合。
ジョブ デプロイ hawqbinjob --properties "module.hawqjob.count=2"
stream create --name ftpdocs --definition "ftp --host=me.local --remoteDir=/Users/me/DEV/FTP --username=me --password=************* - -localDir=/Users/me/DEV/data/binary --fixedDelay=0 | ログ
stream create --name file2kafka --definition "file --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
stream create --name --definition "kafka --zkconnect= kafka1.localdomain:2181 --topic=mybin1 | byte2string > queue:job:hawqbinjob" --deploy
これは、並列処理を実現する 1 つの方法であり、hdfs ファイルを開く問題に限定されません。ストリーミング データのほとんどは小さなセットであるため、このパターンをさまざまな方法で拡張できます。この助けを願っています。