首页 文章

猪hbase hadoop2整合

提问于
浏览
2

有任何人在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

我在网上搜索并发现了一些问题和解决方案,但所有这些都涉及pre-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,区域服务器,猪一切都运行良好 . 要完成“从猪加载数据”示例,我有以下导出:

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 2998:未处理的内部错误 . org / apache / hadoop / hbase / filter / WritableByteArrayComparable(这应该是100次,我无数次试图找出工作设置) . 跟踪日志显示:lava.lang.NoClassDefFoundError:org / apache / hadoop / hbase / filter / WritableByteArrayComparable以下是我的猪脚本:

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');

我已经成功创建了一个基表“天气” . 有没有人有成功的经验,并慷慨与我们分享?

2 回答

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

    默认情况下,它 Build 在hbase 0.94之上 . 94和95是唯一的选择 .

  • 0

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

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

    例:

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

相关问题