当前位置:网站首页>Dolphinscheduler调度spark任务踩坑记录
Dolphinscheduler调度spark任务踩坑记录
2022-04-23 06:03:00 【若小鱼】
1、关于spark调度的worker部署
我在测试Dolphinscheduler时采用的是集群模式,两台机器部署master,两台机器部署worker,而hadoop和spark则是在其他的机器上部署的。在配置dolphinscheduler_env.sh文件时对如何设置spark环境地址就很疑惑。测试调度时果然第一个问题就是找不到spark-submit文件
command: line 5: /bin/spark-submit: No such file or directory
通过日志查看调度过程就会很清楚的看到,DS需要通过dolphinscheduler_env.sh文件里配置的SPARK_HOME1去找spark-submit脚本。而在不同的服务器上它是找不到该路径的。

所以问题的解决我想到两个方案:
1、把spark的安装包拿到worker下,但这又可能涉及到hadoop的yarn等配置。
2、在spark client的部署机器上再部署一个Dolphinscheduler worker,这样只用考虑 DS本身的配置即可。
我最后选择了方案二。
这里除了要把worker节点的安装文件拷贝到spark client的机器上外,还要注意按照安装中的相关步骤:
- 创建和其他节点相同的用户,例如dolphinscheduler
- 将DS安装目录授权给dolphinscheduler用户
- 修改各个节点的的/etc/hosts文件
- 创建免密
- 修改每个DS节点的dolphinscheduler/conf/common.properties文件配置
- 根据配置文件创建相应的目录,并授权,如/tmp/dolphinscheduler目录
- 重新配置该worker节点的dolphinscheduler_env.sh文件,添加SPARK_HOME路径。
- 重启集群。
2、spark-submit执行权限的问题
在任务提交执行的过程中,我的spark测试任务还涉及到对hdfs的操作,所以运行的租户为拥有hdfs权限的bigdata。
运行spark失败,提示:
/opt/soft/spark/bin/spark-submit: Permission denied
开始以为是选择的租户不对,但是想了下bigdata和hadoop部署在一起的,而且bidata用户也有spark权限,显然不是用户的问题。那就应该想到spark-submit是执行权限,所以要赋予用户excute权限。
- chmod 755 spark
3、明明spark任务执行成功,但是DS界面还是显示失败
运行过程中,发现我的spark任务已经把处理后的文件写入HDFS目录,符合我的任务逻辑。查看日志,显示任务是成功的,但是还是有一个error:
[ERROR] 2021-11-15 16:16:26.012 - [taskAppId=TASK-3-43-72]:[418] - yarn applications: application_1636962361310_0001 , query status failed, exception:{
}
java.lang.Exception: yarn application url generation failed
at org.apache.dolphinscheduler.common.utils.HadoopUtils.getApplicationUrl(HadoopUtils.java:208)
at org.apache.dolphinscheduler.common.utils.HadoopUtils.getApplicationStatus(HadoopUtils.java:418)
at org.apache.dolphinscheduler.server.worker.task.AbstractCommandExecutor.isSuccessOfYarnState(AbstractCommandExecutor.java:404)

这个报错可以看到是DS需要去一个yarn的路径下查询application的状态,拿到这个状态后展示执行结果,但是没有拿到,显然我们就要去看他去哪里拿,能不能配置这个地址。
我查看源码,找到HadoopUtils.getApplicationUrl这个方法

appaddress需要获取一个yarn.application.status.address的配置参数


在源码里找到这个默认配置,虽然它说HA模式保留默认值即可,但是注意我的yarn不是安装在ds1上的,所以这里要修改成自己yarn地址。
将该参数配置到调度spark的worker节点 /opt/soft/dolphinscheduler/conf/common.properties文件
# if resourcemanager HA is enabled or not use resourcemanager, please keep the default value; If resourcemanager is single, you only need to replace ds1 to actual resourcemanager hostname
yarn.application.status.address=http://ds1:%s/ws/v1/cluster/apps/%s
版权声明
本文为[若小鱼]所创,转载请带上原文链接,感谢
https://blog.csdn.net/weixin_44162809/article/details/121338375
边栏推荐
- Thanos compact component test summary (processing historical data)
- 阿里矢量库的图标使用教程(在线,下载)
- RAC环境alert日志报错Drop transient type: SYSTP2JW0acnAurDgU1sBqMBryw==的排查
- Oracle RAC数据库实例启动异常问题分析IPC Send timeout
- EMR Based offline data analysis - polite feedback
- Web登录小案例(含验证码登录)
- Ansible basic commands, roles, built-in variables and tests judgment
- How to use DBA_ hist_ active_ sess_ History analysis database history performance problems
- Kubernetes coredns FAQ reference
- Try catch cannot catch asynchronous errors
猜你喜欢

Chaos takes you to the chaos project quickly

Chaos帶你快速上手混沌工程

Thanos compact component test summary (processing historical data)

High performance gateway for interconnection between VPC and IDC based on dpdk

Introduction to DDoS attack / defense

Prometheus cortex Architecture Overview (horizontally scalable, highly available, multi tenant, long-term storage)

ACFS文件系统创建扩大缩小等配置步骤

Redis 详解(基础+数据类型+事务+持久化+发布订阅+主从复制+哨兵+缓存穿透、击穿、雪崩)

Relabel of Prometheus_ Configs and metric_ relabel_ Configs explanation and usage examples

基于ECS搭建云上博客(体验有礼)
随机推荐
阿里矢量库的图标使用教程(在线,下载)
Try catch cannot catch asynchronous errors
重启Oracle监听器会中断已有连接吗
Thanos Compactor组件使用
基于ECS搭建云上博客(体验有礼)
MySQL server standalone deployment manual
[MySQL basics] startup options, system variables and status variables
Introduction to the top 12 domestic databases in 2021
VirtualBox如何修改“网络地址转换(NAT)”网络模式下分配给虚拟机的IP网段
Prometheus Thanos快速指南
How does thanos configure different data retention durations for different tenants
Using Prom label proxy to implement label based multi tenant reading of Prometheus thanos
Introduction to common APIs for EBFP programming
Construire un blog Cloud basé sur ECS (bénédiction sur le Code Cloud Xiaobao, explication détaillée de la tâche iphone13 gratuite)
将博客搬至CSDN
virtio 与vhost_net介绍
基于ECS搭建云上博客(云小宝码上送祝福,免费抽iphone13任务详解)
Prometheus cortex Architecture Overview (horizontally scalable, highly available, multi tenant, long-term storage)
19C环境ORA-01035登陆报错处理
Chaos帶你快速上手混沌工程