在上一篇文章spark单机安装已经阐述了如何在单台服务器上安装spark本地环境,接下来本文介绍如何通过简单配置将所有安装好spark的服务器以集群方式组织并运行起来,本文将仅介绍spark自带的standalone模式。
1.spark的几种运行模式
主要分为单机模式和集群模式,其中,集群模式支持standalone,Apache Mesos,Hadoop Yarn等模式。standalone模式是spark自己提供的一种最简单的模式,本文主要基于此模式进行阐述。
2.standalone模式启动的两种方式
2.1 手动启动集群
此模式为单个执行sbin/*下的脚本,即单独启动master和slave。
2.2 通过脚本一键启动
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如下图:
从图上可以看到,master已正常启动,并且slave1上的worker也正常注册进来了。
再看worker的ui,
worker ui正常显示,此时看到由于没有任务执行,executor列表是空的。