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