【开发经验】Apache linkis +DSS 的编译到部署 #3627
huasir
started this conversation in
Solicit Articles(征文)
Replies: 1 comment
-
如果spark版本为3.2.2,需要修改哪些地方? |
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
-
作者: huasir
email:[email protected]
微信:shanqiumail
背景
随着业务的发展,和社区产品的更新迭代,我们发现 linkis1.2.0和dss1.1.1能够更好的满足我们对实时数仓和机器学习需求。同时相较于我们目前使用的linkis0.9.3和dss0.7.0, 在任务调度方面和插件接入等方面也有很大的结构调整和设计优化。基于以上原因,我们现在需要将现有的版本进行升级,由于版本跨度较大,我们的升级思路是重部署新的版本,并将原有的业务数据进行迁移,如下是具体的实践操作,希望给大家带来参考。
获取源码
如果没有打算提交pr的开放人员,也可以在官方直接下载zip源码包
编译打包
1. 确定版本配套
linkis: 1.2.0
dss: 1.1.0
hadoop: 3.1.1
spark: 2.3.2
hive: 3.1.0
2. linkis1.2.0编译打包
安装包路径:incubator-linkis/linkis-dist/target/apache-linkis-1.2.0-incubating-bin.tar.gz
为了适配我们自己的版本配套,需要调整pom并重新编译
3. links1.2.0管理端打包
安装包路径:incubator-linkis/linkis-web/apache-linkis-1.2.0-incubating-web-bin.tar.gz
4. dss1.1.0编译打包
安装包路径:DataSphereStudio/assembly/target/wedatasphere-dss-1.1.0-dist.tar.gz
5. dss1.1.0前端编译打包
安装包路径:DataSphereStudio/web/dist/
部署安装
环境说明
说明:总共5台机器,大数据基础环境都已安装,hadoop,hive,spark等
先在app机器安装新版本links1.2.0, dss1.1.0.保留原有的linkis版本可用,待新的部署好以后,再对老版本的的数据进行迁移
归集安装包
安装mysql
安装linkis
关键参数配置
安全保险执行一下chekcEnv.sh
因为我本地使用的docker安装的mysql,所以需要额外安装一个mysql客户端
尝试安装linkis
打开ambari的spark2的管理界面添加环境变量并重启spark2的相关服务
终于通过验证
第一次安装,数据库需要初始化,直接选择2
根据官网提示,需要自己下载mysql驱动包并放到对应目录下,我习惯查了一下,发现已经有mysql包了额,应当是之前编译的时候去掉了mysql scope的原因,但是版本不对,我们生产使用的是5.7,但是驱动是mysql8的驱动包。所以大家在编译的时候最好先调整mysql驱动版本。
手动调整一下mysql驱动版本,降原来的高版本注释掉
浏览器打开,http://app:20303/,共10个服务,好像没问题
安装linkis-web
第一次访问http://app:8088/#/login 报错403,经过查证需要修改nginx中conf个的部署用
再次访问,好像正确了额
查看默认的用户名和密码
登录linkis管理台
使用linkis-cli进行快速验证
管理台查看日志信息
我的的hive使用的是tez引擎,需要手动将tez引擎相关的包拷贝到hive插件的lib下
再次跑动,还是没运行起来,好像是缺失jackson的库
再次跑动,还是没运行起来,日志如下:
从日志上看,是yarn的app运行异常,查看yarn的container日志:
日志上看结合百度相关资料,提示是guava的版本问题,首先先确认是否hive引擎中的guava版本和hadoop里的guava版本一致,如果一致
还有一种可能就是hive-exec的版本问题,因为我是用的ambari部署的hive,所以最好用ambari中的hive相关的jar替换掉插件引擎中相关的hive包。遇到的问题是后一种,花了很长时间才排查出。
再次跑动,运行成功,到此,linkis部署好像没有问题了额
安装DSS
说明:DSS因为是另外以为同事安装的,这里我就不再展示,具体可以参考官网的安装,这里我主要说明一下dss和linkis集成时遇到的问题。
如图:
具体gateway中日志如下
大概的意思就是找不到dss,无独有偶,我在dss中的plugin下面发现有一段gaeway parser代码,尝试拷贝到GatewayParser的parse方法的case COMMON_REGEX的前面,再根据编译提示引入需要依赖的方法,变量和包。如图:
顺利登录(记得要重启linkis的mg-geteway服务)。
登录进去后如果发现报错,提示需要管理创建工作目录,可以在linkis-ps-publicservice.properties中配置如下属性,然后重启ps-publicservice服务
未完待续
Beta Was this translation helpful? Give feedback.
All reactions