Sqoop 导入安全 hbase 失败

Posted

技术标签:

【中文标题】Sqoop 导入安全 hbase 失败【英文标题】:Sqoop imports into secure hbase fails 【发布时间】:2015-01-21 11:45:23 【问题描述】:

我正在使用带有 kerberos 安全性的 hadoop-2.6.0。我已经安装了具有 kerberos 安全性的 hbase,并且可以创建表并对其进行扫描。

我也可以运行 sqoop 作业将数据从 mysql 导入 hdfs,但是当尝试从 mysql 导入 HBase 时,sqoop 作业失败。

Sqoop 命令

sqoop import --hbase-create-table  --hbase-table newtable --column-family ck --hbase-row-key id --connect jdbc:mysql://localhost/sample --username root --password root --table newtable -m 1

例外

15/01/21 16:30:24 INFO zookeeper.ZooKeeper: Initiating client connection, connectString=localhost:2181 sessionTimeout=90000 watcher=hconnection-0x734c0647, quorum=localhost:2181, baseZNode=/hbase
15/01/21 16:30:24 INFO zookeeper.ClientCnxn: Opening socket connection to server 127.0.0.1/127.0.0.1:2181. Will not attempt to authenticate using SASL (unknownerror)
15/01/21 16:30:24 INFO zookeeper.ClientCnxn: Socket connection established to 127.0.0.1/127.0.0.1:2181, initiating session
15/01/21 16:30:24 INFO zookeeper.ClientCnxn: Session establishment complete on server 127.0.0.1/127.0.0.1:2181, sessionid = 0x14b0ac124600016, negotiated timeout = 40000
15/01/21 16:30:25 ERROR tool.ImportTool: Error during import: Can't get authentication token

【问题讨论】:

能否请您填写完整信息。请在 HADOOP_OPTS="-Dsun.security.krb5.debug=true 之后执行命令,以便于理解发生了什么 【参考方案1】:

请您尝试以下方法:

    在连接字符串中添加端口号为: jdbc:mysql://localhost:3306/sample

    删除 --table 新表。先用列族在Hbase上创建需要的表。

    提及 --split-by id

    最后提到一个具体的 --fetch-size ,因为 MySQL 的 sqoop 客户端在内部有一个错误,它试图设置默认的 MIN fetch size,这将遇到异常。

您能否再次尝试导入并告诉我们?

【讨论】:

以上是关于Sqoop 导入安全 hbase 失败的主要内容,如果未能解决你的问题,请参考以下文章

oozie sqoop 操作导入失败

Sqoop - 使用 Oozie 导入 Hive 失败

从 vertica 导入 sqoop 失败

引号中的 Sqoop 导入表参数失败

Sqoop - 导入失败:无法转换 sql 类型 -102

Sqoop 导入失败,“on 子句”中有未知列