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的作业运行即可