开源大数据开发平台DataSphereStudioLinkis踩坑记录
Linkis:https://github.com/WeBankFinTech/Linkis
DataSphereStudio:https://github.com/WeBankFinTech/DataSphereStudio
编译部署常见问题:https://github.com/WeBankFinTech/Linkis/wiki/%E9%83%A8%E7%BD%B2%E5%92%8C%E7%BC%96%E8%AF%91%E9%97%AE%E9%A2%98%E6%80%BB%E7%BB%93
DSS常见问题列表:https://github.com/WeBankFinTech/DataSphereStudio/blob/master/docs/zh_CN/ch1/DSS%E5%AE%89%E8%A3%85%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98%E5%88%97%E8%A1%A8.md
用户登录认证方式:
https://mp.weixin.qq.com/s/OB3H0xnWIZ9-mTy9FI3UkA
LDAP参考文档:
https://www.sohu.com/a/284300312_283613
安装方式:
https://github.com/WeBankFinTech/DataSphereStudio/blob/master/docs/zh_CN/ch2/DSS_LINKIS_Quick_Install.md
DataSphereStudio(DSS)是微众银行开源的一站式大数据开发平台,开源于19年7月左右,目前市面上只发现这一个产品。基于公司需求,我们调研后发现基本满足现有的需求,于是安装。安装过程踩了些坑,在这里记录分享下。
环境:
centOS7
原生集群
DSS 0.7.0
Linkis 0.9.3
1.spark任务请求资源报错,版本不兼容,如下:
ERROR DWCException{errCode=20010, desc='NoSuchMethodError: org.apache.hadoop.io.retry.RetryPolicies.retryOtherThanRemoteException(Lorg/apache/hadoop/io/retry/RetryPolicy;Ljava/util/Map;)Lorg/apache/hadoop/io/retry/RetryPolicy;', ip='nl-dss2', port=9106, serviceKind='sparkEntrance'
微众使用的hadoop版本是2.7.2,spark使用的是2.4.3,spark内hadoop的相关的包是2.7.3版本,在安装成功后请求spark资源的时候会报错,将linkis-ujes-spark-enginemanager下原有的hadoop移出,把spark jars下面的对应的hadoop包复制到linkis-ujes-spark-enginemanager的lib下,就可以了
2.分布式安装的时候报错(获取Yarn队列信息异常)需要你的hadoop集群互相免密
先排查下访问yarn的web接口是否有问题,可以把yarn的web地址直接配成wds.linkis.yarn.rm.web.address属性,在RM的linkis.properties里
分布式安装时distribution.sh不要有默认的127.0.0.1,全都写成真实的ip或者主机名,安装后最好检查下每个任务的application.yml,里面的defaultZone可能有错。分布式安装后,其他台的机器我还需要自己启动,start-all.sh无法启动其他机器上的服务,希望这点后面版本能够改进。
3.新增用户后,查看不了元数据
我是开启了hive权限,grant all on database default to user test 后好了。
4.visualis显示没有权限查看:暂未解决
5.总资源数会变动,本来有48G内存,用到24G的时候显示100%使用
解决办法:我们一开始用的Capacity Scheduler,后来换成Fair Scheduler就好了
6.启动一次spark任务,结果启动了两个引擎,还在检查,可能是同时请求的并发数太多了,等待时间过了,导致重新请求,结果起了两个:原因是代码中判断逻辑不对,singleEngineSelecotr中将spark-submit提交成功视为成功,之后就进行加锁,但是engine可能启动的比较慢,导致不能及时注册到eureka中,加锁的时候在eureka中找不到该engine将视为启动失败,触发了重试机制,导致最后显示两个引擎。
解决办法:
在SingleEngineSelector的lockEngine方法中,info(s"try to ask a lock for $engine.")下面添加代码:
val instance: ServiceInstance = engine.getModuleInstance
Utils.waitUntil(() => {// 追加判断engine是否已到eureka注册的判断try {serverLoader.getOrRefreshServiceInstance(instance)true} catch {case _ => {false}}
}, ENGINE_CREATE_MAX_WAIT_TIME.getValue.toDuration, 1000, 5000)
7.hive执行计算的时候报错:
The ownership on the staging directory /tmp/hadoop-yarn/staging/test4/.staging is not as expected. It is owned by root. The directory must be owned by the submitter test4 or by test4
权限问题,需要把新建用户放到supergroup里,工作流删除重建就可以了,不然还会报这个错:
8.更新到DSS0.8.0后,使用ldap上的账号建工作流时报错:
解决办法:新增用户需要在dss-serve/conf下的token.properties和azkaban/conf下的azkaban-users.xml增加相关用户信息
9.我们测试20个人的时候报错,因为可能因为我们只用了一台256G服务器搭了DSS:
原因:总资源数受限
解决办法:在EM配置文件linkis.properties修改参数
结果报了另一个错:
原因:当在同一台机器上提交多个spark任务时 并且是以client的方式提交,会报端口占用错误,spark.port.maxRetries太低
修改spark/conf下的spark-defaults.conf,添加或者修改spark.port.maxRetries 128就可以了
10.yarn资源有两百多G,却只能启动31个spark任务
原因:每个spark driver需要至少1核,我们用的32核机器单台部署,所以受到限制
解决办法:分布式部署DSS,多起一份spark服务,两台64核的可以跑50多个任务没问题。
11.shellEngineManager启动报错
java.lang.VerifyError: Stack map does not match the one at exception
将shellEM lib下的jackson-core-2.4.3.jar移除就可以了
12.执行azkaban调度任务的时候报错:
日志显示:
网友提示:
参考
https://github.com/WeBankFinTech/DataSphereStudio/blob/master/docs/zh_CN/ch2/Azkaban_LinkisJobType_Deployment_Manual.md
即可解决
13.安装schedulis代替azkaban后发布任务失败
目前官网上的云盘里提供的是0.7.0版本,需要找管理员拿到自己DSS版本对应的jar包或者从
链接: https://pan.baidu.com/s/1c0kaTRS5uV2_CFMjWxlUgg 提取码: 3n9c
下载,之后放入/dss-appjoints/schedulis/lib/ ,重启dss-server即可,具体操作在官方文档里有介绍:
https://github.com/WeBankFinTech/DataSphereStudio/wiki/FAQ_for_Usage
另外,之前发布过的任务,需要自己在schedulis里面建对应的项目名,否则也会创建失败。1.0之后会修复这个问题。
-----------使用HDP部署集群
HDP版本2.6.5
遇到的问题:
1.查看队列管理器报错
解决方法:
YarnUtils里第136行的报错那里,有两个JDecimal,需要改成JDouble,重新打包上传替换,重启linkis-resourcemanager
开源大数据开发平台DataSphereStudioLinkis踩坑记录相关推荐
- 贝壳一站式大数据开发平台实践
分享嘉宾:仰宗强 编辑整理:刘春龙 出品平台:DataFunTalk 导读:本次分享嘉宾是来自贝壳大数据部门的仰宗强,详细介绍了针对贝壳的业务数据与需求的增长,逐步升级数据开发平台的探索实践过程,包括 ...
- 集成开发环境-大数据开发平台的门户
什么是集成开发环境 这一篇,来谈一下大数据开发平台的门面,集成开发环境.什么是集成开发环境?顾名思义,就是IDE,哪个码农不知道IDE的,有胆你站出来! 不过IDE这个词也太普通了,在那些大厂玩大数据 ...
- 大数据开发平台-数据同步服务
什么是数据同步服务?顾名思义,就是在不同的系统之间同步数据.根据具体业务目的和应用场景的不同,各种数据同步服务框架的功能侧重点往往不尽相同,因而大家也会用各种大同小异的名称来称呼这类服务,比如数据传输 ...
- 从 Airflow 到 Apache DolphinScheduler,有赞大数据开发平台的调度系统演进
点击上方 蓝字关注我们 作者 | 宋哲琦 ✎ 编 者 按 在不久前的 Apache DolphinScheduler Meetup 2021 上,有赞大数据开发平台负责人 宋哲琦 带来了平台调度系统 ...
- 每日7千次的跨部门任务调度,有赞怎么设计大数据开发平台?
随着公司规模的增长,对大数据的离线应用开发的需求越来越多,这些需求包括但不限于离线数据同步(MySQL/Hive/Hbase/Elastic Search 等之间的离线同步).离线计算(Hive/Ma ...
- 从0到1介绍一下开源大数据服务平台dataService
1.背景&现状 在大数据领域也已经工作了多年,无论所待过的大公司还是小公司,统计出来的数据经常需要查询展示,比如说:用做大屏或者报表或者给一些线上服务提供数据源,经常会要用代码写一套接口服务, ...
- 《微店大数据开发平台架构演进》阅读有感
<微店大数据开发平台架构演进>阅读有感 一.为什么需要大数据开发平台 微店在16年4月份之前,数据开发流程基本是这样的: 开发人员通过公共账号登录安装了Hive.Hadoop客户端的gat ...
- 《微店大数据开发平台架构演进》读后感
<微店大数据开发平台架构演进>读后感 <微店大数据开发平台架构演进>这篇文章向我们介绍了八个问题,其中对Mars大数据平台构成.Mars系统架构设计.分布式系统架构.定时.依赖 ...
- 微店大数据开发平台架构演进 1
<论语·卫灵公>有云:"工欲善其事,必先利其器." 意欲警示世人:要做好一件事,准备工作非常重要.简单来说,与其着急忙慌的开始做一件事,不如沉下心来仔细思考下如何做这件 ...
最新文章
- mac node版本管理
- Android 4.1最终版SDK和ADT Plugin全线发布
- 关于WS_CLIPCHILDREN和WS_CLIPSIBLINGS的理解
- activiti前端画图转化_记Activiti入门使用-2 流程绘制、导入及开始一个流程
- 苹果cms对接影视小程序源码完整源码
- 【什么是数据隐私?安全与隐私的区别?】差分隐私代码实现系列(一)
- centos7全盘备份到本地_CentOS7 系统盘迁移案例【大硬盘迁移到小硬盘,新思路】...
- webpack转内联px为rem_Vuejs项目配置webpack将px自动转化为rem,适配移动端
- 在JavaScript中操作Cookie
- 27. 二叉搜索树与双向链表(C++版本)
- 大型论坛系统环境搭建(20万日IP负载平衡实战)–Nginx+Apache2+PHP+MySQL
- python设计报告的前言怎么写_前 言_Python语言程序设计_红黑联盟读书频道
- 第二工业大学计算机应用大专录取分,2016年上海第二工业大学专科层次依法自主招生各专业分数线...
- 无线网络经常掉线的12种情况
- 2021年韩国经济发展研究报告
- 机器学习笔试面试题目 二
- linux系统怎么制作win10,win10 + linux 制作双系统教程(我本身是win10系统)
- android时间控制器,android UiAutomator长按实现控制按住控件时间的方法
- 如何防御黑客的社工?
- Vue之小目标列表实现