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 失败的主要内容,如果未能解决你的问题,请参考以下文章