文章目录
题外话
kylin编译过程真的是太苦涩了,塌了无数坑,耗时无数。大概因为我是第一次编译源码。真的是感受深刻,学习颇多。最后还把HBASE编译了一遍,如果你的kylin安装好了运行不报错,就是打开网页报404错误,大概率是HBASE出了问题。我绕了一大圈最后发现是HBASE的问题。
kylin运行环境
hadoop 3.1.3
hive 3.1.2
HBASE 2.2.4
zookeeper 3.5.7
kylin 编译过程
1.去kylin GitHub上下载分支kylin-3.0.x-hadoop3.1源码
下载地址:https://github.com/apache/kylin
2.导入idea修改pom.xml
<guava.version>27.0-jre</guava.version>
原生版本是14.0,直接在centos7 编译后运行会报错,要改成和hadoop3.1.13中的guava版本一致。其他不用改。maven下载包 又花了超多时间。真的是难受哇。
3.修改于guava相关框架一些的方法
由于guava 27.0 版本与14版本相差太多,老版本的一些方法用不了。这个过程也可真是要命。尚硅谷的老师有说过,但是一笔带过了。要去对照两个版本修改源码,新版本的有些方法被private了,老版本还在使用。最难受的是新版本里面没有与之替换的新方法。改了好几天老是改不对,要了老命了。后面参考kylin最新版本,水到渠成。因为kylin最新版本里面Test采用了guava 28.0 版本。
idea报错代码改动
Objects.toStringHelper →MoreObjects.toStringHelper
putString →putUnencodedChars
new Stopwatch() →Stopwatch.createUnstarted()
elapsedMillis() →elapsed(TimeUnit.MILLISECONDS)
Iterators.emptyIterator() →Collections.emptyIterator()
toImmutableSet() →toSet();
hashString →hashUnencodedChars
至此 所有错误改完了。
4.kylin build in centos7
参考链接:http://kylin.apache.org/cn/development/howto_package.html
编译环境安装参考:
https://blog.csdn.net/weixin_42536586/article/details/108446512
特别注意要设置代理(需要网络环境能上谷歌),不然bower 环节会出错,即
export http_proxy=http://your-proxy-host:port
npm config set proxy http://your-proxy-host:port
如果遇到maven checkstyle的错误,编译的时候设置-Dcheckstyle.skip=true跳过。
编译完成后会出现一个dist的文件夹,安装包在里面。