全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 winbugs及其他软件专版
1288 0
2016-09-18
摘要: 本文是关于Flume成功应用Kafka的研究案例,深入剖析它是如何将RDBMS实时数据流导入到HDFS的Hive表中。对于那些想要把数据快速摄取到Hadoop中的企业来讲,Kafka是一个很好的选择。Kafka是什么?Kafka是一个分布式、可 ...



本文是关于Flume成功应用Kafka的研究案例,深入剖析它是如何将RDBMS实时数据流导入到HDFS的Hive表中。

对于那些想要把数据快速摄取到Hadoop中的企业来讲,Kafka是一个很好的选择。Kafka是什么?Kafka是一个分布式、可伸缩、可信赖的消息传递系统,利用发布-订阅模型来集成应用程序/数据流。同时,Kafka还是Hadoop技术堆栈中的关键组件,能够很好地支持实时数据分析或者货币化的物联网数据。

本文服务于技术人群。下面就图解Kafka是如何把数据流从RDBMS(关系数据库管理系统)导入Hive,同时借助一个实时分析用例加以说明。作为参考,本文中使用的组件版本分别为Hive 1.2.1,Flume 1.6 以及 Kafka 0.9。

Kafka所在位置:解决方案的整体结构
下图显示了解决方案的整体结构:Kafka和Flume的结合,再加上Hive的交易功能,RDBMS的交易数据被成功传递到目标Hive表中。

七步实现Hadoop实时数据导入

现在让我们深入方案细节,并展示如何在几个步骤内将数据流导入Hadoop。

1、从RDBMS中提取数据
所有关系型数据库都有一个日志文件,用来记录最新的交易。解决方案的第一步就是获取这些交易数据,同时要确保这些数据格式是可以被Hadoop所接受的。

2、设置Kafka生产商
发布Kafka话题消息的过程称为“生产商”。“话题”里有各种Kafka所需要维护的信息类别,RDBMS数据也会被转换成Kafka话题。对于这个示例,要求设置一个服务于整个销售团队的数据库,且该数据库中的交易数据均以Kafka话题形式发布。以下步骤都需要设置Kafka 生产商:
复制代码


3、设置Hive
接下来将创建一个Hive表,准备接收销售团队的数据库交易数据。这个例子中,我们将创建一个用户数据表:
复制代码


为了确保Hive能够有效处理交易数据,以下设置要求在Hive配置中进行:
复制代码


4、为Kafka到Hive的数据流设置Flume代理
现在来看下如何创建一个Flume代理,用于收集Kafka话题资料并向Hive表发送数据.在启用Flume代理前,要通过这几个步骤设置运行环境:
复制代码

再如下所示创建一个log4j属性文件:
复制代码

然后为Flume代理配置以下文件:
复制代码

5、启用Flume代理
通过以下指令启用Flume代理:
复制代码




6、启用Kafka流
作为示例下面是一个模拟交易的消息集,这在实际系统中需要通过源数据库才能生成。例如,以下可能来自Oracle流,在回放被提交到数据库的SQL交易数据,也可能来自GoldenGate。
复制代码



7、接收Hive数据
如果上面所有的步骤都完成了,那么现在就可以从Kafka发送数据,可以看到数据流在几秒钟内就会被发送到Hive表。


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群