Phoneix创建二级索引修改好配置hbase-site.xml后 报缺少jar包 LocalIndexMerger

按照网上的配置好后 发现缺少jar包 

2020-11-23 11:47:48,744 ERROR [regionserver/linux01:16020] coprocessor.CoprocessorHost: The coprocessor org.apache.hadoop.hbase.regionserver.LocalIndexMerger threw java.lang.ClassNotFoundException: org.apache.hadoop.hbase.regionserver.LocalIndexMerger
java.lang.ClassNotFoundException: org.apache.hadoop.hbase.regionserver.LocalIndexMerger
        at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
        at org.apache.hadoop.hbase.coprocessor.CoprocessorHost.loadSystemCoprocessors(CoprocessorHost.java:154)
        at org.apache.hadoop.hbase.regionserver.RegionServerCoprocessorHost.<init>(RegionServerCoprocessorHost.java:70)
        at org.apache.hadoop.hbase.regionserver.HRegionServer.run(HRegionServer.java:927)
        at java.lang.Thread.run(Thread.java:748)
2020-11-23 11:47:48,785 ERROR [regionserver/linux01:16020] regionserver.HRegionServer: ***** ABORTING region server linux01,16020,1606103257810: The coprocessor org.apache.hadoop.hbase.regionserver.LocalIndexMerger threw java.lang.ClassNotFoundException: org.apache.hadoop.hbase.regionserver.LocalIndexMerger *****
java.lang.ClassNotFoundException: org.apache.hadoop.hbase.regionserver.LocalIndexMerger
        at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:418)

出现这种问题 ,可以参考一下内容 :

在每一个RegionServer的hbase-site.xml中加入如下的属性

<property>

  <name>hbase.regionserver.wal.codec</name>

  <value>org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec</value>

</property>

<property>

  <name>hbase.region.server.rpc.scheduler.factory.class</name>

  <value>org.apache.hadoop.hbase.ipc.PhoenixRpcSchedulerFactory</value>

  <description>Factory to create the Phoenix RPC Scheduler that uses separate queues for index and metadata updates</description>

</property>

<property>

  <name>hbase.rpc.controllerfactory.class</name>

  <value>org.apache.hadoop.hbase.ipc.controller.ServerRpcControllerFactory</value>

  <description>Factory to create the Phoenix RPC Scheduler that uses separate queues for index and metadata updates</description>

</property>

(4.8之后版本不再需要如下配置)

<property>

  <name>hbase.coprocessor.regionserver.classes</name>

  <value>org.apache.hadoop.hbase.regionserver.LocalIndexMerger</value>

</property>

 

在每一个Master的hbase-site.xml中加入如下的属性:(4.8之后版本不再需要如下配置)

<property>

  <name>hbase.master.loadbalancer.class</name>

  <value>org.apache.phoenix.hbase.index.balancer.IndexLoadBalancer</value>

</property>

<property>

  <name>hbase.coprocessor.master.classes</name>

  <value>org.apache.phoenix.hbase.index.master.IndexMasterObserver</value>

</property>

 

对于4.8之前的版本需要上面灰色的配置,如果4.8也添加了上面的配置,添加后在重启hbase时失败,主节点可以起来,region节点起来后就消失了,看日志如下:

2018-02-07 09:23:55,840 ERROR [regionserver/z2/192.168.110.98:60040] coprocessor.CoprocessorHost: The coprocessor org.apache.hadoop.hbase.regionserver.LocalIndexMerger threw java.lang.ClassNotFoundException: org.apache.hadoop.hbase.regionserver.LocalIndexMerger

java.lang.ClassNotFoundException: org.apache.hadoop.hbase.regionserver.LocalIndexMerger

说找不到LocalIndexMerger这个类。

在代码中添加这个类,引入此类,发现:

<version>4.8.0-HBase-1.0</version>

中根本没有此类,

<version>4.6.0-HBase-0.98</version>

中才有。

因此把phoenix-core-4.6.0-HBase-0.98.jar拷贝到各region节点的lib下,再次启动hbase才能成功。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值