`
beat_it_
  • 浏览: 64138 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
阅读更多

通过eclipse 插件远程提交mr(有操作hbase)任务到集群执行没有问题,

打成jar包在集群上执行报错,错误如下:

15/04/19 00:20:40 WARN client.HConnectionManager$HConnectionImplementation: Encountered problems when prefetch hbase:meta table:
org.apache.hadoop.hbase.DoNotRetryIOException: java.lang.IllegalAccessError: class com.google.protobuf.HBaseZeroCopyByteString cannot access its superclass com.google.protobuf.LiteralByteString
        at org.apache.hadoop.hbase.client.RpcRetryingCaller.translateException(RpcRetryingCaller.java:215)
        at org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithRetries(RpcRetryingCaller.java:127)
        at org.apache.hadoop.hbase.client.HTable.getRowOrBefore(HTable.java:705)
        at org.apache.hadoop.hbase.client.MetaScanner.metaScan(MetaScanner.java:144)
        at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.prefetchRegionCache(HConnectionManager.java:1107)
        at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegionInMeta(HConnectionManager.java:1167)
        at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManager.java:1059)
        at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManager.java:1016)
        at org.apache.hadoop.hbase.client.HTable.finishSetup(HTable.java:326)
        at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:192)
        at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:150)
        at com.lyq.mr.File2HFile2HBase.getJob(File2HFile2HBase.java:105)
        at com.lyq.mr.File2HFile2HBase.access$1(File2HFile2HBase.java:93)
        at com.lyq.mr.File2HFile2HBase$1.run(File2HFile2HBase.java:71)
        at com.lyq.mr.File2HFile2HBase$1.run(File2HFile2HBase.java:1)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:337)
        at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1471)
        at com.lyq.mr.File2HFile2HBase.run(File2HFile2HBase.java:62)
        at com.lyq.mr.File2HFile2HBase.main(File2HFile2HBase.java:124)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.hadoop.util.RunJar.main(RunJar.java:212)
Caused by: java.lang.IllegalAccessError: class com.google.protobuf.HBaseZeroCopyByteString cannot access its superclass com.google.protobuf.LiteralByteString
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
        at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
        at org.apache.hadoop.hbase.protobuf.RequestConverter.buildRegionSpecifier(RequestConverter.java:910)
        at org.apache.hadoop.hbase.protobuf.RequestConverter.buildGetRowOrBeforeRequest(RequestConverter.java:131)
        at org.apache.hadoop.hbase.protobuf.ProtobufUtil.getRowOrBefore(ProtobufUtil.java:1403)
        at org.apache.hadoop.hbase.client.HTable$2.call(HTable.java:701)
        at org.apache.hadoop.hbase.client.HTable$2.call(HTable.java:699)
        at org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithRetries(RpcRetryingCaller.java:120)
        ... 23 more
Exception in thread "main" java.lang.IllegalAccessError: com/google/protobuf/HBaseZeroCopyByteString
        at org.apache.hadoop.hbase.protobuf.RequestConverter.buildRegionSpecifier(RequestConverter.java:910)
        at org.apache.hadoop.hbase.protobuf.RequestConverter.buildGetRowOrBeforeRequest(RequestConverter.java:131)
        at org.apache.hadoop.hbase.protobuf.ProtobufUtil.getRowOrBefore(ProtobufUtil.java:1403)
        at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegionInMeta(HConnectionManager.java:1181)
        at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManager.java:1059)
        at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManager.java:1016)
        at org.apache.hadoop.hbase.client.HTable.finishSetup(HTable.java:326)
        at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:192)
        at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:150)
        at com.lyq.mr.File2HFile2HBase.getJob(File2HFile2HBase.java:105)
        at com.lyq.mr.File2HFile2HBase.access$1(File2HFile2HBase.java:93)
        at com.lyq.mr.File2HFile2HBase$1.run(File2HFile2HBase.java:71)
        at com.lyq.mr.File2HFile2HBase$1.run(File2HFile2HBase.java:1)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:337)
        at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1471)
        at com.lyq.mr.File2HFile2HBase.run(File2HFile2HBase.java:62)
        at com.lyq.mr.File2HFile2HBase.main(File2HFile2HBase.java:124)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.hadoop.util.RunJar.main(RunJar.java:212)

原因:

这是hbase的一个bug,详细信息访问:

https://issues.apache.org/jira/browse/HBASE-10304

解决方法:

1、在集群环境变量 etc/profiles 里添加如下配置:

export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:/home/hadoop/hbase-0.96.2-hadoop2/lib/hbase-protocol-0.96.2-hadoop2.jar

注意:hbase-protocol-*.jar 的路径根据自己配置目录而定。

2、执行source /etc/profile,是配置生效

 

分享到:
评论

相关推荐

    python3使用thrift操作hbase hbase-thirft报错解决

    python连接hbase需要用到hbase-thirft类库,但是hbase-thirft只在python2下能正常使用,如果在python3下,会报错,主要有一下几个错误 except IOError, io: SyntaxError: invalid syntax ModuleNotFoundError: No ...

    python3 使用 thrift 操作hbase 安装hbase-thirft后有一个Hbase报错

    python3 使用 thrift 操作hbase 安装hbase-thirft后有一个Hbase报错 使用这个修改完成的Hbase类替换掉原来的Hbase类问题全部解决 主要是因为python版本兼容性带来的问题

    基于集群的HBase安装和配置

    ### 基于集群的HBase安装和配置 #### Zookeeper简介 Zookeeper作为Hadoop生态中的关键组件,主要用于...通过上述步骤,可以成功地在已有Hadoop集群的基础上搭建起HBase集群,实现大数据环境下的高效数据存储与管理。

    HbaseTemplate 操作hbase

    HBase是建立在Hadoop文件系统(HDFS)之上,为处理大规模数据提供了一个高效的数据存储解决方案。而Spring Data Hadoop是Spring框架的一部分,它提供了与Hadoop生态系统集成的工具,包括对HBase的操作支持。本篇文章...

    3.基于hadoop集群搭建hbase

    6. **启动HBase集群**:进入HBase安装目录下的`bin`文件夹,执行以下命令启动HBase: ```bash start-hbase.sh ``` 可以通过在主节点(master)上运行`jps`命令来检查HBase是否成功启动。您应该能看到以下进程: ...

    hadoop+hbase+zookeeper集群配置流程及文件

    首先,Hadoop是一个开源的分布式计算框架,它允许在大规模集群上处理海量数据。Hadoop2.8.4版本引入了YARN(Yet Another Resource Negotiator),优化了资源管理,增强了系统的稳定性和可扩展性。配置Hadoop集群主要...

    MR程序Bulkload数据到hbase

    标题中的“MR程序Bulkload数据到hbase”指的是使用MapReduce(MR)程序批量加载(Bulkload)数据到HBase数据库的过程。MapReduce是Apache Hadoop框架中的一个关键组件,用于处理和生成大规模数据集。而HBase是一个...

    zookeeper+hbase集群搭建

    4. **验证Hbase**:访问HBase的Web界面以检查服务是否正常,同时在Hbase Shell中执行查询来测试集群功能。 在实验过程中,可能会遇到以下问题: 1. **使用未编译的Zookeeper**:这可能导致Zookeeper无法启动。确保...

    Hbase完全分布式集群搭建(详细+,看完就会,).docx

    在搭建 HBase 集群时,我们需要注意以下几点: * 需要创建一个 pid 文件夹,用于存储 HBase 的进程 ID。 * 需要修改 hbase-env.sh 文件,配置 HBASE_PID_DIR 和 HBASE_MANAGES_ZK 等变量。 * 需要修改 hbase-site....

    sqoop把mysql数据导入hbase2.1.6

    在执行导入步骤前,先创建一个简单的MySQL数据库和表,例如: ```sql CREATE DATABASE test; USE test; CREATE TABLE Student( Sno INT NOT NULL AUTO_INCREMENT PRIMARY KEY, Sname VARCHAR(10) NOT NULL, Sex ...

    监控HBase集群

    在这里,我们将讨论如何使用Java代码来实现HBase集群的监控。 监控HBase集群的重要性: 在生产系统中,运维人员需要监控系统的状态和表现,以便快速定位问题的根源。通过监控HBase集群,可以实时了解系统的性能...

    在集群中java 通过调用API操作HBase 0.98

    本篇文章将深入探讨如何在集群环境中使用Java API来操作HBase 0.98版本,主要包括创建表格、删除表格等基本操作。 首先,为了在Java中调用HBase的API,我们需要添加HBase的依赖库到项目中。对于HBase 0.98,你需要...

    Hbase集群部署.pdf

    这种设计使得在执行查询时能够快速地定位到相关数据,从而提高了查询效率。 在部署集群的过程中,首先需要安装JDK。在未安装JDK的情况下,需要从官方网站下载相应的JDK版本并进行解压安装。在本文档中,JDK安装在/...

    HBase2集群配置.pdf

    HBase2集群配置.pdf HBase2集群配置.pdf HBase2集群配置.pdf HBase2集群配置.pdf

    hbase 完全使用手册

    HBase Shell 提供了一个交互式的界面,允许用户执行数据操作、管理表结构、以及维护集群状态等。Java API 则为编程方式操作 HBase 提供了丰富的接口。 最后,HBase 完全使用手册还可能包含了许多高级功能和优化策略...

    python3 Hbase报错解决

    python3中直接安装hbase-thrift模块时,import会报Except语法错误 将资源解压后的Hbase.py和ttypes.py两个文件替换至site-packages/hbase/目录下即可解决

    在windows上安装Hbase

    在Windows上安装HBase 本文将指导您如何在Windows平台上安装HBase,包括配置详解。安装完成后,您将能够配置集群。 一、前提条件 在安装HBase前,需要安装Cygwin和Hadoop。这两个软件的安装不在本文的讨论范围内...

    HBase集群环境搭建

    如果您在Hadoop集群上进行了HDFS客户端配置的更改,例如将副本系数dfs.replication设置成5,则必须使用以下方法之一来使HBase知道,否则HBase将依旧使用默认的副本系数3来创建文件: 1. Add a pointer to your ...

    hadoop zookeeper hbase 的安装

    详细的讲述了hadoop的安装,zookeeper的安装,还有hbase的安装,每一步都非常的详细,按照我的粘贴就行

Global site tag (gtag.js) - Google Analytics