我想从pig脚本读取/写入hbase远程服务器的数据 . 我们正在使用Hortonworks HDP 2.5
以下是场景 .
我们有两个集群,一个用于Hive,另一个用于Hbase . 我们可以访问作为Hive集群一部分的边缘节点 .
我们的代码(MapReduce作业和Pig脚本)将在Hive集群上执行 .
作为需求的一部分,我们还必须从Hbase表读取/写入数据 .
我们在网上找到了一个解决方案,但它没有用 . http://grokbase.com/t/cloudera/cdh-user/137at5cg72/pig-stores-into-remote-hbase
此解决方案建议在我们的pig脚本中注册hbase服务器的zookeeper仲裁 . 但语法不起作用 .
set hbase.zookeeper.quorum '108.168.251.xxx-static.reverse.softlayer.com<http://108.168.251.xxx-static.reverse.softlayer.com:8020/hbase>'
...
STORE raw_rec INTO 'hbase://my_table<http://108.168.251.xxx-static.reverse.softlayer.com:8020/hbase>' USING org.apache.pig.backend.hadoop.hbase.HBaseStorage('score:val');
但这不起作用 . 获取错误 only alphanumeric characters are allowed in namespace (<>符号不允许)
如果有任何方法使用默认的org.apache.pig.backend.hadoop.hbase.hbasestorage从pig中的远程hbase集群读取/写入数据,请告诉我们 .
提前致谢!!!
1 回答
在安装了猪的客户机中,请设置如下 . 假设2181是zk cilent端口 .
然后直接使用表名而不使用“hbase://”,就好像my_table存在于本地集群的hbase中一样 .