zoukankan      html  css  js  c++  java
  • 以yarn-client方式提交spark任务,任务一直卡在ACCEPTED状态

    问题背景

    spark是以客户端的方式安装的,并没有启动spark的mesos集群,这时候的spark就相当与hive客户端。
    以local模型和yarn-cluster方式提交任务,都能正确额执行,但是一yarn-client方式就卡在ACCEPTED
    

    问题原因

    在网上查了资料,都说是资源不够用,需要调整yarn.scheduler.capacity.maximum-am-resource-percent从0.1改成0.5,但是我测试数据才几k,集群内存128G,所以我直接排除了这个原因
    后来想到,只有yarn-client方式失败,那问题应该出来driver端。就查看了一下服务器的/etc/hosts,发现diver上有集群其他节点的IP等信息,但是其他节点没有driver配置信息
    导致driver能访问到集群,但是集群其他节点访问不了driver
    所以local模式可以执行
    yarn-cluster上可以执行,是因为客户端只要把任务提交到yarn上,客户端就没有用了。
    但是yarn-client方式,客户端是充当了driver,driver需要一直和集群有通信,所以接收不到resouceManager的反馈。任务就一直卡住了
    

    解决办法:

    有两个方法:
        1、在命令后面加上一个--conf spark.driver.host=$your_ip_address,后面直接填客户端机器的IP地址就行
    
    spark-submit  
           --master yarn 
           --deploy-mode client 
           --num-executors 2 
           --executor-memory 1G 
           --executor-cores 1 
           --conf spark.driver.host=192.168.72.129
            dmp_broadcast_data_day.py
    
        2、在集群其他节点上都把driver服务器的IP加上去。
  • 相关阅读:
    Prometheus+mysql+grafana
    Ant+JMeter+Jenkins接口自动化平台搭建
    MySQL配置文件my.cnf的解析
    jmeter上传图片接口+下载文件接口
    python 正则表达式
    Python接口自动化基础---cookie绕过登录
    Python接口自动化基础---token鉴权
    Python接口自动化基础---session关联接口
    Python接口自动化基础---post请求
    Python接口自动化基础---get请求
  • 原文地址:https://www.cnblogs.com/goldenSky/p/11178873.html
Copyright © 2011-2022 走看看