环境

  • Hadoop 2.7.3
  • HBase 1.3.1
  • Sqoop 1.4.7
  • MySQL 8.0

参数

导入HBase的控制参数

参数描述
–column-family设置导入的目标列族
–hbase-create-table目标HBase表不存在时,允许自动创建表
–hbase-row-key (col)指定将哪个输入的列用作rowkey,如果输入的表包含复合键,则col的格式必须是逗号分割的组合键属性列表
–hbase-table (table-name)指定作为导入目标的HBase表
hbase-bulkload启用批量加载

📢注意:
sqoop导入hbase时无法和参数–direct一起使用

如果导入时没有指定–hbase-create-table,则需要在运行前在hbase中创建该表和对应列族,不然在进行导入时会失败。如果指定了–hbase-create-table,则在检测到没有该表时,sqoop会自动创建目标表和列族

测试

1.将mysql中customer表导入到hbase中

在这里插入图片描述
检查hbase 表列表
在这里插入图片描述
导入命令

sqoop import \
--connect jdbc:mysql://lingyun2:3306/niit?useSSL=false \
--username root \
--P
--table customer  \ #对应mysql中的表
--hbase-table customer \ #对应导入的hbase的表
--column-family cf-info  \ #对应导入的hbase表的列族
--hbase-create-table \ #当检测到habse不存在目标时,自动进行创建
--hbase-row-key id \ #对应导入的hbase表中的rowkey
--hbase-bulkload #启用批量加载

因为我之前讲customer表导入到hdfs过,所以报错customer已存在,只需要将–hbase-table customer中的customer表改个名字重新运行即可
在这里插入图片描述
导入成功,结果如下
在这里插入图片描述在这里插入图片描述

更多推荐