在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 servers,pig都运行得很好。为了完成一个“从pig加载数据到基础”的例子,我有下面的导出:
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脚本:
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‘。有没有人有成功的经验和慷慨的分享给我们?
发布于 2014-06-09 02:11:11
ant clean jar-withouthadoop -Dhadoopversion=23 -Dhbaseversion=95默认情况下,它是基于hbase 0.94构建的。94和95是唯一的选项。
发布于 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
https://stackoverflow.com/questions/22293377
复制相似问题