二级索引-phoenix-单机部署

下载##

下载地址下下载以下对应hbase版本的版本:

  • phoenix-4.7.0-HBase-1.0/bin/phoenix-4.7.0-HBase-1.0-bin.tar.gz

安装部署##

  1. 解压 tar zxvf phoenix-4.7.0-HBase-1.0-bin.tar.gz

  2. 修改${HBASE_HOME}/conf/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>
    	</property>
    	<property>
    	    <name>hbase.rpc.controllerfactory.class</name>
    	    <value>org.apache.hadoop.hbase.ipc.controller.ServerRpcControllerFactory</value>
    	</property>
    
  3. 拷贝phoenix文件夹里的以下jar包到${HBASE_HOME}/lib
    phoenix-4.7.0-HBase-1.0-client.jar
    phoenix-4.7.0-HBase-1.0-server.jar
    phoenix-core-4.7.0-HBase-1.0.jar

  4. 修改/etc/profile

    export PHOENIX_HOME=/opt/cdh/phoenix-hbase
    export CLASSPATH=PHOENIX_HOME:CLASSPATH
    export PATH=.:PATH:PHOENIX_HOME/bin
    
  5. source /etc/profile

  6. $PHOENIX_HOME/bin/sqlline.py ubuntu:2181开启phoenix

源码安装##

由于cdh不支持apache的phoenix-hbase1.0的安装,需要源码编译phoenix。

目前测试两种源码,一种是apache源码phoenix4.2.0,一种是从下载地址下载的4.7-HBase-1.0-cdh5.5版本。

apache源码需要修改pom.xml文件里的hadoop和Hbase版本,可以保证版本一致性;github版本的不需要修改pom.xml,但是版本不一致,曾修改过导致maven过程出错。

在执行sqlline.py之后报错:

Error: org.apache.hadoop.hbase.DoNotRetryIOException: SYSTEM.CATALOG: org.apache.hadoop.hbase.client.Scan.setRaw(Z)Lorg/apache/hadoop/hbase/client/Scan;

at org.apache.phoenix.util.ServerUtil.createIOException(ServerUtil.java:87)
at org.apache.phoenix.coprocessor.MetaDataEndpointImpl.createTable(MetaDataEndpointImpl.java:1318)
at org.apache.phoenix.coprocessor.generated.MetaDataProtos$MetaDataService.callMethod(MetaDataProtos.java:11715)
at org.apache.hadoop.hbase.regionserver.HRegion.execService(HRegion.java:7388)
at org.apache.hadoop.hbase.regionserver.RSRpcServices.execServiceOnRegion(RSRpcServices.java:1776)
at org.apache.hadoop.hbase.regionserver.RSRpcServices.execService(RSRpcServices.java:1758)
at org.apache.hadoop.hbase.protobuf.generated.ClientProtosClientService2.callBlockingMethod(ClientProtos.java:32209)
at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2034)
at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:107)
at org.apache.hadoop.hbase.ipc.RpcExecutor.consumerLoop(RpcExecutor.java:130)
at org.apache.hadoop.hbase.ipc.RpcExecutor$1.run(RpcExecutor.java:107)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NoSuchMethodError: org.apache.hadoop.hbase.client.Scan.setRaw(Z)Lorg/apache/hadoop/hbase/client/Scan;
at org.apache.phoenix.coprocessor.MetaDataEndpointImpl.buildDeletedTable(MetaDataEndpointImpl.java:1016)
at org.apache.phoenix.coprocessor.MetaDataEndpointImpl.loadTable(MetaDataEndpointImpl.java:1091)
at org.apache.phoenix.coprocessor.MetaDataEndpointImpl.createTable(MetaDataEndpointImpl.java:1265)
... 10 more (state=08000,code=101)

以下为两种源码安装方法:

  1. apache下的phoenix4.2.0-src
  2. githun下的phoenix4.7-hbase1.0-cdh5.5下载地址

apache源码需要修改pom.xml文件里的hadoop和Hbase版本,可以保证版本一致性;github版本的不需要修改pom.xml,但是版本不一致,曾修改过导致maven过程出错

重新安装

由于以上皆无法安装,更改Hbase的版本为apache的hbase1.0.1.1版本,重新部署hbase,按照以上正常部署phoenix的步骤安装即可。

原文地址:https://www.cnblogs.com/fengzzi/p/10033831.html