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

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

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

涉及的组件

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

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,此组件完整覆盖了twitter的API。利用该flume插件,不用再自己编写代码,可实现直接从twitter获取数据,并根据需要投递到自己希望的目标端平台。

操作步骤

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

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

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

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

接下来配置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. 配置Hive的Metastore,本示例是在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 (一)的更多相关文章

  1. 大数据实践:ODI 和 Twitter (二)

    大数据实践:ODI和Twitter(二) 在前面的文章中,我们已经使用flume将数据从twitter抓取到Hive中,现在我们来看看ODI(Oracle Data Integrator)如何在HIV ...

  2. 大众点评的大数据实践-CSDN.NET

    大众点评的大数据实践-CSDN.NET 大众点评的大数据实践 爬虫工程师成大数据时代的"宠儿" - 杭州新闻中心 - 杭州网 爬虫工程师成大数据时代的"宠儿"

  3. 大数据实践-数据同步篇tungsten-relicator(mysql->mongo)

    // mongo)";digg_bgcolor = "#FFFFFF";digg_skin = "normal"; // ]]> // [导读] ...

  4. 读<大数据日知录:架构与算法>有感

    前一段时间, 一个老师建议我能够学学 '大数据' 和 '机器学习', 他说这必定是今后的热点, 学会了, 你就是香饽饽.在此之前, 我对大数据, 机器学习并没有非常深的认识, 总觉得它们是那么的缥缈, ...

  5. 年度钜献,108个大数据文档PDF开放下载

    1.大数据的开放式创新——吴甘沙 相关阅读:[PPT]吴甘沙:让不同领域的数据真正流动.融合起来,才能释放大数据的价值 下载:大数据的开放式创新——吴甘沙.pdf 2.微软严治庆——让大数据为每个人服 ...

  6. WOT2016大数据技术峰会——千人技术盛宴

    WOT2016大数据技术峰会是一场聚焦大数据领域最前沿的的技术及经验分享.2016年11月25-26日北京粤财JW万豪酒店如约而至,会议规模达到1000人! 由51CTO主办的千人技术盛宴--WOT2 ...

  7. 《决战大数据:驾驭未来商业的利器》【PDF】下载

    内容简介 大数据时代的来临,给当今的商业带来了极大的冲击,多数电商人无不"谈大数据色变",并呈现出一种观望.迷茫.手足无措的状态.车品觉,作为一名经验丰富的电商人,在敬畏大数据的同 ...

  8. MaxCompute,基于Serverless的高可用大数据服务

    摘要:2019年1月18日,由阿里巴巴MaxCompute开发者社区和阿里云栖社区联合主办的“阿里云栖开发者沙龙大数据技术专场”走近北京联合大学,本次技术沙龙上,阿里巴巴高级技术专家吴永明为大家分享了 ...

  9. Data.gov.uk电子政务云,牛津大学NIE金融大数据实验室王宁:数据治理的现状和实践

    牛津大学NIE金融大数据实验室王宁:数据治理的现状和实践 我是牛津互联网研究院的研究员,是英国开放互联网的一个主要的研究机构和相关政策制订的一个机构.今天主要给大家介绍一下英国数据治理的一些现状和实践 ...

随机推荐

  1. 生成ldf数据库文件

    .在我的电脑中删除LOG文件 c.附加数据库: 企业管理器--服务器--数据库--右键--附加数据库 此法将生成新的LOG,大小只有500多K

  2. (转)C#调用非托管Win 32 DLL

    转载学习收藏,原文地址http://www.cnblogs.com/mywebname/articles/2291876.html 背景 在项目过程中,有时候你需要调用非C#编写的DLL文件,尤其在使 ...

  3. 解决oralce 11g dg搭建报错:ORA-16664、ORA-16714、ORA-16810问题--转

    下面不是小编错误报告只是转了网络一篇,同时也解决了我的问题所以复制过来给各位参考. 最近在弄11g的dg时,遇到如下问题,记录下.首先在主上查看报如下错误: DGMGRL> show confi ...

  4. Oracle Cluster Registry Location to be Added is not Accessible

    APPLIES TO: Oracle Server - Enterprise Edition - Version 11.2.0.1 and laterInformation in this docum ...

  5. cookie机制和session机制的原理和区别[转]

    一.cookie机制和session机制的区别 具体来说cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案. 同时我们也看到,由于在服务器端保持状态的 ...

  6. Oracle数据库——函数 http://www.jb51.net/article/40469.htm

    1====分析函数  相当于把分组后的结果加到每一行里 SELECT  t.loan_contract_no,t.loan_name,t.loan_amount,ROWNUM,  row_number ...

  7. 《Code Complete》ch.25 代码调整策略

    WHAT? 本章讨论程序性能调整问题.但是对用户来说,程序员按时交付软件,提供一个清爽的用户界面,避免系统经常死机常常比程序性能更加重要 WHY? 在程序设计这种文化中,编写出能够节省几微秒的代码可以 ...

  8. Java中List转数组,必须带个参数

    public static void main(String[] args) { List<String> lst = new ArrayList(); lst.add("赵云 ...

  9. c# 动态调用webserver

    object[] paramList = new object[1]; paramList.SetValue("123456",0);  //参数值,参数位置 var result ...

  10. 洛谷P2733 家的范围 Home on the Range

    P2733 家的范围 Home on the Range• o 26通过o 61提交• 题目提供者该用户不存在• 标签USACO• 难度普及+/提高 提交 讨论 题解 最新讨论• 暂时没有讨论题目背景 ...