一、出問題的原因
昨天因為項目需要,要將cloudera集群改成高可用,沒想到失敗了,當時因為沖動手動刪了幾個hdfs實例的原因,導致退不到原來的狀態,折騰了一天,最后終於退回了非HA的集群,但是hdfs里面的資料已經沒了(還好是測試集群,不然死定了)。后面其他工具陸續搞到可以使用的狀態,偏偏kylin又報錯了。
二、具體報錯和解決
1. 具體報錯
Exception in thread "main" java.lang.IllegalArgumentException: Failed to find metadata store by url: kylin_metadata@hbase …… Caused by: java.lang.reflect.InvocationTargetException …… Caused by: org.apache.hadoop.hbase.TableExistsException: kylin_metadata …… Caused by: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.hbase.TableExistsException): kylin_metadata …… 2019-05-17 15:26:59,219 INFO [close-hbase-conn] hbase.HBaseConnection:136 : Closing HBase connections... 2019-05-17 15:26:59,219 INFO [close-hbase-conn] client.ConnectionManager$HConnectionImplementation:2272 : Closing master protocol: MasterService 2019-05-17 15:26:59,221 INFO [close-hbase-conn] client.ConnectionManager$HConnectionImplementation:1843 : Closing zookeeper sessionid=0x36ac094c98408cd 2019-05-17 15:26:59,226 INFO [Thread-7] zookeeper.ZooKeeper:684 : Session: 0x26ac094caf208b9 closed 2019-05-17 15:26:59,226 INFO [main-EventThread] zookeeper.ClientCnxn:512 : EventThread shut down 2019-05-17 15:26:59,234 INFO [main-EventThread] zookeeper.ClientCnxn:512 : EventThread shut down 2019-05-17 15:26:59,234 INFO [close-hbase-conn] zookeeper.ZooKeeper:684 : Session: 0x36ac094c98408cd closed ERROR: Unknown error. Please check full log.
關鍵報錯信息有兩條:
Caused by: org.apache.hadoop.hbase.TableExistsException: kylin_metadata
Caused by: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.hbase.TableExistsException): kylin_metadata
應該是之前遺留的kylin元數據沖突了,所以需要找到相應的數據並刪除。
注意:接下來的操作可能會刪除你kylin中原有的所有模型和cube數據,請謹慎操作。
2. 解決辦法
連接zookeeper客戶端,具體方法可以參考:ZooKeeper客戶端 zkCli.sh 節點的增刪改查。
連接上去后,刪除兩個表:
rmr /kylin/kylin_metadata
rmr /hbase/table/kylin_metadata
重啟kylin。
三、參考
1. Failed to find metadata store by url: kylin_metadata@hbase
2. Kylin啟動報錯:Failed to find metadata store by url: kylin_metadata@hbase
3. ZooKeeper客戶端 zkCli.sh 節點的增刪改查
(完)
