为什么要升级?
cube构建占用内存过大,任务运行过慢,导致经常内存溢出,kylin挂掉。设置了查询缓存在memcached,但没有解决根本的问题。
为什么考虑升级kylin4?
原本的cube太多了,换其他OLAP数据库太麻烦。相比之下,升级是一个很好的选择(官网有说明内存降低和构建时间更快的原因)。
升级过程
1 确保配置里面不要占用相同路径
需要检查kylin.properties配置文件配置如下(我是在同一集群下升级)
kylin.env.zookeeper-base-path=
kylin.env.hdfs-working-dir=
第一个是zookeeper的路径,不要和旧版本冲突了。
第二个hdfs路径,一定要不一致。
2 备份旧集群的元数据
在旧版的kylin运行备份命令
metastore.sh backup
运行后会有提示,显示备份的文件在哪里。
3 迁移备份文件
将旧的备份文件迁移到新的kylin节点。
我使用的scp命令
scp -r 备份文件夹 用户@机器名:/路径
4 使用kylin4提供的CubeMigrationCLI
在kylin4的机器上执行
./bin/kylin.sh org.apache.kylin.tool.CubeMigrationCLI -srcConfig ${exported_metadata_dir} -dstConfig USERNAME:PASSWORD@HostName:Port -allCubes
执行完成后,最好重新启动。发现元数据迁移成功,但cube需要自己运行。
下面贴一些参数
All supported parameters are listed below:
Option | Has Parameter | Description |
---|---|---|
-copyAcl | false | [Optional] copy ACL |
-dstProject | true | [Optional] cube's new project home(will be created if not exists). If not set, keep the same as cube's original project. With this option, we can migrate a "single cube", "a project" or "all cubes" to a target project. |
-realMigrate | true | [Optional] execute migration, parameter value:
|
-allCubes | false | [Optional] migrate all cubes in source cluster. |
-srcProject | true | [Optional] migrate all cubes under specific project in source cluster, argument value is the project name to migrate. |
-migrateSegment | false | [Optional] migrate segment data |
-cube | true | [Optional] migrate single cube in source cluster, argument value is the cube name to migrate. |
-overwriteIfExists | false | [Optional] overwrite target cluster's metadata if exists |
-purgeAndDisable | false | [Optional] purge source cluster data |
-srcConfig | true | [Required] The KylinConfig of the source cluster with 3 kinds of format: 1. uri e.g. user:pwd@host:port. 2. properties file e.g. /home/kylin/conf/kylin.properties 3. local metadata dir e.g. /home/kylin/meta_backups/meta_2021_04_21_18_29_04 |
-dstConfig | true | [Required] The KylinConfig of the target cluster with 3 kinds of format: 1. uri e.g. user:pwd@host:port. 2. properties file e.g. /home/kylin/conf/kylin.properties 3. local metadata dir e.g. /home/kylin/meta_backups/meta_2021_04_21_18_29_04 |
运行相同任务:kylin3
kylin4
时间由6.5变成了3.8。
并且,服务器内存也没之前高,这里就不截图了。内存占用有明显的降低。
kylin4 只需要资源探测和 cubing 两个步骤,就可以完成构建;
赶快去试试吧。
当然,更新后会遇到了如下问题,请查看: