使用 pig 将二进制文件存储到 hbase
Posted
技术标签:
【中文标题】使用 pig 将二进制文件存储到 hbase【英文标题】:store binary file to hbase with pig 【发布时间】:2017-05-03 15:20:24 【问题描述】:我有一些带有“.spc”模式的二进制文件,我想通过 pig mapper 作业将这些文件存储到 HBase 中。 rowkey 是文件名。
以下是我使用的命令:
A = LOAD 'hdfs-directory/sampleID-uvvis.spc' USING BinStorage();
B = FOREACH A GENERATE $0 AS rowkey;
C = GROUP B BY rowkey;
STORE C INTO 'hbase://test3' USING BinStorage('colfamily:uvis');
我得到了如下错误:
[main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR 2116:
<line 12, column 0> Output Location Validation Failed for: 'hbase://test3
More info to follow:
java.io.IOException: No FileSystem for scheme: hbase
加载后我还检查了文件:
Dump A
Input(s):
Successfully read 0 records (3353 bytes) from: "hdfs-directory-uvvis.spc"
Output(s):
Successfully stored 0 records in: "hdfs-directory/tmp/temp-
707332811/tmp1004712115"
有人可以帮我解决这个问题吗?如何将二进制文件加载并存储到HBase?
我是 HBase 和猪工作的新手,任何想法都将不胜感激。
【问题讨论】:
【参考方案1】:您应该使用 org.apache.pig.backend.hadoop.hbase.HBaseStorage 类进行存储。看看这个例子
https://pig.apache.org/docs/r0.14.0/api/org/apache/pig/backend/hadoop/hbase/HBaseStorage.html
【讨论】:
谢谢回复,我尝试使用新的类进行存储。存储过程有效!!!但是,我认为我的数据加载仍然有错误,这是我得到的:“ 输入:成功读取 0 条记录(3353 字节)来自:“hdfs-directory/sampleID-uvvis.spc” 输出:成功存储 0 条记录在:“hbase://test3”以上是关于使用 pig 将二进制文件存储到 hbase的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Pig 和 HBaseStorage 存储到 HBase