http://blog.csdn.net/jiangshouzhuang/article/details/51290239
Kylin組織它所有的元數據(包括cube descriptions and instances, projects, inverted index description and instances,jobs, tables and dictionaries)作為一個層次的文件系統。
然而,Kylin使用HBase來進行存儲,而不是普通的文件系統。
我們可以從Kylin的配置文件kylin.properties中查看到:
## The metadata store in hbase
kylin.metadata.url=kylin_metadata@hbase
表示Kylin的元數據被保存在HBase的kylin_metadata表中。
備份Kylin的元數據
./bin/metastore.sh backup
這將備份元數據到本地目錄KYLIN_HOME/metadata_backps下面,目錄的命名格式為:
KYLIN_HOME/meta_backups/meta_year_month_day_hour_minute_second
比如我的Kylin的家目錄為/var/lib/kylin/kylin,那么備份數據的目錄為:
/var/lib/kylin/kylin/meta_backups/meta_2016_05_01_11_50_32
我們來查看一下目錄:
[kylin@SZB-L0023777kylin]$ cd /var/lib/kylin/kylin/meta_backups/meta_2016_05_01_11_50_32
[kylin@SZB-L0023777meta_2016_05_01_11_50_32]$ ll
total 44
drwxrwxr-x 2 kylin kylin 4096 May 1 11:50 cube
drwxrwxr-x 2 kylin kylin 4096 May 1 11:50 cube_desc
drwxrwxr-x 4 kylin kylin 4096 May 1 11:50 cube_statistics
drwxrwxr-x 6 kylin kylin 4096 May 1 11:50 dict
drwxrwxr-x 2 kylin kylin 4096 May 1 11:50 execute
drwxrwxr-x 2 kylin kylin 4096 May 1 11:50 execute_output
drwxrwxr-x 2 kylin kylin 4096 May 1 11:50 model_desc
drwxrwxr-x 2 kylin kylin 4096 May 1 11:50 project
drwxrwxr-x 2 kylin kylin 4096 May 1 11:50 table
drwxrwxr-x 2 kylin kylin 4096 May 1 11:50 table_exd
drwxrwxr-x 5 kylin kylin 4096 May 1 11:50 table_snapshot
恢復元數據
假如你的Kylin元數據掛掉了,那么我們就可以使用之前備份的數據進行恢復:
1. 首先reset當前Kylin的元數據存儲,這將清理掉所有存儲在HBase中的Kylin元數據,確保在此之前做過備份
./bin/metastore.sh reset
2. 接着,上傳備份的元數據到Kylin的元數據中
./bin/metastore.sh restore$KYLIN_HOME/meta_backups/meta_xxxx_xx_xx_xx_xx_xx
從Kylin元數據中清理掉無用的資源
隨着時間的推移,有些資源,比如字典,表的快照等變得無用了(cube的segment被刪除或合並了),但是他們仍然占用空間。可以執行如下命令查找和清理無用的元數據:
1. 首先,執行檢查,這是安全的操作,不會修改任何內容:
./bin/metastore.sh clean
將需要被刪除的資源(resources)羅列出來
2. 接着,在上面的命令中,添加“--delete true”參數,這樣就會清理掉哪些無用的資源。切記,在這個命令操作之前,一定要備份Kylin元數據:
./bin/metastore.sh clean --delete true