zoukankan      html  css  js  c++  java
  • 关于spark通过idea提交任务到集群的操作,本地机器和远程的spark集群的网络不同的操作。

    今天在将本地idea当中的代码提交到远程的spark集群的时候,出现了下面的错误

    看到这个错的第一反应就是集群本地和spark的通讯是不是正常的,因为我们通过本地提交任务的时候启动了spark_ui界面这个相当于在本地进行操作的,相当于spark的client。但是真正的执行者又是在集群当中。所以两者之间的

    话的通讯是必须保持畅通的。

    (本地提交到spark集群的代码的运行方式大致是这样的,其实他和submit的运行方式是一样的,只是在本地的idea当中运行了而已,他也是通过加载jar包的形式提交到远程的集群当中大致的代码如下;

     SparkConf conf = new SparkConf().setAppName("programdept").setMaster("spark://10.100.200.11:7077")   --这里是一standlone的模式进行运行的
                    .set("spark.submit.deployMode", "client")  --这设置的以client的方式进行运行的。
                    .set("spark.executor.cores","2")      --这里设置的是spark运行的核心数,但是这里不要操作集群当中的单台机器的核心数。否则就会包内存不足的情况
                    .set("spark.executor.memory","1024M")  --这里设置的单个work上面的内存的分配情况
                  .setJars(new String[]{"E:\datahouse\sparkonstandlone.jar"});  --这个就是能在本地运行的核心所在,这个jar包其实也是可以通过submit的方式进行提交到集群上面进行运行的。这里只是把他设置为参数上传上去而已。

    最后的解决方式如下(这是我自己的解决方法,可以自己的情况而定):

    (1)在Linux服务器上面先ping一下Linux服务器是不是和本地的服务器是否可以ping通。

    (2)然后在本地ping一下本地和远程的机器上面的地址能不能ping的通。

    ---------说到这里,我两边都ping过了,两边都是通的,这里两边都关闭防火墙了。但是测试还是不通的,于是我就想是不是网络两边还是不通啊。

    然后那我将就使用telnet的命令,看远端和本地Windows上面的端口号是不是通的。

    Linux服务器上的telnet命令安装
    yum list telnet* 列出telnet相关的安装包
    yum install telnet-server 安装telnet服务
    yum install telnet.* 安装telnet客户端

    windows上面的直接百度解决。

    然后这里命令都装上我就启动程序,效果如下;

    在这里我们看到两边的地址和端口是不通的。这时候我判断肯定是网路不同的导致,问了一下运维果不其然,所有的端口默认关闭的肯定连不上。端口打开之后,我们在来看效果:

    至此通过window远程提交任务打集群当中,spark的程序正常运行。

  • 相关阅读:
    剑指offer-整数中1出现的次数
    剑指offer-连续子数组的最大和
    剑指offer-最小的k个数
    剑指offer-数组中超过一半的数字
    剑指offer-二叉搜索树与双向链表
    剑指offer-复杂链表的复制
    剑指offer-二叉树中和为某一值的路径
    剑指offer-二叉搜索树的后序遍历
    Alpha 冲刺 (7/10)
    Alpha 冲刺 (6/10)
  • 原文地址:https://www.cnblogs.com/gxgd/p/10116081.html
Copyright © 2011-2022 走看看