使用Sqoop导Mysql数据到Hbase报错

报错日志

20/04/14 16:40:45 WARN mapreduce.HBaseImportJob: Could not find HBase table hbase_company
20/04/14 16:40:45 WARN mapreduce.HBaseImportJob: This job may fail. Either explicitly create the table,
20/04/14 16:40:45 WARN mapreduce.HBaseImportJob: or re-run with --hbase-create-table.
20/04/14 16:40:45 INFO zookeeper.ZooKeeper: Session: 0x36db06bc9c32fb9 closed
20/04/14 16:40:45 INFO zookeeper.ClientCnxn: EventThread shut down

失败原因

  • 使用sqoop导mysql数据到HDFS,不用在hive里面建表,在跑mr任务时候自动创建hive表
  • 在用sqoop导mysql数据到HDFS,没有在Hbase建表
  • 查询官方文档:sqoop1.4.7只支持HBase1.0.1之前的版本的自动创建HBase表的功能

版本信息

  • sqoop 版本1.4.7
  • Hbase 版本2.1.1

解决方法

1、在hbase里面建表

create 'hbase_company','info'
scan 'hbase_company'

2、脚本添加参数

--hbase-create-table

附:导数据脚本

bin/sqoop import \
--connect jdbc:mysql://ip:3306/company \
--username root \
--password 000000 \
--table company \
--columns "id,name,sex" \
--column-family "info" \
--hbase-create-table \
--hbase-row-key "id" \
--hbase-table "hbase_company" \
--num-mappers 1 \
--split-by id

你可能感兴趣的:(sqoop,hdfs,mapreduce,sqoop)