当前位置: 首页 > 知识库问答 >
问题:

pig hbase hadoop2集成

公孙智
2023-03-14

是否有人在hadoop-2.2.0的hbase-0.98.0猪-0.12.0组合的环境中成功地将数据从hadoop-2.2.0上的猪-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将数据加载到数据库”的示例,我有以下导出:

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

当我试图运行:猪-x本地-floaddata.pig和繁荣,以下错误:错误2998:未处理的内部错误。org/apache/hadoop/hbase/filter/WritableByteArrayCompable(这应该是我让它死亡的100次无数次尝试找出一个工作设置)。跟踪日志显示:lava.lang.NoClassDefFoundError:org/apache/hadoop/hbase/filter/WritableByteArrayCompable以下是我的猪脚本:

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个答案

张丰
2023-03-14

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

pig.additional.jarsile.jarbulkload.pig

例子:

清管器-D清管器。附加的jars=/usr/lib/hbase/lib/hbase协议。罐散装货物。猪

曹涵润
2023-03-14
ant clean jar-withouthadoop -Dhadoopversion=23 -Dhbaseversion=95

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

 类似资料:
  • 我是新点燃的。 步骤1:我在两个VM(ubuntu)中安装了Ignite 2.6.0,在一个VM中启动了节点。下面有COMAND。bin/ignite.sh examples/config/example-ignite.xml 步骤2:我的所有配置都在example-default.xml中 步骤3:在其他VM中执行包含datagrid逻辑的client.jar(该VM既是客户机也是节点)。 步骤

  • 我创建了一个新示例,并将代码分为客户端和服务器端。 完整的代码可以在这里找到。 服务器端有3个版本。 服务器无Spring Boot应用程序,使用Spring Integration RSocket InboundGateway 服务器引导重用Spring RSocket autconfiguration,并通过serverrsocketmessagehandler创建ServerRSocketC

  • 可运行和可调用 如果你在Runnable或Callable中包含你的逻辑,就可以将这些类包装在他们的Sleuth代表中。 Runnable的示例: Runnable runnable = new Runnable() { @Override public void run() { // do some work } @Override public String toString()

  • Jinja2 提供了一些代码来继承到其它工具,诸如框架、 Babel 库或你偏好的编辑器 的奇特的代码高亮。这里是包含的这些的简要介绍。 帮助继承的文件在 这里 可 用。 Babel 集成 Jinja 提供了用 Babel 抽取器从模板中抽取 gettext 消息的支持,抽取器的接入点 名为 jinja2.ext.babel_extract 。 Babel 支持的被作为 i18n 扩展 的 一部分

  • Jinja2 提供了一些代码来继承到其它工具,诸如框架、 Babel 库或你偏好的编辑器 的奇特的代码高亮。这里是包含的这些的简要介绍。 帮助继承的文件在 这里 可 用。 Babel 集成 Jinja 提供了用 Babel 抽取器从模板中抽取 gettext 消息的支持,抽取器的接入点 名为 jinja2.ext.babel_extract 。 Babel 支持的被作为 i18n 扩展 的 一部分

  • 我有一个redis集群,有主服务器、从服务器和3个哨兵服务器。主从映射到dns名称node1-redis-dev.com、node2-redis-dev.com。redis服务器版本为2.8 我在application.properties文件中包含以下内容。 但是,当我检查StringRedisTemplate时,在JedisConnectionFactory的hostName属性下,我看到的是

  • sdiff key1 key2...keyN 返回所有给定key的差集 sdiffstore dstkey key1...keyN 同sdiff,并同时保存差集到dstkey下

  • sunion key1 key2...keyN 返回所有给定key的并集 sunionstore dstkey key1...keyN 同sunion,并同时保存并集到dstkey下