使用SQOOP將MySQL表的數據導入到HBase表中,指定表的名稱
、列簇
及RowKey
範例如下所示:
/export/servers/sqoop/bin/sqoop import \
-D sqoop.hbase.add.row.key=true \
--connect jdbc:mysql://bd001:3306/tags_dat2 \
--username root \
--password 123456 \
--table tbl_users \
--hbase-create-table \
--hbase-table tbl_users2 \
--column-family detail \
--hbase-row-key id \
--num-mappers 2
參數含義解釋:
1、-D sqoop.hbase.add.row.key=true
是否將rowkey相關字段寫入列族中,默認爲false,默認情況下你將在列族中看不到任何row key中的字段。注意,該參數必須放在import之後。
2、--hbase-create-table
如果hbase中該表不存在則創建
3、--hbase-table
對應的hbase表名
4、--hbase-row-key
hbase表中的rowkey,注意格式
5、--column-family
hbase表的列族
使用SQOOP進行增量導入數據
至HBase表,範例命令如下:
/export/servers/sqoop/bin/sqoop import \
-D sqoop.hbase.add.row.key=true \
--connect jdbc:mysql://bd001:3306/tags_dat2 \
--username root \
--password 123456 \
--table tbl_logs \
-- \
--hbase-create-table \
--hbase-table tag_logs \
--column-family detail \
--hbase-row-key id \
--num-mappers 20 \
--incremental lastmodified \
--check-column log_time \
--last-value '2019-08-13 00:00:00' \
相關增量導入參數說明:
1、--incremental lastmodified
增量導入支持兩種模式 append 遞增的列;lastmodified時間戳。
2、--check-column
增量導入時參考的列
3、--last-value
最小值,這個例子中表示導入2019-08-13 00:00:00到今天的值
使用SQOOP導入數據到HBase表中,有一個限制:
需要指定RDBMs表中的某個字段作爲HBase表的ROWKEY,如果HBase表的ROWKEY爲多個字段組合,就無法指定,所以此種方式有時候不能使用。