设为首页 加入收藏

TOP

kafka-hadoop-loader项目介绍
2018-12-05 18:35:19 】 浏览:12
Tags:kafka-hadoop-loader 项目 介绍
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhoudetiankong/article/details/48712767

该项目主要作用是将kafka的数据通过MR作业上传到hdfs中,原项目地址https://github.com/michal-harish/kafka-hadoop-loader。由于该项目目前是无人维护状态,最后一次是13年9月,不适用于当前的kafka版本0.8.2.

在该项目的基础上,我进行了一些修改,项目地址:https://github.com/guanghualiu/kafka-hadoop-loader-my。

项目的大体思路:

kafka的simple consumer可以让消费者自己控制消费数据,以及自己维护每个partition的offset。

对于一个kafka的topic,可以拥有多个分区。利用hadoop的MR原理,重写InputFormat,将每一个分区虚拟化为一个inputsplit,每一个kafkainputspit记录topic,broker,partition,以及要当前partition在执行该程序时最新的offset值。每个split将会创建一个map任务,即map数等于partition数。

kafkaInputRecordReader中,首先从zookeeper中取到当前partition的上次已经消费的记录的offset(初始为零),

kafkainputspit中的offset为结束值,然后在nextKeyValue中消费数据,reader中每消费一个message,更新watermark指针知道该split的数据全部消费完成。在close方法中,将该次的消费结果写入到zookeeper中,这样记录已经消费的offset,便于下次取出从该条开始消费。

之后就通过hadoop的MR框架将数据写入到hdfs,也可以自己重定义方法达到另外一些的目的。

这个程序的用法应该是每隔一段时间跑一次,就可以将kafka新增的数据入库hdfs。



编程开发网
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇消息中间件Kafka Win10安装配置 下一篇Kafka->Mongodb->Es

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

array(4) { ["type"]=> int(8) ["message"]=> string(24) "Undefined variable: jobs" ["file"]=> string(32) "/mnt/wp/cppentry/do/bencandy.php" ["line"]=> int(214) }