【实践经验】incubator-linkis1.1.3_cdh5.12.1后台代码编译(linkis1.2.0,编译也能通过,请注意后面的补充) #2920
Yiutto
started this conversation in
Solicit Articles(征文)
Replies: 2 comments
-
求把 【实践经验】 放在标题的最前方~~ |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
@Yiutto
背景
由于公司大数据集群都是作了堡垒机相关隔离,有的时候开发人员很难去测试一下环境,而且直连服务器去做测试也是不现实,很容易造成安全隐患。这时候就需要一个一站式平台开发环境,集成spark,python,shell,sqoop,flink,hive,impala等。本身我们内部用的是CDH集成的hadoop组件,用cloudera manager来管理,自身也可以通过hue去集成一些查询。但总的来讲hue只能集成jdbc相关查询,而且权限不能和hue自身账号作捆绑,而且需要配合livy等。
由于之前安装过webank的shedulis,一直有关注其相关附属产品,后看到linkis作为计算中间件,Linkis 提供了强大的连通、复用、编排、扩展和治理管控能力。通过计算中间件将应用层和引擎层解耦,简化了复杂的网络调用关系,降低了整体复杂度,同时节约了整体开发和维护成本。
故此,将其考虑测试并应用,下面是编译的一些记录,方便后期版本迭代和维护。
安装maven3.8.6配置settings和添加pom的repositories
修改settings.xml
添加incubator-linkis/pom.xml的repositories
修改hadoop、hive、spark等版本
修改外置pom.xml
修改cdh相关组件版本
外置的pom.xml添加镜像源,
==源代码中对于hive引擎由于版本中带有“-”,与linkis引擎路径解析关键字冲突需要进行调整,以hive为例,linkis的引擎目录中不能包含- 所有编译的dist包目录 调整为1.1.0_cdh5.12.1==
hadoop版本修改
hive版本修改
sqoop版本
不做修改
==备注:后面发现(改成1.4.6—cdh1.12.1)编译不通过==
flink版本
因为flink不是原生的cdh版本,故 相关out路径不需要修改
python版本
spark版本
编译
第一次编译【下载release包】
linkis apache官网和GitHub release包都下载过
==开始编译。。。。。。。。。。。。。==
上图用的是scala2.11 maven3.5.1,linkis用的是release1.1.3编译,结果报错,估计maven,scala版本问题,我环境装了scala,后来我环境不配scala。
第二次编译 【GitHub下载源码】
继续编译,还是按前面去修改自己的版本。
第三次编译【手动添加jar和pom】
回顾上面内容,这次看好像编译走的挺远的了,结果还是报错,慢慢来吧
应该是修改了hadoop版本【版本降低了】,缺少eigenbase:eigenbase-properties:jar:1.1.4,手动下载吧。
https://github.com/julianhyde/eigenbase-properties/releases
需要从github上面下载源码然后编译
https://mvnrepository.com/artifact/eigenbase/eigenbase-properties/1.1.4
网上都是方法,这里是我打包编译好的jar包和pom文件
链接: https://pan.baidu.com/s/1EmwnU7JbEql54r-1XZHVuQ 提取码: 7s06
把下载好的放到对应的maven的仓库
MAVEN_HOME/repository/eigenbase/eigenbase-properties/1.1.4/下,把别的文件都删了
使用maven命令安装就成,这一步你可以省略放置好包了,又开始编译
第四次编译【注释hive相关java代码】
回顾上次编译的问题,群里面说要把其注释掉,说是hive版本太低(我的是1.1.0-cdh-5.12.1)
incubator-linkis\linkis-engineconn-plugins\hive\src\main\java\org\apache\linkis\engineplugin\hive\serde\CustomerDelimitedJSONSerDe.java
估计是低版本hive不支持该类型,
我先去单个模板编译试试,你可以省略感觉要成功了,结果。。
第五次编译【注释hadoop200】
报了个没有hadoop200的sqoop包,什么鬼,我的是cdh, 先把其注释一下,
单独编译试试先
incubator-linkis\linkis-engineconn-plugins\sqoop>mvn clean install
第六次编译【手动添加jar和pom】
回顾上图,应该是缺包了,手动下载
https://public.nexus.pentaho.org/#browse/search=keyword=pentaho-aggdesigner-algorithm:bc8f284515cd2a36472ef54643f45905
放置好
.m2\repository\org\pentaho\pentaho-aggdesigner-algorithm\5.1.5-jhyde
,重新编译。。。结果
第七次编译【sqoop版本回滚,不做修改,不用cdh版本】
报了这个错,估计是sqoop.scala代码和sqoop版本有关,不支持sqoop-1.4.6-cdh-5.12.1,算了还是弄原来的sqoop吧。
。。。。
你ma,终于编译过了。
安装包
小结
来个小结吧,
感谢微众的casion和群里的闪电先生
**【补充】【有点重要,请关注】
上述编译能通过,但是spark-sql不能利用linkis。后面根据社区朋友的指示,说spark-cdh兼容linkis有问题,运行会遇到jetty问题。为此,建议大家还是用原生的Apache spark2.4.3进行编译。 后期在cdh上自行安装一个客户端。 本人后来亲试了linkis1.2.0,修改了hive-1.1.0_cdh5.12.1,spark还是用2.4.3(没有用cdh版本)。
spark下载地址:
http://archive.apache.org/dist/spark/spark-2.4.3/spark-2.4.3-bin-hadoop2.6.tgz
/opt/spark-2.4.3-bin-hadoop2.6/conf 里面 spark-evn.sh内容置空
把hive-site.xml添加至conf
在/etc/hive/conf里面复制进去
把yarn-site.xml添加至conf
这里面有个尴尬的事情,就是之前的机器没有添加到yarn集群,导致提交spark-sql一直等待。
后来从其他机器里面/etc/hadoop/conf/yarn-site.xml拷贝进去。
log4j冲突
将linkis的engine的jar删掉 lib/linkis-engineconn-plugins/spark/dist/v2.4.3/lib/log4j-slf4j-impl-2.17.2.jar.bak
配置环境变量
参考
https://juejin.cn/post/7046671711999098916
https://juejin.cn/post/7047407883322916872
#2652
https://mp.weixin.qq.com/s/__QxC1NoLQFwme1yljy-Nw
https://blog.csdn.net/Li_FreshFish/article/details/121034072
Beta Was this translation helpful? Give feedback.
All reactions