1. 程式人生 > >HBase與Sqoop的整合

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'