自己原文公众号: https://mp.weixin.qq.com/s/iuQHNctnKphMSxUxHPIf5Q
这几日在做数据库(oracle mysql)到CDH的实验。就是到所谓大数据。环境有限,都是用比较差的机器,勉强搞4、5台机器。其实4-5台机器根本玩不了大数据。就是搞个模型而已。当年cloudera(hadoop创始人创办的)公司卖也是最少要10台的,少于10台实在是丢不起这个人。就好比一个将军说我指挥过师团作战,多少人?1万人。差不多。如果将军说我指挥过5个人的师团作战,这就玩笑了。和蒙古国海军司令差不多一个意思。我这里就是纯玩具环境。
我记得2014年时候我搭建一套这个要2天,别人对我还是佩服的,但是我在陆金所时候这个速度被鄙视了,觉的太慢。最后是2小时完成的。
时隔7年好在CDH没多大改变。我让下属安装(安装现在都简单了),他还完成多套。不过只有一套能用。有一个就玩一个吧。
我们要实现几个场景一个是到HBASE,一个是到Hive。还有一个是到kafka(其实这个不算是hadoop的原生),只不过是CDH的组件就算在全家桶吧。
这几个场景中最容易的是kafka。
1、编辑 参数文件 edit param extract ex9k 内容我这里不方便详细写
2、在oggfor bigdata的命令行下进行注册
dblogin userid c##ogg@source password ogg
register extract ex9k database container(pdb8)
3、建立抽取进程
add ext ex9k , integrated tranlog, begin now
add exttrail ./dirdat/9k, ext ex9k
4 、编辑投递参数,内容我也不方向详细写
5、然后就是建立投递进程
add rep rekafka , exttrail /ogg/ogg4oracle/dirdat/9k,nodbcheckpoint
6、投递有参数涉及两个文件
custom_kafka_producer.properties
kafka.props
然后就开 起来,万事大吉。
数据库新增数据,增加字段,增加表完全自适应。即使更新数据都有。

然后来到第二个场景HBase这就是巨坑了,因为版本不兼容。ogg要求hbase的版本是2.1.最后还是自己下载了hbase的lib放到ogg服务器上才行。
步骤和kafka一样。
最后编辑的参数是
hbase.props

hbase也是可以看得到更新的。不过hbase不支持sum和join。Hbase留下了一个坑,要想解决不是没有办法,用phoenix,这个等于是在填hbase的坑。我没去尝试,因为没合适的版本兼容。,或者是hbase结合hive,坑上坑。
第三个场景是Hive,步骤和上面一样。
这个场景是最坑的。这坑我觉得就是hive挖的。因为hbase不支持这个不支持那个,hive也是一样,他不支持修改。所以最终做出来是这样的:

他把更新的也当做一行新的记录,然后后面需要进行去判断是更新还是怎么办?其实后患无穷(我意思是工作量大)
整个就是 Doug Cutting这老哥没想好。今天这里搞一下,明天糊一把。A不支持这个操作,B不支持那个操作。每个东西也就是半成品,想用好大把大把的投入人力物力财力。
在2004年谷歌提出的三驾马车旨在解决关系型数据库OLAP,GB级别的数据读取不给力的情况。(那个年代IO不行。所以才分布式存储分布式计算。现在有的硬盘每秒IO都1T,我本地直接出结果了,用以上的方式是不是费力不讨好?),
Doug Cutting耿直的原型实现了。后面就修修补补。说真的几个如果在PB以下的数据,硬件不差的情况下,在Oracle 、PG中还是比较快的。同时配合属于预处理,比如以前听说滴滴一天3000w订单。那么如果柳青问一个月多少订单。其实每天的3000w加一下。(1秒)就是3000wX30就可以了(1秒)。而不用一条条订单的去SUM。

