【Spark】 No.2 Spark集群

一  Spark集群结构

Spark 自身是没有集群管理工具的,但是如果想要管理数以千计台机器的集群,没有一个集群管理工具还不太现实,所以 Spark 可以借助外部的集群工具来进行管理

整个流程就是使用 Spark 的 Client 提交任务,找到集群管理工具申请资源,后将计算任务分发到集群中运行

名词解释

1 Driver

该进程调用 Spark 程序的 main 方法,并且启动 SparkContext

2 Cluster Manager

该进程负责和外部集群工具打交道,申请或释放集群资源

3 Worker

该进程是一个守护进程,负责启动和管理 Executor

4 Executor

该进程是一个JVM虚拟机,负责运行 Spark Task

运行 Spark 程序的步骤 

1 启动 Drive, 创建 SparkContext

2 Client 提交程序给 Drive, Drive 向 Cluster Manager 申请集群资源

3 资源申请完毕,在 Worker 中启动 Executor

4 Driver 将程序转化为 Tasks,分发给 Executor 执行

Spark 可以将任务运行在以下两种模式下

1 单机  使用线程模拟并行来运行程序

2 集群 使用集群管理器来和不同类型的集群交互, 将任务运行在集群中

Spark 可以使用的集群管理工具

1 Spark Standalone

2 Hadoop Yarn

3 Apache Mesos

4 Kubernetes

二 搭建Spark集群 (注意:我们搭建的Spark集群要建立的Hadoop集群的基础上)

不会搭建Hadoop集群的参照我之前写的

在 vmware 上创建centos 虚拟机

搭建Hadoop集群

Spark安装包百度云链接 提取码 beuk

1 将 saprk 安装包上传到虚拟机指定目录 我这里的目录为 /usr/local/apps

2 执行解压 将spark压缩包解压在当前目录下

tar -zxvf spark-2.2.0-bin-hadoop2.7.tgz

3 配置 spark-env.sh

cd spark/conf/

3.2 将 spark-env.sh.template 拷贝一份待改

cp spark-env.sh.template spark-env.sh

3.3 修改 saprk-env.sh  将如下内容贴到 spark-env.sh 文件末尾处 注意:贴入时把中文注释去掉否则有可能会报错

# 指定 Java Home
export JAVA_HOME=/usr/local/apps/jdk1.8

# 指定 Spark Master 地址
export SPARK_MASTER_HOST=mini-01

# 指定端口
export SPARK_MASTER_PORT=7077

最后保存退出即可 

4 配置 slave 文件 

4.1 首先进入 conf 目录下

cd spark/conf/

 4.2salves文件拷贝一份待改

cp slaves.template slaves

vim slaves

 4.3 将如下代码贴在 salves 文件末尾

mini-02
mini-03

最后保存退出即可

5 配置HistoryServer

5.1 首先进入 conf 目录下

cd spark/conf/

5.2 将spark-defaults.conf.template 拷贝一份待改

cp spark-defaults.conf.template spark-defaults.conf

5.3 将以下内容复制到 spark-defaults.conf 末尾处,通过这段配置,可以指定 spark 将日志输入到 Hdfs 中

spark.eventLog.enabled  true
spark.eventLog.dir      hdfs://mini-01:8020/spark_log
spark.eventLog.compress true

 

6 再次配置 spark-env.sh 

将以下内容复制到 spark-env.sh 的末尾, 配置 HistoryServer 启动参数,使得 HistoryServer 在启动的时候读取 Hdfs 中写入的 spark 日志

# 指定 Spark History 运行参数
export SPARK_HISTORY_OPTS="-Dspark.history.ui.port=4000 -Dspark.history.retainedApplications=3 -Dspark.history.fs.logDirectory=hdfs://mini-01:8020/spark_log"

7 为 Spark 创建 HDFS 中的日志目录

hdfs dfs -mkdir -p /spark_log

8 将修改好的Spark包分发到其他机器上

三 启动Spark集群

1 进入 spark master  sbin 目录下 即 mini-01

cd /usr/loacl/apps/spark/sbin

2 关闭所有机器的防火墙

systemctl stop firewalld

3 启动 Spark 集群

./start-all.sh
./start-history-server.sh

4 访问 spark 集群

通过浏览器访问   http://192.168.25.193:8080/  (主节点默认端口为8080) 出现如下图所示证明启动成功

5 关闭 spark 集群

进入 spark sbin目录下 执行如下命令即可关闭 spark 集群

./stop-all.sh

以上 感谢 比搭建 hadoop 集群简单多啦!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值