关于Hadoop结合RDBMS应用的一些思考
最近一段时间一直在从事和hadoop相关的工作,主要是技术内容学习、安装配置优化以及一些框架结构的设计。在此期间,我对于RDBMS和Hadoop的结合应用有了一些自己的看法,写出来大家共同探讨一下。
1、为什么要用Hadoop
这个在网上已近有很多的人说过这个问题,我在这里就不多述了。但是我想说下,对于一个工具而言,只有最合适的应用场景没有最牛的工具。hadoop对我而言也只是一个工具,所以,更多的时候我是从业务角度出发去考虑hadoop能给我带来什么。
2、RDBMS?
RDBMS是关系型数据库英文缩写,但对于我而言,就是oracle(因为我现在的公司用就是)。关于RDBMS和NOSQL谁更好这个话题争论的太多了,我也看了不少。但是我个人的感觉是,当前的RDBMS做的工作想用Hadoop来替代,基本是不可能,二者只能是互补互助,才能和谐共进(构建和谐社会,哈哈)。
3、数据仓库和数据库
就我个人的理解,数据仓库更倾向于数据的挖掘和分析,对实时性要求较低。而数据库则是对实时性响应较高,做为数据挖掘而言,虽然就目前当前看来是可以胜任,但是一旦数据量庞大(TB级别数据甚至PB级别),直接结果将是数据检索速度急剧下降,一些oracle执行的的挖掘job都有可能跑不出结果。所以,这也是为什么我在思考如何将hadoop和RDBMS结合应用的原因。废话不多说了,自己画了个草图大家先看看:
4、总体思想
由于工作环境和工作内容的特殊性,我这里并不涉及到大并发访问,所以,只要满足实时性的查询和数据挖掘即可。基于上图,我的总体思想如下:
a、将数据源在输入的时候就对数据进行拆分,一些侧重于数据分析和对实施响应要求较低的数据文件划分为“低实时性数据”。将一些相应速度要求较高的数据文件划分为“高实时性数据”。当然,这样划分可能数据之间可能会有交集,也就是说存在数据重复存放的可能性,所以,划分的具体原则需要结合业务详细制定。
b、“低实时性数据”存入HDFS文件系统,采用M/R或是Hive来进行一些挖掘的工作。而“高实时性数据”则存放在传统的RDBMS中,用以响应用户的实时查询需求。
c、Hadoop挖掘的数据结果可以协商好的格式存放到RDBMS中,提供为数据分析的基础。实际上,可以理解是Hadoop对数据内容进行的预处理,RDBMS则是在该结果的基础上进行高级功能(分析、比对、数据碰撞等)内容展示和二次分析。
d、用户也可直接的发送指令给Hadoop,进行一些特殊的数据挖掘工作,结果不需要存放到RDBMS中,直接反馈到用户web界面。(图上没表现出来)
5、总结
a、当前这样的应用模型可能会带来一些冗余数据,但是至少缓解了一些当前RDBMS的压力。
b、我最早也想过完全替换RDBMS,对于实时的查询我想采用hbase,但是在一段时间之后我发现hbase对一些查询支持的并不好。这里专门提出来也是希望大家能够给我解疑答惑,对于hbase如何应用是合适的?或者说在这个模型中是否还有hbase的位置?
b、上面说的内容都是基于我当前的工作环境来论述,大家如果觉得有疑问可以给我留言或发邮件(dajuezhao@gmail.com)。
按默认排序 显示最新评论 共有4个评论 (最后回答: 2年前)
-
我有个疑问:当我们的数据要求实时性很高,而且数据量比较大的情况,那应该采取怎样的方案处理呢?
目前我个人采用的内存方式实现的,但是随着数据量的不断增加,内存可能还是不行。
-
我说第一眼看这个帖子这么面熟,仔细一看,原来是别人转载到这里了。
高实时的海量数据查询确实是个问题,我目前也面临这个问题,对于这个问题我有以下考虑:
1、根据业务需求对高实时响应查询的数据进行分类的存储,尽最大可能减少查询的范围。
2、是否可以对数据做预处理,在海量数据中提炼出来实际可要的数据,做数据准备。
3、采用HBase来解决查询的问题。(入库速率和稳定性是个挑战)
总的说来,1和2都是通过对数据范围的缩减来提升查询速度。3则是利用HBase来解决问题。
-
额 方法多的很,搜索嘛直接用其他分布式搜索引擎
-
b、我最早也想过完全替换RDBMS,对于实时的查询我想采用hbase,但是在一段时间之后我发现hbase对一些查询支持的并不好。这里专门提出来也是希望大家能够给我解疑答惑,对于hbase如何应用是合适的?或者说在这个模型中是否还有hbase的位置?
hbase是kv类型的查询,同时不支持跨行事物,存取其他的字段由应用程序来控制,其实对于互联网处于对索引使用方面考虑,其实很多sql都是kv类型。所以应该不是大问题。hbase的hql是非常简单和弱模式的模型。hbase完全替换关系型数据库需要时间,通过修改应用程序现在就可以实用hbase
关于Hadoop结合RDBMS应用的一些思考的更多相关文章
- 后Hadoop时代的大数据技术思考:数据即服务
1. Hadoop 的神话正在破灭 IBM leads BigInsights for Hadoop out behind barn. Shots heard IBM has announced th ...
- Sqoop迁移Hadoop与RDBMS间的数据
Sqoop是用来实现结构型数据(如:关系型数据库RDBMS)和Hadoop之间进行数据迁移的工具.它充分利用了MapReduce的并行特点以批处理的方式加快数据的传输,同时也借助MapReduce实现 ...
- hadoop 二次排序的一些思考
先说一下mr的二次排序需求: 假如文件有两列分别为name.score,需求是先按照name排序,name相同按照score排序 数据如下: jx 20 gj 30 jx 10 gj 15 输出结果要 ...
- Hadoop和RDBMS的混合系统介绍
现在大数据概念被时常提起,社会各界对其关注度越来越高.往往越是火热的东西,人们越容易忽略它的本质.在 slides 中,我首先按照自己的理解,简单的理顺数据处理领域的发展历程.之后,落脚点是两个比较有 ...
- Hadoop学习路线图
Hadoop家族产品,常用的项目包括Hadoop, Hive, Pig, HBase, Sqoop, Mahout, Zookeeper, Avro, Ambari, Chukwa,新增加的项目包括, ...
- 对于spark以及hadoop的几个疑问(转)
Hadoop是啥?spark是啥? spark能完全取代Hadoop吗? Hadoop和Spark属于哪种计算计算模型(实时计算.离线计算)? 学习Hadoop和spark,哪门语言好? 哪里能找到比 ...
- Hadoop家族 路线图(转)
主要介绍Hadoop家族产品,常用的项目包括Hadoop, Hive, Pig, HBase, Sqoop, Mahout, Zookeeper, Avro, Ambari, Chukwa,新增加的项 ...
- Hadoop虽然强大,但不是万能的(CSDN)
Hadoop很强大,但企业在使用Hadoop或者大数据之前,首先要明确自己的目标,再确定是否选对了工具,毕竟Hadoop不是万能的!本文中列举了几种不适合使用Hadoop的场景. 随着 Hadoop ...
- Hadoop学习(1)-- 入门介绍
Hadoop是Apache基金会开发的一个分布式系统基础架构,是时下最流行的分布式系统架构之一.用户可以在不了解分布式底层的情况下,在Hadoop上快速进行分布式应用的开发,并利用集群的计算和存储能力 ...
随机推荐
- 查看32bit的ARM(比如ARMv7)反汇编
1.使用./arm-eabi-as test.S -o test.o编译 2.使用./arm-eabi-objdump -d test.o反汇编
- SharePoint2013切换帐户登录菜单
SharePoint2013帐户姓名显示的地方没有切换帐户的菜单,这个功能对于终端用户是可有可无的,但对于sharepoint管理员或sharepoint开发人员来讲,却是一个很重要的菜单,由于经常要 ...
- Android开发之ContentValues
SQLite数据库进行CRUD的时候, 用到了ContentValues类,负责存储名值对,名都是String类型,值都是基本类型. 例子: ContentValues values=new Cont ...
- jquery serialize()方法的扩展
Jquery提供的序列化表单方法serialize方法确实方便,但是我在使用的时候发现了一个弊端:当我使用type:“post”进行ajax请求的时候, 这个时候参数data:$("#myf ...
- input之placeholder与行高的问题。
我们实现一个输入框的视觉的时候为了保持其各种各样的兼容性: 1.鼠标要跟文字一样高度. 2.文字要居中对齐. 3.还要有placeholder 第一个目标,当实现一个高度为40像素的高度输入框时,为了 ...
- 移动端web页面使用position:fixed问题
在做移动端项目时,碰到一个很纠结的问题,头部固定的问题,一开始使用fixed,发现一系列的问题, 问题1:footer输入框 focus 状态,footer 被居中,而不是吸附在软键盘上部. 测试环境 ...
- andori 动画验证必填项
android项目开发过程中,都会碰到必填项的校验,最简单的就是利用Toast对用进行提示,感觉这种提示太不够人性化了,那么今天就来个带动画的,并可以将光标定位到必填项中. andorid动画Anim ...
- (七)学习MVC之CodeFirst迁移更新数据库
1.首先在程序包管理控制台输入:enable-migrations -force ,然后回车: 问题1: The EntityFramework package is not installed on ...
- SharePoint 2010 Pop-Up Dialogs
转:http://kyleschaeffer.com/sharepoint/sharepoint-2010-pop-up-dialogs/ SharePoint 2010 makes it incre ...
- e2e 自动化集成测试 架构 实例 WebStorm Node.js Mocha WebDriverIO Selenium Step by step (二) 图片验证码的识别
上一篇文章讲了“e2e 自动化集成测试 架构 京东 商品搜索 实例 WebStorm Node.js Mocha WebDriverIO Selenium Step by step 一 京东 商品搜索 ...