pig+hbase+hadoop2集成

yks3o0rb  于 2021-06-04  发布在  Hadoop
关注(0)|答案(2)|浏览(339)

是否有人在hadoop-2.20+hbase-0.98.0+pig-0.12.0组合的环境中成功地将数据从hadoop-2.2.0上的pig-0.12.0加载到hbase-0.98.0而没有遇到此错误:

ERROR 2998: Unhandled internal error.
org/apache/hadoop/hbase/filter/WritableByteArrayComparable

有一行日志跟踪:

java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/filter/WritableByteArra

我在网上搜索了一下,发现了一些问题和解决方案,但它们都涉及到hadoop2之前的版本和base-0.94-x,这些都不适用于我的情况。我有一个5节点的hadoop-2.2.0集群和一个3节点的hbase-0.98.0集群,还有一个安装了hadoop-2.2.0、base-0.98.0和pig-0.12.0的客户机。它们各自的功能都很好,我得到了hdfs,map reduce,region server,pig都很好。要完成“从pig将数据加载到base”示例,我有以下导出:

export PIG_CLASSPATH=$HADOOP_INSTALL/etc/hadoop:$HBASE_PREFIX/lib/*.jar
:$HBASE_PREFIX/lib/protobuf-java-2.5.0.jar:$HBASE_PREFIX/lib/zookeeper-3.4.5.jar

当我试着运行:pig-x local-f loaddata.pig和boom时error:error 2998:未处理的内部错误。org/apache/hadoop/hbase/filter/writeablebytearraycomparable(这应该是我在无数次尝试找出一个工作设置时得到的100多次了)。跟踪日志shows:lava.lang.noclassdeffounderror:org/apache/hadoop/hbase/filter/writeablebytearraycomplable下面是我的pig脚本:

REGISTER /usr/local/hbase/lib/hbase-*.jar;
REGISTER /usr/local/hbase/lib/hadoop-*.jar;
REGISTER /usr/local/hbase/lib/protobuf-java-2.5.0.jar;
REGISTER /usr/local/hbase/lib/zookeeper-3.4.5.jar;
raw_data = LOAD '/home/hdadmin/200408hourly.txt' USING PigStorage(',');
weather_data = FOREACH raw_data GENERATE $1, $10;
ranked_data = RANK weather_data;
final_data = FILTER ranked_data BY $0 IS NOT NULL;
STORE final_data INTO 'hbase://weather' USING
org.apache.pig.backend.hadoop.hbase.HBaseStorage('info:date info:temp');

我已经成功地创建了一个基表“weather”。有没有人有过成功的经验,慷慨地与我们分享?

lndjwyie

lndjwyie1#

如果您知道哪个jar文件包含丢失的类,例如org/apache/hadoop/hbase/filter/writablebytearray,那么您可以在运行pig命令时使用pig.additional.jars属性来确保jar文件对所有Map程序任务都可用。
pig-d pig.additional.jars=fullpathtojarfile.jar bulkload.pig
例子:
pig-d pig.additional.jars=/usr/lib/hbase/lib/hbase-protocol.jar bulkload.pig

nimxete2

nimxete22#

ant clean jar-withouthadoop -Dhadoopversion=23 -Dhbaseversion=95

默认情况下,它基于hbase 0.94构建。94和95是唯一的选择。

相关问题