zoukankan      html  css  js  c++  java
  • IDEA执行spark程序报集群资源错误

    问题描述:

    使用IDEA在windows端执行spark程序提交任务到集群,一直不结束,并报如下警告

    WARN TaskSchedulerImpl: Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and have sufficient resources

    解决办法:

    此时程序会一直loading,running,loading,running…的循环,并持续出现上面的警告。

    出现这个错误可能有几种原因:

    1)host配置不正确

    2)worker内存不足

    3)相关端口号被占用

    针对第(2)种原因,通过修改配置文件中worker和master使用内存资源的参数即可解决。

    针对第(3)种原因,可以查看占用端口的程序并将其关闭,或者重启spark集群。

     

    web控制台查看具体任务相关的executor的stderr,发现有Name or service not known错误。原因是本机使用了windows默认的名字(一个WINDOWS-XXXXX类似格式的名字),spark worker节点不能识别提交任务的windows节点,因而不能进行交互。而通常提交完任务后提交任务节点上会起一个进程,展示任务进度,默认端口为 4044,工作节点会反馈进度给该该端口,所以如果主机名或者IP在hosts中配置不正确,就会报上面的错误。

     

    解决过程:

    1)worker内存已调整,但不起作用

    2)

    即使把hostname改为对应IP:setMaster("spark://SparkMaster:7077")改成setMaster("spark://192.168.255.136:7077")也会报错,但是报错信息换为:

    15/05/24 22:29:01 ERROR SparkDeploySchedulerBackend: Application has been killed. Reason: All masters are unresponsive! Giving up.

    15/05/24 22:29:01 WARN SparkDeploySchedulerBackend: Application ID is not initialized yet.

    15/05/24 22:29:01 ERROR TaskSchedulerImpl: Exiting due to error from cluster scheduler: All masters are unresponsive! Giving up.

    3)此方法生效了

    在程序中添加driver的IP信息

    set("spark.driver.host","192.168.255.1")

    4)尝试另一种办法,此方法也生效

    1. 修改本机hosts文件,在修改第一行,添加自己的windows机器名,如:

    127.0.0.1   Frank-PC    localhsot

    2.在spark集群的所有节点的hosts中添加本地提交任务的windows节点的ip和hostname,如:

    192.168.255.1   Frank-PC

    或者

    192.168.56.1   Frank-PC

    至于为什么,应该就是和VMware的虚拟网卡之间关系有关了

  • 相关阅读:
    jquery 序列化form表单
    nginx for windows 安装
    nodejs idea 创建项目 (一)
    spring 配置 shiro rememberMe
    idea 2018 解决 双击shift 弹出 search everywhere 搜索框的方法
    redis 在windows 集群
    spring IOC控制反转和DI依赖注入
    redis 的安装
    shiro 通过jdbc连接数据库
    handlebars的用法
  • 原文地址:https://www.cnblogs.com/OS-BigData/p/8527877.html
Copyright © 2011-2022 走看看