Apache Kylin : Analytical Data Warehouse for Big Data
Page History
参考 issue:
Jira
server ASF JIRA serverId 5aa69414-a9e9-3523-82ec-879b028fb15b key KYLIN-5069
目前,kylin4.0 中仍然需要通过 hiveClient 去获取 hive meta 信息来 load hive table,通过用户反馈发现,load hive table 时经常会出现类冲突问题。
此外,由于 kylin 会加载 hadoop 类加载路径下的所有类到环境中,同样会导致一些不必要的 jar 包冲突问题。
为了解决此类问题,我们计划从 kylin4.0 中去除 hive dependency,使用 SparkSession 来获取 hive meta 信息。并且整理hadoop classpath,只加载 kylin4.0 真正需要的 hadoop 相关 jar 包到 kylin4.0 环境中。
需要做的事情如下:
1. 从 kylin 启动脚本 kylin.sh 中去除加载 hive dependency 的过程;
2. 为避免 kylin 启动脚本 kylin.sh 中将 hadoop lib 目录下的所有 jar 包都加入 classpath,对 hadoop lib 下的 jar 包做整理和筛选,并将需要的 jar 包 copy 到 $SPARK_HOME/jars 目录下(仅当 $SPARK_HOME 路径为 $KYLIN_HOME/spark 时);
2. 继承 IHiveClient 接口实现 SparkHiveClient 类,使用 SparkSession 实现其中的方法;
3. 将 Kylin 4.0 中使用到原有 CLIHiveCLient/BeelineHiveClient 类的地方均替换为使用 SparkHiveClient 类;
5. 清理相关无用代码。
代码完成后,在 kylin4 支持的各个环境中进行兼容性测试,主要测试构建、查询和 load hive table。最终在以下环境通过测试:
Hadoop Distribution | Spark | Hadoop | Hive | Cluster Manager | Distributed Filesystem | Verified ? | Comment |
---|---|---|---|---|---|---|---|
CDH 5.7 | 2.4.7/3.1.1 | 2.6.0-cdh5.7.6 | 1.1.0-cdh5.7.6 | YARN | HDFS |
| 无需额外步骤 |
HDP 2.4 | 2.4.7 | 2.7.1.2.4.0.0-16 | 1.2.1000.2.4.0.0-16 | YARN | HDFS |
| 无需额外步骤 |
AWS EMR 5.33.0 | 2.4.7/3.1.1 | 2.10.1-amzn-1 | Hive 2.3.7-amzn-4 | YARN | HDFS/S3 |
| 无需额外步骤 |
CDH 6.2.0 | 2.4.7/3.1.1 | 3.0.0-cdh6.2.0 | 2.1.1-cdh6.2.0 | YARN | HDFS |
| 需要准备jar包放在指定目录:Deploy Kylin 4 on CDH 6 |
AWS EMR 6.3.0 | 3.1.1 | 3.2.1-amzn-3 | 3.1.2-amzn-4 | YARN | HDFS/S3 |
| 无需额外步骤 |
Apache | 3.1.1 | 3.2.0 | 2.3.9 | YARN, Standalone | S3 |
| http://kylin.apache.org/docs40/install/deploy_without_hadoop.html |