zoukankan      html  css  js  c++  java
  • Spark集群部署(standLone)模式

     

    安装部署:

    1. 配置spark为1个master,2个slave的独立集群(Standlone)模式,

        可以在VMWare中构建3台运行Ubuntu的机器作为服务器;

        master主机配置如下:

        vim /etc/hostname 编辑此文件,设置主机名为master

        vim /etc/hosts 编辑此文件,添加如下主机内容信息:

        192.168.189.128 master

        192.168.189.129 slave1

        192.168.189.130 slave2

        同理配置slave1,slave2主机。

    2. 下载安装jdk1.8.0_91,并设置好环境变量;

       jdk下载路径:https://download.oracle.com/otn-pub/java/jdk/8u191-b12/2787e4a523244c269598db4e85c51e0c/jdk-8u191-linux-x64.tar.gz

       

       下载安装scala-2.12.2,下载路径:https://downloads.lightbend.com/scala/2.12.8/scala-2.12.8.tgz

       并设置好环境变量(spark是基于scala语言编写的,同时scala又运行于JVM之上),

        如下命令:     

        vim .bashrc 编辑此文件,添加如下内容:   

         export JAVA_HOME=/usr/local/jdk1.8.0_91

         export JAVA_BIN=$JAVA_HOME/bin

         export JAVA_LIB=$JAVA_HOME/lib

         export CLASSPATH=.:$JAVA_LIB/tools.jar:$JAVA_LIB/dt.jar

         export PATH=$JAVA_BIN:$PATH

         export SCALA_BIN=/usr/local/scala-2.12.2/bin

         export PATH=$PATH:$SCALA_BIN

         退出root账户,重新登陆,使环境变量生效。

         master,slave1,slave2三台服务器配置一样。

    3.  安装配置ssh,使得三台主机ssh登录免密码,因为集群里面的主机需要在后台通信。

       (1)安装:

           SSH分客户端openssh-client和openssh-server,如果你只是想登陆别的机器的SSH只需要安装openssh-client(ubuntu有默认安装客户端),如果要使本机开放SSH服务就需要安装openssh-server。

       (2) 配置免密码登陆:

              在master主机上登陆root用户,输入命令:ssh-keygen -t rsa  

               然后根据提示一直按enter,就会按默认的选项生成的密钥对(私钥id_rsa和公钥id_rsa.pub)并保存在/root/.ssh文件夹中;

               将master服务器上的公钥拷贝到slave1上,输入命令:ssh-copy-id root@slave1(root为slave1上的账户)

              将master服务器上的公钥拷贝到slave2上,输入命令:ssh-copy-id root@slave2(root为slave2上的账户)

             可以测试免密码登陆是否成功,输入命令:ssh slave1

            

    4. Spark独立集群中的workers配置   

          在Spark 目录下创建一个文件conf/slaves, 列出所有启动Spark workers的主机名,每行一条记录,如下面master主机的配置:   

          #localhost

          slave1

          slave2

    5. 配置SPARK的JAVA_HOME

          编辑所有主机上的sbin/spark-config文件,添加export JAVA_HOME=/usr/local/jdk1.8.0_91

     6. 配置整个集群的环境变量(可选) 

        通过conf/spark-env.sh进一步配置整个集群的环境变量,如下变量,这里先用默认的值 。

    变量

    描述

    SPARK_MASTER_IP

    绑定一个外部IP给master.

    SPARK_MASTER_PORT

    从另外一个端口启动master(默认: 7077)

    SPARK_MASTER_WEBUI_PORT

    Master的web UI端口 (默认: 8080)

    SPARK_WORKER_PORT

    启动Spark worker 的专用端口(默认:随机)

    SPARK_WORKER_DIR

    伸缩空间和日志输入的目录路径(默认: SPARK_HOME/work);

    SPARK_WORKER_CORES

    作业可用的CPU内核数量(默认: 所有可用的);

    SPARK_WORKER_MEMORY

    作业可使用的内存容量,默认格式1000M或者 2G (默认:  所有RAM去掉给操作系统用的1 GB);注意:每个作业自己的内存空间由SPARK_MEM决定。

    SPARK_WORKER_WEBUI_PORT

    worker 的web UI 启动端口(默认: 8081)

    SPARK_WORKER_INSTANCES

    每台机器上运行worker数量 (默认: 1). 当你有一个非常强大的计算机的时候和需要多个Spark worker进程的时候你可以修改这个默认值大于1 . 如果你设置了这个值。要确保SPARK_WORKER_CORE 明确限制每一个r worker的核心数, 否则每个worker 将尝试使用所有的核心 。

    SPARK_DAEMON_MEMORY

    分配给Spark master和 worker 守护进程的内存空间 (默认: 512m)

    SPARK_DAEMON_JAVA_OPTS

    Spark master 和 worker守护进程的JVM 选项(默认: none)

    7. 启动集群  

       通过命令:sbin/start-all.sh 

       同时启动master以及上面所说文件中指定的slave

    8. 输入http://localhost:8080/看集群是否启动成功

        成功启动后的界面

       

    9. 在web界面上监控集群执行的细节

          需要打开conf/spark-default.conf文件,添加如下内容:   

         spark.eventLog.enabled           true

         spark.eventLog.dir               file:/tmp/spark-events

          注意需要先在/tmp目录下创建文件夹spark-events,因为后面所有应用执行的事件日志会存放在这。

          修改文件夹权限: chmod 777 spark-events , 以便JVM有权创建和读取文件。

          在master主机上启动spark-history-server,执行命令:./sbin/start-history-server.sh

          在浏览器中输入: http://master:18080/  查看应用执行情况,如下图所示:

         

    点击具体某一个application,可以查看具体每一个应用执行的细节

    10. spark执行流程

    11. spark-submit应用程序提交时,master参数配置项可取值

  • 相关阅读:
    μC/OS-II中使用软件定时器
    基于javafx的实训项目实战 —— 猿天气
    郑州轻工业大学软件学院计算机网络期末复习
    软件工程经济学结课报告——兰花智慧大棚监控系统可行性研究报告
    基于javafx实现一个简单的图片查看器
    数据结构之动态数组
    JSP技术
    JavaWeb实现上传下载
    windows下mysql编码问题
    基于socket的即时通信系统的设计与实现
  • 原文地址:https://www.cnblogs.com/guoyuanwei/p/10313593.html
Copyright © 2011-2022 走看看