zoukankan      html  css  js  c++  java
  • Hbase 2.1.0 协处理器 报错 LinkageError 解决方法

    通过命令行 向 hbase 2.10. 协处理器 传参时, 发生了这样的报错,折腾了好几天,才解决掉。

    ERROR org.apache.hadoop.hbase.regionserver.RegionCoprocessorHost: Failed to load coprocessor com.ds.hbase.coprocessor.HbaseDataSyncJanusObserver
    java.lang.LinkageError: loader constraint violation: loader (instance of org/apache/hadoop/hbase/util/CoprocessorClassLoader) previously initiated loading for a different type with name "org/apache/hadoop/conf/Configuration"
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:756)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:468)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
    at org.apache.hadoop.hbase.util.CoprocessorClassLoader.loadClass(CoprocessorClassLoader.java:317)
    at org.apache.hadoop.hbase.util.CoprocessorClassLoader.loadClass(CoprocessorClassLoader.java:289)
    at com.ds.hbase.coprocessor.HbaseDataSyncJanusObserver.start(HbaseDataSyncJanusObserver.java:52)
    at org.apache.hadoop.hbase.coprocessor.BaseEnvironment.startup(BaseEnvironment.java:72)
    at org.apache.hadoop.hbase.coprocessor.CoprocessorHost.checkAndLoadInstance(CoprocessorHost.java:263)
    at org.apache.hadoop.hbase.coprocessor.CoprocessorHost.load(CoprocessorHost.java:226)
    at org.apache.hadoop.hbase.coprocessor.CoprocessorHost.load(CoprocessorHost.java:185)
    at org.apache.hadoop.hbase.regionserver.RegionCoprocessorHost.loadTableCoprocessors(RegionCoprocessorHost.java:388)
    at org.apache.hadoop.hbase.regionserver.RegionCoprocessorHost.<init>(RegionCoprocessorHost.java:275)
    at org.apache.hadoop.hbase.regionserver.HRegion.<init>(HRegion.java:827)
    at org.apache.hadoop.hbase.regionserver.HRegion.<init>(HRegion.java:716)
    at sun.reflect.GeneratedConstructorAccessor15.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at org.apache.hadoop.hbase.regionserver.HRegion.newHRegion(HRegion.java:7005)
    at org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:7202)
    at org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:7175)
    at org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:7133)
    at org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:7084)
    at org.apache.hadoop.hbase.regionserver.handler.OpenRegionHandler.openRegion(OpenRegionHandler.java:283)
    at org.apache.hadoop.hbase.regionserver.handler.OpenRegionHandler.process(OpenRegionHandler.java:108)
    at org.apache.hadoop.hbase.executor.EventHandler.run(EventHandler.java:104)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)

    解决方法 :在pom 中 为 hbase-server 的依赖,加上 <scope>provided</scope>,  使其 打包时,不被包含进去,就可以了。

    <dependency>
    <groupId>org.apache.hbase</groupId>
    <artifactId>hbase-server</artifactId>
    <version>${hbase.version}</version>
    <scope>provided</scope>
    </dependency>

    具体原因,是Hbase 2.1.0 自定义的类加载器,加载类的顺序导致的,旧版本就没这个问题, jar包里不要留 hbase-server 的类,就可以了,因为主进程里已经有了,这样jar包 还能减小50M

  • 相关阅读:
    Asp.Net Web API 2第八课——Web API 2中的属性路由
    Asp.Net Web API 2第七课——Web API异常处理
    Asp.Net Web API 2第六课——Web API路由和动作选择
    Asp.Net Web API 2第五课——Web API路由
    开始学习python
    BMI 小程序 购物车
    深浅copy 文件操作
    字典 dict 集合set
    基本数据类型 (str,int,bool,tuple,)
    python 运算符
  • 原文地址:https://www.cnblogs.com/wangzhen-fly/p/12523283.html
Copyright © 2011-2022 走看看