作者:Syn良子 出處:http://www.cnblogs.com/cssdongl 轉載請注明出處
找時間總結整理了下數據從Kafka到Hdfs的一些pipeline,如下
1> Kafka -> Flume –> Hadoop Hdfs
常用方案,基於配置,需要注意hdfs小文件性能等問題.
GitHub地址: https://github.com/apache/flume
2> Kafka -> Kafka Hadoop Loader ->Hadoop Hdfs
Kafka Hadoop Loader通過為kafka Topic下每個分區建立對應的split來創建task實現增量的加載數據流到hdfs,上次消費的partition offset是通過zookeeper來記錄的.簡單易用.
GitHub地址: https://github.com/michal-harish/kafka-hadoop-loader
3> Kafka -> KaBoom -> Hadoop Hdfs
KaBoom是一個借助Krackle(開源的kafka客戶端,能極大的減少對象的創建,提高應用程序的性能)來消費kafka的Topic分區數據隨后寫如hdfs,利用Curator和Zookeeper來實現分布式服務,能夠靈活的根據topic來寫入不同的hdfs目錄.
GitHub地址: https://github.com/blackberry/KaBoom
4> Kafka -> Kafka-connect-hdfs -> Hadoop Hdfs
Confluent的Kafka Connect旨在通過標准化如何將數據移入和移出Kafka來簡化構建大規模實時數據管道的過程。可以使用Kafka Connect讀取或寫入外部系統,管理數據流並擴展系統,而無需編寫新代碼.
GitHub地址: https://github.com/confluentinc/kafka-connect-hdfs
5> Kafka -> Gobblin -> Hadoop Hdfs
Gobblin是LinkedIn開源的一個數據攝取組件.它支持多種數據源的攝取,通過並發的多任務進行數據抽取,轉換,清洗,最終加載到目標數據源.支持單機和Hadoop MR二種方式,而且開箱即用,並支持很好的擴展和二次開發.
GitHub地址: https://github.com/linkedin/gobblin
參考資料:
https://www.confluent.io/blog/how-to-build-a-scalable-etl-pipeline-with-kafka-connect
http://gobblin.readthedocs.io/en/latest/Getting-Started/
http://gobblin.readthedocs.io/en/latest/case-studies/Kafka-HDFS-Ingestion/
https://github.com/confluentinc/kafka-connect-blog
http://docs.confluent.io/3.1.1/connect/connect-hdfs/docs/index.html