mysql数据导入hbase增量_Mysql表数据导入Hbase

一、问题:

目前数据库一个表数据非常大,达到几千万行,需要导入Hbase进行处理

二、实现思路

2.1用shell导入,基于

sqoop思义sql to hadoop。sqoop特性:支持多种导入方式,包括指定列导入,指定格式导入,支持增量导入(有更新才导入)等等。如下的导入都是指定一个列族,rowkey即为

./sqoop import –driver com.mysql.jdbc.Driver –connect “jdbc:mysql://172.10.23.104:3306/cpp” –table ***表 –username root –password root –hbase-table ***表 –column-family document –hbase-row-key MSGID –hbase-create-table –hbase-bulkload -m 8

14/07/31 16:46:46 INFO

遇到问题: 对于数据量100来万时可以导入,但是数据量特别大时会程序会挂掉,分析原因是mysql读取瓶颈,控制作业大小(##复制过程使用map作业),也有可能,磁盘空间写满

2.2基于Hbase的API

这里简单描述下,建立工程,定义一个配置文件,配置文件描述了mysql的配置信息,以及hbase的配置信息,主要部分是通过多线程,多任务并行导入数据, 根据要导入的范围以及每次导入的条数计算出任务数,然后并行启动n个线程轮训去执行任务,执行完毕后继续下次执行,这样对于咱们之后的任何表的数据导入都没有问题。START_NUM,END_NUM 定义了导入的范围,THREAD_NUM定义了线程个数,IMPORT_NUM定义了每次导入的条数。

配置文件部分:

#HBASE CONFIGURE

HBASE_ZOOKEEPER_QUORUM=XAYQ-Test3,XAYQ-Test4,XAYQ-Test5

HBASE_ZOOKEEPER_PROPERTY_CLIENT_PORT=2181

HBASE_MASTER=XAYQ-Test2:60020

HBASE_ROOTDIR=hdfs://XAYQ-Test2:9000/hbase/

DFS_NAME_DIR=/hadoop/dfs/name

DFS_DATA_DIR=/hadoop/dfs/data

FS_DEFAULT_NAME=hdfs://172.22.14.5:9000

HBASE_TABLE_NAME=CMSDOCUMENT4

HBASE_TABLE_FAMILY=document

#SOLR CONFIGURE

SOLR_SERVER=http://172.22.14.5:8080/solr

#MYSQL CONFIGURE

USERNAME=root

PASSWORD=root

JDBC_URL=jdbc:mysql://172.10.23.104:3306/cpp

JDBC_DRIVER=com.mysql.jdbc.Driver

TABLE_NAME=CMSDOCUMENT

#import data range ; example [0-10000]

START_NUM=0

END_NUM=1000000

#THREAD CLIENT

THREAD_NUM=10

#every time import data number

IMPORT_NUM=5000

运行后打印的日志:

工作队列添加了一个任务,任务号为: 130

工作队列添加了一个任务,任务号为: 197

工作队列添加了一个任务,任务号为: 198

工作队列添加了一个任务,任务号为: 199

线程运行开始:worker 3 ; 任务号:0 正在执行

线程运行开始:worker 2 ; 任务号:2 正在执行

线程运行开始:worker 1 ; 任务号:3 正在执行

线程运行开始:worker 7 ; 任务号:1 正在执行

线程运行开始:worker 6 ; 任务号:5 正在执行

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

c2cfe178d7c38be37f9b472331ac5572.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值