phoenix啟動報錯:org.apache.phoenix.exception.PhoenixIOException: SYSTEM.CATALOG


錯誤:

org.apache.phoenix.exception.PhoenixIOException: SYSTEM.CATALOG
 at org.apache.phoenix.util.ServerUtil.parseServerException(ServerUtil.java:144)
 at org.apache.phoenix.query.ConnectionQueryServicesImpl.metaDataCoprocessorExec(ConnectionQueryServicesImpl.java:1379)
 at org.apache.phoenix.query.ConnectionQueryServicesImpl.metaDataCoprocessorExec(ConnectionQueryServicesImpl.java:1343)
 at org.apache.phoenix.query.ConnectionQueryServicesImpl.getTable(ConnectionQueryServicesImpl.java:1560)
 at org.apache.phoenix.schema.MetaDataClient.updateCache(MetaDataClient.java:643)
 at org.apache.phoenix.schema.MetaDataClient.updateCache(MetaDataClient.java:538)
 at org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:428)
 at org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:391)
 at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)
 at org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:389)
 at org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:378)
 at org.apache.phoenix.jdbc.PhoenixStatement.executeUpdate(PhoenixStatement.java:1806)
 at org.apache.phoenix.query.ConnectionQueryServicesImpl$12.call(ConnectionQueryServicesImpl.java:2528)
 at org.apache.phoenix.query.ConnectionQueryServicesImpl$12.call(ConnectionQueryServicesImpl.java:2491)
 at org.apache.phoenix.util.PhoenixContextExecutor.call(PhoenixContextExecutor.java:76)
 at org.apache.phoenix.query.ConnectionQueryServicesImpl.init(ConnectionQueryServicesImpl.java:2491)
 at org.apache.phoenix.jdbc.PhoenixDriver.getConnectionQueryServices(PhoenixDriver.java:255)
 at org.apache.phoenix.jdbc.PhoenixEmbeddedDriver.createConnection(PhoenixEmbeddedDriver.java:150)
 at org.apache.phoenix.jdbc.PhoenixDriver.connect(PhoenixDriver.java:221)
 at sqlline.DatabaseConnection.connect(DatabaseConnection.java:157)
 at sqlline.DatabaseConnection.getConnection(DatabaseConnection.java:203)
 at sqlline.Commands.close(Commands.java:906)
 at sqlline.Commands.closeall(Commands.java:880)
 at sqlline.SqlLine.begin(SqlLine.java:714)
 at sqlline.SqlLine.start(SqlLine.java:398)
 at sqlline.SqlLine.main(SqlLine.java:291)
Caused by: org.apache.hadoop.hbase.TableNotFoundException: SYSTEM.CATALOG
 at org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.locateRegionInMeta(ConnectionManager.java:1417)
 at org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.locateRegion(ConnectionManager.java:1211)
 at org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.locateRegion(ConnectionManager.java:1191)
 at org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.locateRegion(ConnectionManager.java:1148)
 at org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.getRegionLocation(ConnectionManager.java:983)
 at org.apache.hadoop.hbase.client.HRegionLocator.getRegionLocation(HRegionLocator.java:83)
 at org.apache.hadoop.hbase.client.HTable.getRegionLocation(HTable.java:571)
 at org.apache.hadoop.hbase.client.HTable.getKeysAndRegionsInRange(HTable.java:787)
 at org.apache.hadoop.hbase.client.HTable.getKeysAndRegionsInRange(HTable.java:757)
 at org.apache.hadoop.hbase.client.HTable.getStartKeysInRange(HTable.java:1835)
 at org.apache.hadoop.hbase.client.HTable.coprocessorService(HTable.java:1790)
 at org.apache.hadoop.hbase.client.HTable.coprocessorService(HTable.java:1770)
 at org.apache.phoenix.query.ConnectionQueryServicesImpl.metaDataCoprocessorExec(ConnectionQueryServicesImpl.java:1362)
 ... 24 more

解決辦法:

去zk里面刪除SYSTEM.CATALOG表

bin/hbase zkcli 進入zk界面

再次報錯:

ERROR] Terminal initialization failed; falling back to unsupported
java.lang.IncompatibleClassChangeError: Found class jline.Terminal, but interface was expected
 at jline.TerminalFactory.create(TerminalFactory.java:101)
 at jline.TerminalFactory.get(TerminalFactory.java:159)
 at jline.console.ConsoleReader.<init>(ConsoleReader.java:227)
 at jline.console.ConsoleReader.<init>(ConsoleReader.java:219)
 at jline.console.ConsoleReader.<init>(ConsoleReader.java:207)
 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.zookeeper.ZooKeeperMain.run(ZooKeeperMain.java:311)
 at org.apache.zookeeper.ZooKeeperMain.main(ZooKeeperMain.java:282)
 at org.apache.hadoop.hbase.zookeeper.ZooKeeperMainServer.main(ZooKeeperMainServer.java:108)

JLine support is disabled

找到hbase conf下的hbase文件315行下添加紅色的classpath:

elif [ "$COMMAND" = "zkcli" ] ; then
class="org.apache.hadoop.hbase.zookeeper.ZooKeeperMainServer"
CLASSPATH=`echo $CLASSPATH | sed 's/jruby-cloudera-1\.0\.0\.jar//g'`

之后重啟hbase偽分布環境,之后再次進入zk的客戶端不報錯了,正常進入:

重新進入 zk界面

找到了這些表

rmr /hbase/table/SYSTEM.CATALOG

  rmr /hbase/table/SYSTEM.SEQUENCE

  rmr /hbase/table/SYSTEM.STATS

  rmr /hbase/table/SYSTEM.FUNCTION

  方法3:/bin/hbase clean --cleanAll

   在執行上述命令之前:先關閉hbase(包括HMaster和regionServer)

3.重新啟動hbase

4.通過 ./sqlline.py 進入phoenix,系統會自動創建Phoenix的系統表


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM