Preface
本文是对Linkedin-Camus的介绍。内容都是从Camus的github中摘取出来的,详细的内容要看其说明和源码
Camus Stage
Camus作业有三个阶段
- Setup Stage:从Kafka的Zookeeper获取可用的topics,partitions,offset等元信息(Metadata)
- Hadoop Job Stage:开始用若干个task执行topic的数据获取,并写到HDFS
- Cleanup Stage:
Hadoop Stage
- Pulling the data:根据Setup Stage的数据建立Kafka请求,拉取数据。每个task都生成4个文件:Avro data files,Count statistics files,Updated offset files,Error files
- Committing the data:当一个task完成时,其拉取的数据都被提交到output目录
- Storing the offset:每个partition都有offset,这些offset信息存储在HDFS中
Create Custom Decoder for Kafka Messages
需要自己创建一个Kafka message的Decoder,可以通过实现com.linkedin.batch.etl.kafka.coders.KafkaMessageDecoder该抽象类。
在Camus的配置中需要指定我们实现的Decoder类
Writing to Different Format
Camus默认将Avro文件写入到HDFS,我们也可以实现自己的写入方法,并通过
etl.record.writer.provider.class=来配置
Run Camus
直接做为Hadoop的作业运行即可

Camus是LinkedIn开源的一款数据管道工具,能够高效地将Kafka中的数据同步到HDFS上。该工具本质上是一个MapReduce作业,通过自定义的Decoder和Writer组件,可以轻松地适配不同的数据格式和需求。
5854

被折叠的 条评论
为什么被折叠?



