工作中涉及到了关系数据库和非关系数据库的数据转换,即mysql和hbase之间的数据转换,这里用到了sqoop进行数据转移。对hbase的操作除了自带的一些api,还用到了phoenix。使用crontabs定时完成sqoop创建的job的shell脚本完成自动化执行。通过phoenix链接hbase,再用scala语言,通过spark完成具体的大数据操作。
这里总结了一些具体用到的操作,刚开始写博客,有很多地方需要向前辈好好学习!加油!
文中若有内容错误,还请评论指出!谢谢!
1. hbase相关操作
用到的一些hbase基础api
1.1 创建hbase表 user,并有一个userinfo列簇
因为之后要用phoenix操作hbase,所以这里所有的表名和列簇都要用大写的,才不会有冲突
create “TEST:USER”,“USERINFO”
– 描述表,查看表信息
describe “TEST:USER”
– 扫描表,查看具体数据
scan “TEST:USER”, { LIMIT =>10}
– 清空表,清空表内数据
disable “TEST:USER”
– 删除表,表结构删除
drop “TEST:USER”
2.Sqoop相关操作
2.1 sqoop import
通过sqoop从mysql导入数据,下面是sqoop import的语句,和具体参数的解释。
import是一次性导入,如果需要自动化导入需要用到下面的job
sqoop import \
–connect \ 这里放数据库的链接信息,示例 jdbc:mysql://192.168.8.8/user_info
–username \ 这里放链接数据库的用户名
–password \ 这里放链接数据库的密码
–query \ 这里放具体的sql,通过sql选取对应的数据。存到hbase里
–hbase-table TEST:USER \ 这里放上面建好的hbase表名
–column-family BOY \ 这里放组名吧,具体了解可以查一下非关系数据库的相关资料
–hbase-row-key id -m 1 这句加上就好,是hbase的rowkey设置
2.2 sqoop job
除了基本import的一些参数,job多了几个参数
job是可以和下面的定时器组合成一套自动化数据导入,所以这里也建议再建一个表专门记录自动化导入的一些数据,比如导入了多少条,时间,哪个表之类的,相当于一个