zoukankan      html  css  js  c++  java
  • CDH5..4.7+phoenix实现查询HBase异常:java.sql.SQLException: ERROR 1102 (XCL02): Cannot get all table regions

    基础环境是用CM 安装的cdh5.4.7,phoenix使用的版本是phoenix-4.5.2-HBase-1.0-bin。

    出现异常信息:java.sql.SQLException: ERROR 1102 (XCL02): Cannot get all table regions

    下载地址:http://mirror.bit.edu.cn/apache/phoenix/phoenix-4.5.2-HBase-1.0/bin/phoenix-4.5.2-HBase-1.0-bin.tar.gz

    安装步骤参考:https://phoenix.apache.org/installation.html

    配置环境变量:
    export PHOENIX_HOME=/opt/phoenix-4.6.0-HBase-1.0-bin
    export PATH=$PATH:$JAVA_HOME/bin:$PHOENIX_HOME
    export CLASSPATH=.:$PHOENIX_HOME/phoenix-4.6.0--HBase-1.0-client.jar

    出现异常信息:

    [root@node2 bin]# ./sqlline.py node2:2181
    Setting property: [isolation, TRANSACTION_READ_COMMITTED]
    issuing: !connect jdbc:phoenix:node2:2181 none none org.apache.phoenix.jdbc.PhoenixDriver
    Connecting to jdbc:phoenix:node2:2181

     ERROR 1102 (XCL02): Cannot get all table regions (state=XCL02,code=1102)
    java.sql.SQLException: ERROR 1102 (XCL02): Cannot get all table regions
            at org.apache.phoenix.exception.SQLExceptionCode$Factory$1.newException(SQLExceptionCode.java:388)
            at org.apache.phoenix.exception.SQLExceptionInfo.buildException(SQLExceptionInfo.java:145)
            at org.apache.phoenix.query.ConnectionQueryServicesImpl.getAllTableRegions(ConnectionQueryServicesImpl.java:451)
            at org.apache.phoenix.query.ConnectionQueryServicesImpl.checkClientServerCompatibility(ConnectionQueryServicesImpl.java:951)
            at org.apache.phoenix.query.ConnectionQueryServicesImpl.ensureTableCreated(ConnectionQueryServicesImpl.java:877)
            at org.apache.phoenix.query.ConnectionQueryServicesImpl.createTable(ConnectionQueryServicesImpl.java:1223)
            at org.apache.phoenix.query.DelegateConnectionQueryServices.createTable(DelegateConnectionQueryServices.java:113)
            at org.apache.phoenix.schema.MetaDataClient.createTableInternal(MetaDataClient.java:1937)
            at org.apache.phoenix.schema.MetaDataClient.createTable(MetaDataClient.java:751)
            at org.apache.phoenix.compile.CreateTableCompiler$2.execute(CreateTableCompiler.java:186)
            at org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:320)
            at org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:312)
            at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)
            at org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:310)
            at org.apache.phoenix.query.ConnectionQueryServicesImpl$12.call(ConnectionQueryServicesImpl.java:1896)
            at org.apache.phoenix.util.PhoenixContextExecutor.call(PhoenixContextExecutor.java:77)
            at org.apache.phoenix.query.ConnectionQueryServicesImpl.init(ConnectionQueryServicesImpl.java:1896)
            at org.apache.phoenix.jdbc.PhoenixDriver.getConnectionQueryServices(PhoenixDriver.java:180)
            at org.apache.phoenix.jdbc.PhoenixEmbeddedDriver.connect(PhoenixEmbeddedDriver.java:132)
            at org.apache.phoenix.jdbc.PhoenixDriver.connect(PhoenixDriver.java:151)
            at sqlline.DatabaseConnection.connect(DatabaseConnection.java:157)
            at sqlline.DatabaseConnection.getConnection(DatabaseConnection.java:203)
            at sqlline.Commands.connect(Commands.java:1064)
            at sqlline.Commands.connect(Commands.java:996)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
            at java.lang.reflect.Method.invoke(Method.java:606)
            at sqlline.ReflectiveCommandHandler.execute(ReflectiveCommandHandler.java:36)
            at sqlline.SqlLine.dispatch(SqlLine.java:804)
            at sqlline.SqlLine.initArgs(SqlLine.java:588)
            at sqlline.SqlLine.begin(SqlLine.java:656)
            at sqlline.SqlLine.start(SqlLine.java:398)
            at sqlline.SqlLine.main(SqlLine.java:292)
    Caused by: org.apache.hadoop.hbase.client.NoServerForRegionException: No server address listed in hbase:meta for region SYSTEM.CATALOG,,1452072854761.0856fe481c7eb7920a7605037e9d1c2d. containing row
            at org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.locateRegionInMeta(ConnectionManager.java:1243)
            at org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.locateRegion(ConnectionManager.java:1109)
            at org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.relocateRegion(ConnectionManager.java:1080)
            at org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.relocateRegion(ConnectionManager.java:1064)
            at org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.getRegionLocation(ConnectionManager.java:885)
            at org.apache.phoenix.query.ConnectionQueryServicesImpl.getAllTableRegions(ConnectionQueryServicesImpl.java:437)
            ... 33 more
    
    

    错误原因:

    phoenix的server jar包放错目录了。正确的目录是需要放在/opt/cloudera/parcels/CDH-5.4.7-1.cdh5.4.7.p0.3/lib/hbase/lib。

    我之前错误的放在/opt/cloudera/parcels/CDH-5.4.7-1.cdh5.4.7.p0.3/lib/hbase/

     以上错误解决办法:将phoenix服务包放在/opt/cloudera/parcels/CDH-5.4.7-1.cdh5.4.7.p0.3/lib/hbase/lib 即可

    另一个错误:

    解决办法,需要重新编译phoenix源码包。

  • 相关阅读:
    PHP 大小写转换、首字母大写、每个单词首字母大写转换相关函数
    【论文学习4】BiSample: Bidirectional Sampling for Handling Missing Data with Local Differential Privacy
    【论文学习3】Local Differential Privacy for Deep Learning
    【论文学习2】 Differential Privacy Reinforcement Learning
    深度学习中的优化算法
    Spatial crowdsourcing
    “pip install tensorflow ”出现错误
    python或pip'不是内部或外部命令”
    pip install torch出现错误
    打不开gitHub的解决方法
  • 原文地址:https://www.cnblogs.com/zhanggl/p/5108775.html
Copyright © 2011-2022 走看看