🌀 技术人生
凡事有交代,件件有着落,事事有回音
HBase与Sqoop的集成

之前学习Sqoop的时候都是Hadoop,Hive和RDBMS之间进行数据的导入与导出,并没有与HBase集成,下面就来讲解HBase与Sqoop的集成

需求:

利用 Sqoop 在 HBase 和 RDBMS 中进行数据的转储,将 RDBMS(Mysql) 中的数据抽取到 HBase 中

1.在Sqoop中配置sqoop-env.sh,添加下边的内容 export HBASE_HOME=你的HBase目录

2.在Mysql中创建一个test数据库,一张表book

CREATE DATABASE test; CREATE TABLE test.book( id int(4) PRIMARY KEY NOT NULL AUTO_INCREMENT, name VARCHAR(255) NOT NULL, price VARCHAR(255) NOT NULL);

向表中插入数据

INSERT INTO test.book (name, price) VALUES(‘Lie Sporting’, ‘30’); INSERT INTO test.book (name, price) VALUES(‘Pride & Prejudice’, ‘70’); INSERT INTO test.book (name, price) VALUES(‘Fall of Giants’, ‘50’);

3.执行Sqoop操作导入数据

bin/sqoop import \ –connect jdbc:mysql://cdh0:3306/test \ –username root \ –password root \ –table book \ –columns “id,name,price” \ –column-family “info” \ –hbase-create-table \ –hbase-row-key “id” \ –hbase-table “hbase_book” \ –num-mappers 1 \ –split-by id

注意:

sqoop1.4.6 只支持 HBase1.0.1 之前的版本的自动创建 HBase 表的功能,如果不能自动创建表,还需要手动在HBase中创建 hbase> create ‘hbase_book’,‘info’


最后修改于 2018-11-08

知识共享许可协议
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。