码迷,mamicode.com
首页 > 其他好文 > 详细

大数据实践:ODI 和 Twitter (一)

时间:2015-01-09 19:17:27      阅读:248      评论:0      收藏:0      [点我收藏+]

标签:

本文利用twitter做为数据源,介绍使用Oracle大数据平台及Oralce Data Integrator工具,完成从twitter抽取数据,在hadoop平台上处理数据,并最终加载到oracle数据库。

数据集成分为三个阶段:获取、整理、分析和决策。

 

技术分享

 

本文从实际出发,讲述大数据处理的真实案例,而不是简单的讲述理论知识。首先会使用flumetwitter加载数据到HDFS,其实是加载到Hive数据库,然后利用(Oracle Data Integrator)ODI来实现逆向工程,并转换Hive中的JSON数据,最终将处理后的结构化数据加载到关系型数据Oracle中。

 

涉及的组件

要搭建一个完整的hadoop平台是一件比较费事的工作,本文不会在这块做太多描述 ,在本示例中会直接利用oracle提供的大数据虚拟机,可直接从网上下载使用(here),里面已经配置有CDHHive等组件,可直接拿来学习使用。在本示例中,会用到虚拟机中如下大数据平台的组件:

1. Hadoop Framework
2. HDFS
3. Hive
4. Flume
5. ZooKeeper
5. Oracle Database
6. Oracle Data Integrator

各组件不在此作详细说明,每个组件的说明和使用可参考网络中其它文章。为什么使用flume进行数据采集?因为flume通过源和目标端的配置,可以很容易实现从twitter获取数据,并加载到HDFS

技术分享

 

本示例中使用一个现成的flume-twitter插件,从twitter中获取数据。该插件使用JAVA开发,利用了一个开源的SDK-twitter4j,此组件完整覆盖了twitterAPI。利用该flume插件,不用再自己编写代码,可实现直接从twitter获取数据,并根据需要投递到自己希望的目标端平台。

 

操作步骤

第一步是在twitter上创建一个账号,访问https://dev.twitter.com/开发人员版块,然后在https://apps.twitter.com/创建访问数据需要的key和令牌,这些会在flume插件中配置时用到,申请完成之后的界面可能如下:

 

技术分享

 

如果不使用oracle提供的大数据平台虚拟机,则需要在自己安装的系统中启动Hadoop及其它相应的平台,如HivezooKeeper等,当然还需要安装配置ODI 12c。如果使用的是Oracle虚拟机,则启动相关的服务即可。

配置flumetwitter获取数据。首先下载flume软件,并拷贝相应的libflume的指定目录,比如添加下载的jarflumeclasspathcp /usr/lib/flume-ng/plugins.d/twitter-streaming/lib/   /var/lib/flume-ng/plugins.d/twitter-streaming/lib/

创建flume.conf, 根据前面的twitter’s keyhadoop编辑此文件,差不多是下面这样:

技术分享

 

接下来配置Hive

 

1. 需要能解析JSON数据的序列类,可以从此处下载一个编译好的JSON SerDe

2. 创建Hive需要的目录和权限

$ sudo -u hdfs hadoop fs -mkdir /user/oracle/warehouse
$ sudo -u hdfs hadoop fs -chown -R oracle:oracle /user/hive
$ sudo -u hdfs hadoop fs -chmod 750 /user/oracle
$ sudo -u hdfs hadoop fs -chmod 770 /user/oracle/warehouse

3. 配置HiveMetastore,本示例是在mysql中创建,在此不再详述。

4. Hive中创建tweets表:

技术分享
 

回到flume,开始抓取数据:

1. hdfs中创建/user/oracle/tweets目录 ,用于存放flume抓取的数据,同时,也是hive表中外部引用路径所在

2. 使用下面的语句启动flume

技术分享
在运行日志中可以看到flume在不断将抓取到的数据写入对应目录下的文件:

技术分享

 

flume agent运行几分钟,确认已经捕获到了数据之后可以停止此进程。然后在hadoop web控制台可以查看到hdfs对应目录下的数据文件:
技术分享

查看任何一个数据文件的内容,如下:
技术分享

 

数据都是基于json格式的,可以在hive中查看抓取的记录数:

技术分享

经过flume几分钟的数据抽取,我们已经得到了16161条记录。这就是大数据时代数据产生的威力。

大数据实践:ODI 和 Twitter (一)

标签:

原文地址:http://www.cnblogs.com/doubletree/p/4213964.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!