Linkedin Camus,从Kafka到HDFS的数据传输管道
来源:互联网 发布:网站源码yjhtml 编辑:程序博客网 时间:2024/05/14 07:42
Preface
本文是对Linkedin-Camus的介绍。内容都是从Camus的github中摘取出来的,详细的内容要看其说明和源码
Introduction of Camus
Camus是Linkedin开源的一个从Kafka到HDFS的数据管道,实际上它是一个MapReduce作业
What is Avro
Apache Avro是一个 Data Serialization System,数据序列化系统。
Camus使用了Avro Schema
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中
Camus Operations
Installation
下载源码后,
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=
来配置
Configuration
运行Camus作业前需要进行一系列的配置,可以参考Camus Example的配置
Run Camus
直接做为Hadoop的作业运行即可
Conclusion
Camus就像一个已经开发好的系统组件,我们可以直接拿过来,稍作配置就可以嵌入到自己的系统中,作为从Kafka到HDFS的数据管道。
关键在于实现两个类,Decoder和Writer,使其满足我们的系统业务
0 0
- Linkedin Camus,从Kafka到HDFS的数据传输管道
- Linkedin Camus,从Kafka到HDFS的数据传输管道
- Linkedin Camus,从Kafka到HDFS的数据传输管道
- Linkedin Camus,从Kafka到HDFS的数据传输管道
- Linkedin Camus的使用
- Linkedin Camus的使用
- Avro技术应用_5. 利用 Camus 来将 Avro 数据从 Kafka 拷贝到 HDFS -- 待完善
- [译]从LinkedIn,Apache Kafka到Unix哲学
- flume从kafka导数据到hdfs
- flume数据传输到kafka
- Kafka到Hdfs的数据Pipeline整理
- Kafka到Hdfs的数据Pipeline整理
- LinkedIn是如何优化Kafka的
- LinkedIn是如何优化Kafka的
- LinkedIn是如何优化Kafka的
- Kafka发送消息到HDFS
- 把kafka中topic的数据上传到hdfs
- flume从kafka获取数据并按时间保存到hdfs上
- 事件处理程序&&事件对象
- android.content.Context.getContentResolver()' on a null object reference错误
- 计算程序运行时间
- Birt 脚本报错记录1
- G - Dreamoon and Sums 数学
- Linkedin Camus,从Kafka到HDFS的数据传输管道
- CoreAnimation5-图层时间和缓冲
- linux设备驱动makefile入门解析
- webservice SOAP WSDL 基础概念的理解
- Linkedin Camus的使用
- explanatory variable(independent vs dependent)、design matrix
- 如何使用Azure Container Service Engine在Azure中国区部署容器服务(二):Kubernetes篇
- 【自研IM系统Talk00】 --- 集成接入&demo展示
- CoreAnimation6-基于定时器的动画和性能调优