如何将Hbase表导出到MySql表

时间:2013-07-09 05:06:47

标签: mysql hbase sqoop

我正在尝试使用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;

提前致谢。

2 个答案:

答案 0 :(得分:1)

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

您可以找到问题12911042中的其他信息。

答案 1 :(得分:0)

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