【问题标题】:Apache Phoenix unable to connect to HBaseApache Phoenix 无法连接到 HBase
【发布时间】:2016-11-24 12:29:56
【问题描述】:

我是 Phoenix 的全新用户,可能错过了一些简单的耳光。

  • HBase 向上

    21:44:23/浇道 $ps -ef | grep HMaster

    501 55936 55922 0 9:50PM ttys014 0:18.12 /Library/Java/JavaVirtualMachines/jdk1.8.0_71.jdk/Contents/Home/bin/java -Dproc_master -XX:OnOutOfMemoryError=kill -9 %p -Djava。 net.preferIPv4Stack=true - .. -Dhbase.security.logger=INFO,RFAS org.apache.hadoop.hbase.master.HMaster 启动

  • 我们可以通过hbase shell 连接到它并查询内容:

    hbase(main):010:0> 扫描't1'

    行列+单元格 r1 列=f1:c1,时间戳=1469077174795,值=val1 0.0370 秒内 1 行

现在我已将 phoenix 4.4.6 jar 复制到 $HBASE_HOME/lib 目录,重新启动 hbase 并尝试通过 sqlline.py 连接:

$sqlline.py mellyrn.local:2181

Setting property: [incremental, false]
Setting property: [isolation, TRANSACTION_READ_COMMITTED]
issuing: !connect jdbc:phoenix:mellyrn.local:2181 none none org.apache.phoenix.jdbc.PhoenixDriver
Connecting to jdbc:phoenix:mellyrn.local:2181
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/shared/phoenix-4.7.0-HBase-1.1-bin/phoenix-4.7.0-HBase-1.1-client.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/usr/local/Cellar/hadoop/2.6.0/libexec/share/hadoop/common/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
16/07/20 22:03:03 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Error: org.apache.hadoop.hbase.DoNotRetryIOException: Class org.apache.phoenix.coprocessor.MetaDataEndpointImpl cannot be loaded Set hbase.table.sanity.checks to false at conf or table descriptor if you want to bypass sanity checks
    at org.apache.hadoop.hbase.master.HMaster.warnOrThrowExceptionForFailure(HMaster.java:1603)
    at org.apache.hadoop.hbase.master.HMaster.sanityCheckTableDescriptor(HMaster.java:1535)
    at org.apache.hadoop.hbase.master.HMaster.createTable(HMaster.java:1452)
    at org.apache.hadoop.hbase.master.MasterRpcServices.createTable(MasterRpcServices.java:429)
    at org.apache.hadoop.hbase.protobuf.generated.MasterProtos$MasterService$2.callBlockingMethod(MasterProtos.java:52195)
    at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2127)
    at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:107)
    at org.apache.hadoop.hbase.ipc.RpcExecutor.consumerLoop(RpcExecutor.java:133)
    at org.apache.hadoop.hbase.ipc.RpcExecutor$1.run(RpcExecutor.java:108)
    at java.lang.Thread.run(Thread.java:745) (state=08000,code=101)
org.apache.phoenix.except

..

Caused by: org.apache.hadoop.hbase.DoNotRetryIOException: 
org.apache.hadoop.hbase.DoNotRetryIOException: Class 
org.apache.phoenix.coprocessor.MetaDataEndpointImpl cannot be loaded Set 
hbase.table.sanity.checks to false at conf or table descriptor if you want to 
bypass sanity checks

因此,任何有关提出phoenix 所需内容的提示都会有所帮助。

【问题讨论】:

    标签: hbase phoenix


    【解决方案1】:

    HBase master 无法加载 phoenixserver.jar 时抛出的异常,即使 phoenix 安装说明说只需重启区域服务器,还不够,请将 phoenixserver.jar 复制到 HBase master 和 backup masters 与区域服务器相同并重新启动它们。

    【讨论】:

      【解决方案2】:

      HMaster 上检查$HBASE_HOME/lib$HBASE_HOME/conf/hbase-site.xml

      当你启动phoenix时,它会创建4个系统表:

      SYSTEM.CATALOG
      SYSTEM.FUNCTION
      SYSTEM.SEQUENCE
      SYSTEM.STATS
      

      SYSTEM.CATALOGSYSTEM.FUNCTION 声明使用协处理器org.apache.phoenix.coprocessor.MetaDataEndpointImpl,但您的HMaster 似乎无法加载它。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-08-23
        • 1970-01-01
        • 2017-09-23
        • 2020-11-04
        • 2017-03-26
        • 1970-01-01
        • 2015-08-04
        • 1970-01-01
        相关资源
        最近更新 更多