1

我正在尝试使用 sqoop 将 Hbase 表导出到 mysql 表。

以下是我的查询:

> sqoop-export 
> --connect jdbc:mysql://mysqlserver_ip:3306/mysqldb 
> --username user 
> --password pwd 
> --table mysqltbl 
> --update-key empid 
> --export-dir hostname:60030/hbase/tblfromhbase

其中 hostname:60030 是我的 Hbase 根目录路径和端口。

来找我的错误是

> 1) ERROR security.UserGroupInformation: PriviledgedActionException
> as:hbase (auth:SIMPLE) cause:java.io.IOException:Failed on local
> exception: com.google.protobuf.InvalidProtocolBufferException:Protocol
> message end-group tag did not match expected tag.; Host Details :
> local host is: "hostname/ip";destination host is: "hostname":60030;
> 
> 2) ERROR tool.ExportTool: Encountered IOException running export job:
> java.io.IOException: Failed on local exception:
> com.google.protobuf.InvalidProtocolBufferException:Protocol message
> end-group tag did not match expected tag.; Host Details :local host
> is: "hostname/ip"; destination host is: "hostname":60030;

提前致谢。

4

2 回答 2

1

恐怕 Sqoop 目前不支持直接从 HBase 导出。您可以通过首先使用 mapreduce 将数据从 HDFS 导出到普通文件,然后调用 Sqoop 将它们导出到 MySQL 来克服这个问题。

您可以在问题12911042中找到更多信息。

于 2013-07-09T14:19:34.643 回答
0

用 sqoop 将 mysql 表导出到 hbase 很方便,但是将 hbase 表导出到 mysql 则不然。这是一种间接的方式。将 hbase 表导出到 hive,创建 hive 表,然后转储到 sql 文件,并导入到 mysql。看看: http: //blog.csdn.net/zreodown/article/details/8850172

于 2013-07-09T05:53:33.207 回答