首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pig + hbase + hadoop2集成

pig + hbase + hadoop2集成
EN

Stack Overflow用户
提问于 2014-03-10 14:24:48
回答 2查看 774关注 0票数 2

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

代码语言:javascript
复制
ERROR 2998: Unhandled internal error.
org/apache/hadoop/hbase/filter/WritableByteArrayComparable

使用一行日志跟踪:

代码语言:javascript
复制
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 servers,pig都运行得很好。为了完成一个“从pig加载数据到基础”的例子,我有下面的导出:

代码语言:javascript
复制
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 and boom时,出现以下错误:错误2998:未处理的内部错误。org/apache/hadoop/hbase/filter/WritableByteArrayComparable (这应该是我的100+时代,我无数次尝试找出一个工作环境)。跟踪日志shows:lava.lang.NoClassDefFoundError: org/apache/hadoop/hbase/filter/WritableByteArrayComparable以下是我的pig脚本:

代码语言:javascript
复制
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‘。有没有人有成功的经验和慷慨的分享给我们?

EN

回答 2

Stack Overflow用户

发布于 2014-06-09 02:11:11

代码语言:javascript
复制
ant clean jar-withouthadoop -Dhadoopversion=23 -Dhbaseversion=95

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

票数 1
EN

Stack Overflow用户

发布于 2014-08-06 06:28:42

如果您知道哪个jar文件包含缺少的类,例如org/apache/hadoop/hbase/filter/WritableByteArray,,那么您可以在运行pig命令时使用pig.additional.jars属性,以确保jar文件可用于所有映射器任务。

pig pig.additional.jars=FullPathToJarFile.jar bulkload.pig

示例:

pig pig.additional.jars=/usr/lib/hbase/lib/hbase-protocol.jar -D bulkload.pig

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22293377

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档