一、出问题的原因
昨天因为项目需要,要将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 节点的增删改查
(完)