我正在尝试使用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;
提前致谢。
答案 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