HBase與Sqoop的整合
阿新 • • 發佈:2018-11-14
之前學習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'