編寫hbase協處理器observer遇到的問題

一、第一個異常信息,配置文件錯誤

java.io.IOException: Aborting flush because server is aborted...

        at org.apache.hadoop.hbase.regionserver.HRegion.internalPrepareFlushCache(HRegion.java:2269)
        at org.apache.hadoop.hbase.regionserver.HRegion.internalFlushcache(HRegion.java:2254)
        at org.apache.hadoop.hbase.regionserver.HRegion.replayRecoveredEditsIfAny(HRegion.java:4171)
        at org.apache.hadoop.hbase.regionserver.HRegion.initializeRegionStores(HRegion.java:1014)
        at org.apache.hadoop.hbase.regionserver.HRegion.initializeRegionInternals(HRegion.java:884)
        at org.apache.hadoop.hbase.regionserver.HRegion.initialize(HRegion.java:852)
        at org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:6617)
        at org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:6578)
        at org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:6549)
        at org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:6505)
        at org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:6456)
        at org.apache.hadoop.hbase.regionserver.handler.OpenRegionHandler.openRegion(OpenRegionHandler.java:362)
        at org.apache.hadoop.hbase.regionserver.handler.OpenRegionHandler.process(OpenRegionHandler.java:129)
        at org.apache.hadoop.hbase.executor.EventHandler.run(EventHandler.java:129)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)

        at java.lang.Thread.run(Thread.java:748)

解決辦法:配置hbase-site.xml文件,添加配置

   hbase.coprocessor.abortonerror=false

二、第二個異常

2018-04-13 16:23:14,452 ERROR [RS_OPEN_REGION-slave01:16020-8] regionserver.RegionCoprocessorHost: Failed to load coprocessor com.jadun.ObserverHbaseToEs.DataSyncObserver
java.lang.SecurityException: Invalid signature file digest for Manifest main attributes
        at sun.security.util.SignatureFileVerifier.processImpl(SignatureFileVerifier.java:314)
        at sun.security.util.SignatureFileVerifier.process(SignatureFileVerifier.java:268)
        at java.util.jar.JarVerifier.processEntry(JarVerifier.java:316)
        at java.util.jar.JarVerifier.update(JarVerifier.java:228)
        at java.util.jar.JarFile.initializeVerifier(JarFile.java:383)
        at java.util.jar.JarFile.getInputStream(JarFile.java:450)
        at sun.misc.URLClassPath$JarLoader$2.getInputStream(URLClassPath.java:977)
        at sun.misc.Resource.cachedInputStream(Resource.java:77)
        at sun.misc.Resource.getByteBuffer(Resource.java:160)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:454)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
        at org.apache.hadoop.hbase.util.CoprocessorClassLoader.loadClass(CoprocessorClassLoader.java:303)
        at org.apache.hadoop.hbase.coprocessor.CoprocessorHost.load(CoprocessorHost.java:197)
        at org.apache.hadoop.hbase.regionserver.RegionCoprocessorHost.loadTableCoprocessors(RegionCoprocessorHost.java:331)
        at org.apache.hadoop.hbase.regionserver.RegionCoprocessorHost.<init>(RegionCoprocessorHost.java:222)
        at org.apache.hadoop.hbase.regionserver.HRegion.<init>(HRegion.java:781)
        at org.apache.hadoop.hbase.regionserver.HRegion.<init>(HRegion.java:689)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
        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:6267)
        at org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:6577)
        at org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:6549)
        at org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:6505)
        at org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:6456)
        at org.apache.hadoop.hbase.regionserver.handler.OpenRegionHandler.openRegion(OpenRegionHandler.java:362)
        at org.apache.hadoop.hbase.regionserver.handler.OpenRegionHandler.process(OpenRegionHandler.java:129)
        at org.apache.hadoop.hbase.executor.EventHandler.run(EventHandler.java:129)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:748)

解決方法: <!-- Maven打包時將META-inf中.SF/.DSA/.RSA爲後綴的文件過濾,以防在服務器運行時報錯 -->
<plugin>
<configuration>
   <filters>
       <filter>
           <artifact>*:*</artifact>
           <excludes>
               <exclude>META-INF/*.SF</exclude>
               <exclude>META-INF/*.DSA</exclude>
               <exclude>META-INF/*.RSA</exclude>
           </excludes>
       </filter>
   </filters>
</configuration>
</plugin> 
或者在jar包中刪除這幾個文件
三、防止檢測jar包,報錯,自動斷開regionserver服務,需要關閉hbase.table.sanity.checks

    設置hbase.table.sanity.checks=false

開發過程中遇到的問題挺多的,記錄一下以防下次再次採坑

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章