本文主要是介绍Sqoop批量把MySQL数据导入到HBase,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、简介
只是为了方便
二、Sqoop安装
https://blog.csdn.net/u011374856/article/details/
三、MySQL单表导入HBase
1、新建脚本
vi mysql_hbase.sh
2、编辑脚本,两个参数,第一个HBase表名称前缀(方便批量删除),第二个MySQL表名称
$SQOOP_HOME/bin/sqoop import \
--connect jdbc:mysql://127.0.0.1:3306/test \
--driver com.mysql.cj.jdbc.Driver \
--username root \
--password 123456 \
--table $2 \
--hbase-table $1_$2 \
--column-family info \
--hbase-create-table \
--hbase-row-key id \
--hbase-bulkload
3、修改权限
chmod 777 mysql_hbase.sh
4、执行脚本验证
例如:把MySQL中 test 表导入到 HBase,HBase表名称为woniu_test
./mysql_hbase.sh woniu test
5、自己去HBase中验证结果
四、HBase批量删除表
1、新建脚本
vi hbase_drop_table.sh
2、编辑脚本,一个参数,批量删除HBase表名称前缀
#删除表临时文件目录
FILE_NAME="/woniu/shell/drop_table_tmp.txt"#删除临时文件
rm -rf $FILE_NAMEecho $1#写数据
#禁用表
echo disable_all "'"$1".*'" >> $FILE_NAME
#删除表
echo drop_all "'"$1".*'" >> $FILE_NAME
#退出
echo exit >> $FILE_NAME#进入HBase的bin目录
cd $HBASE_HOME/bin#开启HBase的shell
./hbase shell $FILE_NAME
3、修改权限
chmod 777 hbase_drop_table.sh
4、执行脚本
例如:把HBase表名称前缀为woniu的批量删除
./hbase_drop_table.sh woniu
5、自己去HBase中验证结果
五、生成批量导入脚本
1、通过Navicat连接MySQL数据库
2、查询所有表名称
select CONCAT('./mysql_hbase.sh ','woniu ',table_name) shell from information_schema.tables where table_schema='test'
3、查询结果导出为mysql_hbase_batch.txt文本,注意:不要列的标题
4、把mysql_hbase_batch.txt文本中所有双引号替换为空
5、新建脚本
vi mysql_hbase_batch.sh
6、把mysql_hbase_batch.txt 全部复制到 mysql_hbase_batch.sh
7、修改权限
chmod 777 mysql_hbase_batch.sh
8、执行批量导入,注意:如果重新导入,先执行批量删除
./mysql_hbase_batch.sh
六、HBase验证结果
这篇关于Sqoop批量把MySQL数据导入到HBase的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!