目录
Kylin元数据简介
Kylin以一种层次文件系统来组织其所有的元数据,这些元数据包括立方体描述(cube descriptions),立方体实例(instances),工程(projects),倒排索引描述 (inverted index description) 与实例 (instances),作业(jobs),表(tables)和字典 (dictionaries)。Kylin并没有采用常规文件系统来存储其元数据,而是采用HBase进行存储。可以通过Kylin配置文件(kylin.properties)查看如下配置信息:
## The metadata store in hbase kylin.metadata.url=kylin_metadata@hbase
Kylin元数据被存储在HBase中一张名为kylin_metadata的表中,可以通过HBase Shell进行查看。
Kylin元数据备份
有时候需要将Kylin的元数据从HBase备份到磁盘文件系统中,如果Kylin使用Hadoop Cli部署,可以进入KYLIN_HOME下运行:
./bin/metastore.sh backup
将元数据从HBase中导出到KYLIN_HOME/metadata_backups/下以当前年月日时分秒命名的文件夹中,备份文件夹的具体格式为:
KYLIN_HOME/meta_backups/meta_year_month_day_hour_minute_second
Kylin元数据恢复
如果Kylin元数据出现损坏,可以从先前备份中进行恢复。进行恢复前需要重置Kylin元数据存储(注意:本操作将会清空HBase中当前Kylin实例下所有的元数据信息,进行操作前请确保已经存在元数据备份):
./bin/metastore.sh reset
然后上传、恢复Kylin元数据到当前实例在HBase中所对应的HTable:
./bin/metastore.sh restore $KYLIN_HOME/meta_backups/meta_2018_01_02_16_10_10/
开发环境下Kylin Metadata Store的备份和恢复
Kylin的开发/调试工作通常在安装有IDE和后端沙箱的开发机上进行,开发人员会直接在开发机上编写代码并运行测试用例。沙箱中经常性地载入二进制包来检查元数据使得开发/测试工作变得较为繁琐。为了提升效率,Kylin提供了一个SandboxMetastoreCLI助手类来帮助开发人员在开发机器上下载/上传元数据,使用详情请参考:
org.apache.kylin.storage.hbase.steps#SandboxMetastoreCLI.java
清理Kylin Metadata Store中未使用的资源
随着时间的推移,一些像字典、表格快照等这样的资源会变得无用(例如cube segment被删除或者发生合并时),但是他们仍然占用HBase的存储空间,可以通过运行相关命令从Metadata Store中查找并进行清除。首先运行
./bin/metastore.sh clean
进行查找(此操作是安全的并不会引起Meta Store中任何数据的改变),脚本运行完毕后无用资源会被列出,通过添加”–delete true”参数来进行最终清理:
./bin/metastore.sh clean --delete true
转载请注明:雪后西塘 » Kylin元数据管理