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

  • 相关阅读:
    dede模板留言提交错误时返回空白页处理方法
    Dedecms列表页通过函数调用当前文档tag的方法
    织梦dedecms如何让内容页显示不同的内容,但是每次更新都不变
    织梦DedeCMS网站服务器搬家详细教程
    让DEDECMS文章内容中链接新窗口打开的方法
    织梦dedecms中英文模版当前位置的修改方法
    织梦dedecms设置不同的搜索页模板教程
    简易版php文件上传_超详细详解
    nodejs 使用mongoose 操作mongodb
    记一个正则
  • 原文地址:https://www.cnblogs.com/wangzhen-fly/p/12523283.html
Copyright © 2011-2022 走看看