关于Hadoop结合RDBMS应用的一些思考
来源:互联网 发布:eclipse和java的关系 编辑:程序博客网 时间:2024/05/17 08:43
最近一段时间一直在从事和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)。
- 关于Hadoop结合RDBMS应用的一些思考
- 关于Hadoop结合RDBMS应用的一些思考
- 关于Hadoop结合RDBMS应用的一些思考
- 关于机器学习应用的一些思考
- 关于长尾应用的一些思考
- 关于Hadoop中reducer端combiner的一些思考
- 关于混合应用开发的未来的一些思考
- Hadoop应用设计的思考
- 关于移动应用UI部分管理的一些思考
- 关于软硬结合时的思考
- SLAM应用的一些思考
- SLAM应用的一些思考
- 关于 sizeof() 的一些思考
- 关于sizeof()的一些思考
- 关于useBean的一些思考
- 关于素质的一些思考
- 关于 sizeof() 的一些思考
- 关于 sizeof() 的一些思考
- 类的大小,占用字节,空间。
- 我的第一个博文
- FSDK_SetVideoFormat
- 通过SQL查询SQL服务器和客户端IP地址
- 怎么申请google map api-key
- 关于Hadoop结合RDBMS应用的一些思考
- SQL查询与修改数据库逻辑文件名,移动数据库存储路径示例
- FSDK_OpenVideoCamera
- 我所钟爱的 HTML5 资源
- 宏基MeeGo平板电脑预计第四季度上市 避开iPad热卖期
- 批量将数据库中的用户表导出到指定目录下的txt文件
- 使用MapView显示地图
- php curl 发送 post时问题备忘
- 初创网站与开源软件