利用Java将Mysql中的数据迁移到Hbase
因为sqoop1.4.6/1.4.7 只支持向 Hbase 1.x 版本中导入数据,所以在使用Hbase 2以上的版本后需要解决其数据导入问题。
配置文件内容
hbase.zookeeper.quorum=192.168.64.180
mysql.driver=com.mysql.jdbc.Driver
mysql.url=jdbc:mysql://192.168.64.180:3306/school
mysql.username=root
mysql.password=*******
//指定mysql中的表
mysql.table=user_info
//指定Hbase中需要被导入的表
mysql.hbase.table=test:userinfo
//构建表结构、sql语句的拼接(需结合代码理解)
mysql.hbase.fields.map=:rowKey:user_id,base:user_name,base:user_gender,base:user_pid,contact:user_phone,contact:user_province,contact:user_city,contact:user_district,contact:user_address,account:user_account,account:user_pass,account:user_balance
//用于拼接sql语句后的where条件
mysql.where=where user_id between 1 and 20
//指定读取mysql表数据后存放的目标文件
java.file.dir=D:/Note/Sqoop/mysqlToHbase/java2hbase/data
代码实现
代码实现原理是:
第一步:读取Mysql某张表的数据,存放至指定目录的某一文件内
第二步:读取文件内数据,批量插入到Hbase中
JAVA代码
调用时需要传参,参数为配置文件的路径。
若想理解代码,需结合下面文章。
利用JAVA向Hbase表中批量插入数据