• Spark官方文档——独立集群模式(Standalone Mode)


    除了部署Mesos之上, Spark也支持独立部署模式,包括一个Spark master进程和多个 Spark worker进程.独立部署模式可以运行在单机上作为测试之用,也可以部署在集群上.如果你打算部署在集群上,可以使用我们提供的部署脚本启动一个集群。

    现在开始吧

    使用sbt package对进行编译,可以参考开始指南如果打算部署单独模式,就不需要安装Mesos.

    手动方式启动集群

    通过如下命令启动单独模式master服务:

    ./runspark.deploy.master.Master

    一旦启动,master就会输出spark://IP:PORT以提示连接 workers 的方式。也可以通过参数“master”SparkContext来连接集群的作业.你可以在masterweb管理界面上看到这样的地址,默认是http://localhost:8080

    同样,你可以启动一个或者多个worker,通过下面的语句使之和master建立连接。:

    ./runspark.deploy.worker.Worker spark://IP:PORT

    启动一个worker,查看 master web管理界面 (默认http://localhost:8080),上面列出了新近加入的节点的CPU和内存的信息。(不包括给操作系统预留的内存空间)。

    Finally, the following configuration options can be passed to the masterand worker:

    参数

    含义

    -i IP, --ip IP

    要监听的IP地址或者 DNS 机器名

    -p PORT, --port PORT

    要监听的端口 (默认: master 7077 ;worker随机)

    --webui-port PORT

    web UI端口 (默认: master 8080, worker 8081)

    -c CORES, --cores CORES

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

    只在worker上。

    -m MEM, --memory MEM

    作业可使用的内存容量,默认格式1000M或者 2G (默认:  所有RAM去掉给操作系统用的1 GB); 只在worker上。

    -d DIR, --work-dir DIR

    伸缩空间和日志输入的目录路径

    (默认: SPARK_HOME/work); 只在worker上。

    集群启动脚本

    启动单独模式的集群时,首先在Spark的目录内建立一个配置文件conf/slaves,列出所有worker机器的机器名,每一个占一行。Master必须能够实现无密码的ssh登录worker机器,可以使用ssh locakhost来测试。

    然后,就可以在SPARK_HOME/bin路径下执行shell脚本,以启动或者停止集群。

    l        bin/start-master.sh - Starts amaster instance on the machine the script is executed on.

    l        bin/start-slaves.sh - Starts aslave instance on each machine specified in the conf/slaves file.

    l        bin/start-all.sh - Starts botha master and a number of slaves as described above.

    l        bin/stop-master.sh - Stops themaster that was started via the bin/start-master.sh script.

    l        bin/stop-slaves.sh - Stops theslave instances that were started via bin/start-slaves.sh.

    l        bin/stop-all.sh - Stops boththe master and the slaves as described above.

    注意:只能在运行Sparkmaster主机上执行上述脚本,而不是你的本地机器。

    你可以通过conf/spark-env.sh进一步配置整个集群的环境变量。这个文件可以用conf/spark-env.sh.template当模版复制生成。然后,复制到所有的worker机器上才奏效。下面给出一些可选的参数以及含义:

    环境变量

    含义

    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_DAEMON_MEMORY

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

    SPARK_DAEMON_JAVA_OPTS

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

    提交作业到集群

    运行一个作业在Spark集群上,只需要发送连接masterspark://IP:PORTSparkContext构造器.

    执行下列命令可以在集群上运行一个交互式的Spark shell

    MASTER=spark://IP:PORT./spark-shell

    作业调度

    单独部署模式目前只支持FIFO作业调度策略。不过,为了允许作业的并发执行,可以控制每一个作业可获得资源的最大值。默认情况下,如果系统中只有一个作业,它就会获得所有资源。使用类似System.setProperty("spark.cores.max","10")的语句可以获得内核的数量。这个数值在初始化SparkContext之前必须设置好。

    监控和日志

    Spark单独部署模式提供了一个基于WEB的集群监视器。master和每一个worker都会有一个WEB UI来显示集群的统计信息。默认情况下,可以通过8080端口访问masterWEB UI。当然也可以通过配置文件或者命令来修改这个端口值。

    In addition, detailed log output for each job is also written to the workdirectory of each slave node (SPARK_HOME/work by default). You will see two files for each job, with all output itwrote to its console.

    另外,每个slave节点上作业运行的日志也会详细的记录到默认的SPARK_HOME/work目录下。每个作业会对应两个文件,stdoutstderr,包含了控制台上的所有的历史输出。

    Hadoop同时运行

    作为一个独立的服务,可以和现有的Hadoop集群同时运行。

    通过hdfs:// URLSpark可以访问hadoop集群的HDFS上的数据(比如地址可以写成hdfs://<namenode>:9000/path,Namenodeweb UI可以获得更确切的URL).或者,专门为Spark搭建一个集群,通过网络访问其他HDFS上的数据,这样肯定不如访问本地数据速度快,除非是都在同一个局域网内。(比如几台Spark机器和Hadoop集群在同一机架上)

     
  • 相关阅读:
    HIVE源码(5):HQL 转换为 MR 源码详细解读(4)
    HIVE源码(4):HQL 转换为 MR 源码详细解读(3)HQL 生成 AST(抽象语法树)
    HIVE源码(3):HQL 转换为 MR 源码详细解读(2)
    HIVE源码(2):HQL 转换为 MR 源码详细解读(1)
    HIVE源码(1):HQL 是如何转换为 MR 任务的
    FLINK基础(103): DS算子与窗口(14)多流转换算子(5) Interval Join
    FLINK基础(93): DS算子与窗口(7)单流算子(6) 窗口算子 Window/WindowAll/Window Apply/WindowReduce
    FLINK基础(92): DS算子与窗口(6)单流算子(5)KeyBy(1)
    FLINK基础(85):DS状态机制(11) 总结
    1822. Sign of the Product of an Array
  • 原文地址:https://www.cnblogs.com/vincent-hv/p/3298664.html
Copyright © 2020-2023  润新知