Spark standalone和yarn模式安装部署

1 安装

1) 下载
https://archive.apache.org/dist/spark/
2) 解压下载安装包
tar -zxvf spark-2.1.1-bin-hadoop2.7.tgz

2 standalone模式

2.1 说明

构建一个由 Master + Slave 构成的 Spark 集群,Spark 运行在集群中。这个要和 Hadoop 中的 Standalone 区别开来. 这里的 Standalone 是指只用 Spark 来搭建一个集群, 不需要借助其他的框架.是相对于 Yarn 和 Mesos 来说的。

cp -r spark-2.1.1-bin-hadoop2.7 spark-standalone

2.2 安装流程

1️⃣进入配置文件目录conf, 配置spark-evn.sh

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

在spark-env.sh文件中配置如下内容:

SPARK_MASTER_HOST=hadoop201
SPARK_MASTER_PORT=7077 # 默认端口就是7077, 可以省略不配

在这里插入图片描述
2️⃣修改 slaves 文件, 添加 worker 节点

cp slaves.template slaves

在slaves文件中配置如下内容:

master-1
master-2
slave-1
slave-2
slave-3

在这里插入图片描述
3️⃣向其他机器分发spark-standalone
4️⃣启动 Spark 集群

sbin/start-all.sh

在这里插入图片描述
说明:如果启动时报错如下:JAVA_HOME is not set
解决办法:
sbin/spark-config.sh中添加入JAVA_HOME变量即可. 同时向集群安装spark的各个节点分发修改的文件
在这里插入图片描述

再次启动sbin/tart-all.sh

在这里插入图片描述
可以看到spark集群已启动完毕
5️⃣登陆网页查看集群情况
http://master-1:8080
在这里插入图片描述
在这里插入图片描述
6️⃣ 测试集群
用 Standalone 模式运行计算 PI 的程序

bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://master-1:7077 \
--executor-memory 1G \
--total-executor-cores 6 \
--executor-cores 2 \
./examples/jars/spark-examples_2.11-2.1.1.jar 100

在这里插入图片描述
⑦ standalone模式启动spark-shell

bin/spark-shell --master spark://master-1:7077

–master 指定要连接的集群的master
在这里插入图片描述
在这里插入图片描述
⑧ 测试执行wordcount程序
执行wordcount程序

sc.textFile("/root/data/spark/wordcount/input/").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).collect

在这里插入图片描述
注意:
• 每个worker节点上要有相同的文件夹:input/, 否则会报文件不存在的异常

2.3 配置 Spark 任务历史服务器(为 Standalone 模式配置)

在 Spark-shell 没有退出之前, 我们是可以看到正在执行的任务的日志情况:http://master-1:4040. 但是退出 Spark-shell 之后, 执行的所有任务记录全部丢失.
所以需要配置任务的历史服务器, 方便在任何需要的时候去查看日志.

步骤1: 配置spark-default.conf文件, 开启 Log

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

在spark-defaults.conf文件中, 添加如下内容:

spark.eventLog.enabled           true
spark.eventLog.dir               hdfs://master-1:9000/spark-job-log

注意: hdfs://master-1:9000/spark-job-log 目录必须提前存在, 名字随意
在这里插入图片描述

步骤2: 修改spark-env.sh文件,添加如下配置.

export SPARK_HISTORY_OPTS="-Dspark.history.ui.port=18080 -Dspark.history.retainedApplications=30 -Dspark.history.fs.logDirectory=hdfs://master-1:9000/spark-job-log"

在这里插入图片描述

步骤3: 分发配置文件

需要安装spark集群的服务器上分发配置文件

步骤4: 启动历史服务

需要先启动 HDFS
然后再启动:

sbin/start-history-server.sh

在这里插入图片描述
ui 地址: http://master-1:18080
在这里插入图片描述

步骤5: 启动任务, 查看历史服务器

bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://master-1:7077 \
--executor-memory 1G \
--total-executor-cores 6 \
./examples/jars/spark-examples_2.11-2.1.1.jar 100

在这里插入图片描述

3 yarn 模式

3.1 介绍

Spark 客户端可以直接连接 Yarn,不需要额外构建Spark集群。
有 client 和 cluster 两种模式,主要区别在于:Driver 程序的运行节点不同。
• client:Driver程序运行在客户端,适用于交互、调试,希望立即看到app的输出
• cluster:Driver程序运行在由 RM(ResourceManager)启动的 AM(AplicationMaster)上, 适用于生产环境。

3.2 yarn模式配置

步骤1: 修改 hadoop 配置文件 yarn-site.xml, 添加如下内容:

由于我们的测试环境的虚拟机内存太少, 防止将来任务被意外杀死, 配置所以做如下配置.

<!--是否启动一个线程检查每个任务正使用的物理内存量,如果任务超出分配值,则直接将其杀掉,默认是true -->
<property>
    <name>yarn.nodemanager.pmem-check-enabled</name>
    <value>false</value>
</property>
<!--是否启动一个线程检查每个任务正使用的虚拟内存量,如果任务超出分配值,则直接将其杀掉,默认是true -->
<property>
    <name>yarn.nodemanager.vmem-check-enabled</name>
    <value>false</value>
</property>

修改后向集群每个节点分发配置文件.

步骤2: 复制 spark, 并命名为spark-yarn

cp -r spark-standalone spark-yarn

步骤3: 修改spark-evn.sh文件

去掉 master 的 HA 配置, 日志服务的配置保留着.
并添加如下配置: 告诉 spark 客户端 yarn 相关配置

YARN_CONF_DIR=/root/software/hadoop-2.7.2/etc/Hadoop

在这里插入图片描述

步骤4: 执行一段程序

bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master yarn \
--deploy-mode client \
./examples/jars/spark-examples_2.11-2.1.1.jar 100

在这里插入图片描述
在这里插入图片描述

特别说明:如果未按上述配置yarn-site.xml执行上述任务时可能会报错

在这里插入图片描述
ERROR cluster.YarnClientSchedulerBackend: Yarn application has already exited with state FINISHED!
ERROR client.TransportClient: Failed to send RPC 4894511557602161209 to /192.168.199.101:45180: java.nio.channels.ClosedChannelException
ERROR util.Utils: Uncaught exception in thread Yarn application state monitor

如果已经按上述配置,但是执行spark任务任然报错。原因可能是,修改完yarn-site.xml配置文件后,需要重启yarn集群才会生效

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值