Linkedin Camus的使用

Preface

在实现Lambda架构的时候,我以Kafka作为系统的输入,同时需要将数据批量从Kafka导入到HDFS存储起来,以备Batch layer批处理计算。

而从Kafka到HDFS的数据传输,Linkedin已经有一个开源的项目,即Linkedin Camus。Camus是Kafka到HDFS的管道,它实际上是向Hadoop提交一个作业,并从Kafka获取指定topic的消息,存储到HDFS中。

实际上在使用Camus的时候,只有3件事是我们关注的。

  1. 确定MessageDecoder
  2. 确定RecordWriterProvider
  3. 确定Kafka话题

MessageDecoder

MessageDecoder 是对Kafka的消息进行解析的解析器,比如Camus自带了几个Decoder:KafkaAvroMessageDecoder,JsonStringMessageDecoder等。 
我们也可以自行设计符合自己业务需求的Decoder,而消息解析后的内容,会作为输出后期被存储到HDFS(当然还会加上压缩)

我在系统中实现了一个简单的字符串解析器,基本保持消息原文,也就是我只是要直接存储消息原文即可:

package com.linkedin.camus.etl.kafka.coders;

import com.linkedin.camus.coders.CamusWrapper;
import com.linkedin.camus.coders.MessageDecoder;
import org.apache.log4j.Logger;
import java.util.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值