【Spark学习笔记】02-Spark集群搭建

Spark集群管理器,总有一款适合你。

Spark运行模式有本地运行集群运行两种。在实际生产开发中,我们都会选择在集群运行,本地模式仅用于本地测试。

Spark集群管理器:

  • Standalone模式
  • Yarn
  • K8s
  • Mesos

本文记录前三种集群的搭建,现在主流是Yarn,k8s是趋势,越来越火。对于Mesos,现在没听说国内有公司使用,坑先留着

一、Standalone集群管理器

Standalone是Spark自带的一个集群管理器,允许在同一个物理集群上运行多个Spark应用程序。

1.集群规划

角色 机器节点
master node1
worker node2,node3

2.环境准备

  • 安装JDK,略
  • 机器免密

3.软件安装

解压到指定目录

tar -zxvf spark-2.3.1-bin-hadoop2.6.tgz -C /opt 

4.修改配置

Spark集群上配置文件要完全一样,我们只需要配置好一台机器(node1),然后将配置文件远程分发到其他机器。配置文件在$SPARK_HOME/conf

  • 配置集群进程所用资源
#拷贝一份出来
cp spark-env.sh.template spark-env.sh 
# 修改spark-env.sh文件
export SPARK_MASTER_HOST=node1 
export SPARK_MASTER_PORT=7077 
export SPARK_WORKER_CORES=2 
export SPARK_WORKER_MEMORY=2g 
export JAVA_HOME=/usr/java/jdk1.8.0_221 

注:JAVA_HOME配置为你机器上Java安装的真实路径

  • 配置worker节点
# 拷贝一份出来
cp slaves.template slaves 
# 修改slaves文件
node2
node3
  • 远程分发,同步配置文件
scp -r spark-2.3.1-bin-hadoop2.6 node2:`pwd` 
scp -r spark-2.3.1-bin-hadoop2.6 node3:`pwd` 

5.启动集群

进入Spark目录sbin目录下

./start-all.sh 

6.提交作业

# 以client模式提交到standalone集群 
spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://node1:7077 \
--executor-memory 2G \
--total-executor-cores 10 \
/opt/spark-2.3.1/examples/jars/spark-examples_2.11-2.3.1.jar \
100

# 以cluster模式提交到standalone集群 
spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://node1:7077 \
--deploy-mode cluster \
--supervise \  # 配置此参数代表开启监督,如果主应用程序异常退出,则自动重启 Driver
--executor-memory 2G \
--total-executor-cores 10 \
/opt/spark-2.3.1/examples/jars/spark-examples_2.11-2.3.1.jar \
100

二、Spark on Yarn

Spark也可以基于Yarn进行任务调度,将Spark作业提交到Yarn上运行,此时不需要启动Master节点也不需要启动Worker节点。此时Spark只是作为client角色,将作业提交到Yarn。

1.环境准备

  • HDFS服务安装,略
  • Yarn服务安装,略

2.软件安装

解压到指定目录

tar -zxvf spark-2.3.1-bin-hadoop2.6.tgz -C /opt 

3.修改配置

在spark-env.sh中配置hadoop的配置目录的路径,可以使用HADOOP_CONF_DIR或YARN_CONF_DIR进行指定

export HADOOP_CONF_DIR=/opt/hadoop-2.6.5/etc/hadoop

4.提交作业

必须保证HDFS和Yarn都已经启动

#  以client模式提交到yarn集群 
spark-submit \
--class org.apache.spark.examples.SparkPi \
--master yarn \
--deploy-mode client \
--executor-memory 2G \
--num-executors 10 \
/opt/spark-2.3.1/examples/jars/spark-examples_2.11-2.3.1.jar \
100

#  以cluster模式提交到yarn集群 
spark-submit \
--class org.apache.spark.examples.SparkPi \
--master yarn \
--deploy-mode cluster \
--executor-memory 2G \
--num-executors 10 \
/opt/spark-2.3.1/examples/jars/spark-examples_2.11-2.3.1.jar \
100

三、Spark on Kubernetes

待续

四、Mesos

posted @ 2020-08-22 21:31  yangyh11  阅读(271)  评论(0编辑  收藏  举报