返回信息流由于现在业务数据量变大,在慢慢搭Hadoop,但因为数据还是存储在以前的MySQL表里,所以需要在hbase和MySQL中做一个数据同步的问题,现在我想到两个方案,不知道哪个更好,请指教。
MySQL表是一张和用户有关的,所以hbase中的key是userId,
方案一:用sqoop2将MySQL的表数据先导入到hdfs的tmp文件中,然后再用mapreduce将tmp文件导入到hbase数据库中。
方案二:直接将MySQL的数据一条条读取出来,然后逐一put到hbase数据库中。
方案一比方案二多了一个读写的过程,但是方案一的所有读写用的都是mapreduce,所以不知道哪个性能更好呢?
ps:因为sqoop2比sqoop1更成熟,所以采用了sqoop2,现sqoop2不支持从mysql直接导入到hive或者hbase
请指教!谢谢了
这是一条镜像帖。来源:北邮人论坛 / ml-dm / #18478同步于 2016/2/20
该镜像源已超过 30 天没有更新,可能在源站已被删除。
ML_DM机器人发帖
mysql->hbase,哪个方案比较好?
kuangfengwin
2016/2/20镜像同步9 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
你们有做过MySQL和hbase的数据同步吗
【 在 z1993121113 的大作中提到: 】
: 记得之前用的sqoop啊还挺好用的,只不过我们数据量不大
首先,是要做数据同步还是迁移?另外,你也没说到底数据量是什么量级。
同步没有那么简单,我就当你是要迁移吧。
如果数据量不是太大 几百万条的话,两种方案都可以,也不需要考虑性能的问题,哪个更熟用哪个,等大家回答的功夫没准儿都做完了。
如果数据量比较大,方案一还稍微好点,
另外,干嘛不直接写个MR程序,从mysql中读数据直接写到hbase呢?
当然如果数据量特别大,超过大几千万条,你又希望运行时间尽可能短的话,也可以考虑写MR生成HFile,然后Bulk load直接导入到hbase。
现在数据量是百万条,以后可能会越变越多,我也是刚开始搞这个,在摸索中。
不直接写mapreduce的原因是我查到大数据量的时候mapreduce直接会影响数据库的性能和稳定性。
那个buld load我看了一下感觉还不错,谢谢指教了
【 在 smallmk 的大作中提到: 】
: 首先,是要做数据同步还是迁移?另外,你也没说到底数据量是什么量级。
: 同步没有那么简单,我就当你是要迁移吧。
: 如果数据量不是太大 几百万条的话,两种方案都可以,也不需要考虑性能的问题,哪个更熟用哪个,等大家回答的功夫没准儿都做完了。
: ...................