Kafka到Hdfs的数据Pipeline整理

找时间总结整理了下数据从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

posted @ 2018-07-16 13:42  大数据从业者FelixZh  阅读(810)  评论(0编辑  收藏  举报