码迷,mamicode.com
首页 > 数据库 > 详细

mysql数据导入到hbase

时间:2017-01-11 14:20:55      阅读:293      评论:0      收藏:0      [点我收藏+]

标签:info   oop   name   font   schema   数据库   test   trend   type   

思路:读取到一个数据库里所有的表名,然后通过sqoop循环导入到hbase
实现过程中发现 不会写shell是个硬伤
最后只能分两步进行操作
1.sel_tabs.sh
/usr/bin/mysql -hIp地址 -u用户名 -p密码 -D数据库名<<EOF
use 
select table_name from information_schema.tables where table_schema=数据库名 and table_type=base table;
EOF

运行 bash sel_tabs.sh>tbsnam.dat

将结果写入tbsname.dat

2.readdat.sh

#!/bin/sh    
cat tbsnam.dat |while read LINE
do
	echo $LINE
	if [ "$LINE" = "table_name" ]; then
			echo "table_name test"		
	else
			echo $LINE
			str="/opt/dtma/sqoop/bin/sqoop import --connect jdbc:mysql://Ip地址:端口号/数据库名称 --username ‘用户名‘ --password ‘密码‘ --table AA --hbase-table AA --column-family f1 --hbase-row-key  id --hbase-create-table --m 1 --incremental append --check-column ‘id‘ --last-value 0"
            		strend=${str//"AA"/$LINE}
			echo $strend 
            $strend
        fi
done

str是sqoop 增量导入单个表的 语句

上面sql语句查询结果 第一行出现 table_name,所以把table_name 剔除掉

最后运行

bash readdat.sh

 

mysql数据导入到hbase

标签:info   oop   name   font   schema   数据库   test   trend   type   

原文地址:http://www.cnblogs.com/zy900406/p/6233769.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!