spark2.2.0搭建standalone集群环境

        在上一篇文章spark单机安装已经阐述了如何在单台服务器上安装spark本地环境,接下来本文介绍如何通过简单配置将所有安装好spark的服务器以集群方式组织并运行起来,本文将仅介绍spark自带的standalone模式。

1.spark的几种运行模式

主要分为单机模式和集群模式,其中,集群模式支持standalone,Apache Mesos,Hadoop Yarn等模式。standalone模式是spark自己提供的一种最简单的模式,本文主要基于此模式进行阐述。


2.standalone模式启动的两种方式

2.1 手动启动集群

此模式为单个执行sbin/*下的脚本,即单独启动master和slave。

2.2 通过脚本一键启动

根据spark提供的脚本start-all.sh和stop-all.sh一次性完成所有内容的启动和停止。
首先,需要在$SPARK_HOME/conf下添加一个slaves文件,加入所有slave的hostname。本系统只有一个slave,故 只需在master节点的slaves文件中追加slave1。

3.集群启动和最基本配置

除了增加slaves文件外,还需增加spark-env.sh配置文件。将master节点自带的spark-env,sh.template直接改名为spark-env.sh.这时所有配置都是被注释的,不做修改,直接采用默认配置,然后将文件copy到slave1上进行覆盖。ok,配置完毕,开始启动,执行start-all.sh。然后报错了,提示slave1的JAVA_HOME is not set。

嗯,比较诡异的错误,java环境变量master和slave是同样的配置,居然只报slave1没有设置java环境变量。搜了一圈,找到解决问题,直接在spark-env.sh追加export JAVA_HOME=/usr/java/jdk1.8.0_152即可解决。虽然不明白为什么,但先解决问题后面再研究。

       再次启动,ok,没有报错,打开master和worker ui瞅瞅,正常。master ui如下图:

spark2.2.0搭建standalone集群环境_第1张图片

从图上可以看到,master已正常启动,并且slave1上的worker也正常注册进来了。

再看worker的ui,

spark2.2.0搭建standalone集群环境_第2张图片

      worker ui正常显示,此时看到由于没有任务执行,executor列表是空的。

4.小结

本节内容仅完成最简单的standalone集群模式搭建,以及最基本的配置。后续再研究yarn等复杂模式,以及其他各项配置。值得注意的是, master和slave的配置最好是保持一致的,所以可以先在master上完成配置编辑,再直接copy配置到所有slave节点。另外,貌似slaves文件只需在master上创建一份即可,slave上并不需要这个文件



你可能感兴趣的:(spark)