Spark的local,Standalone,Yarn三种模式搭建

一:local模式

1.local模式简介

Local模式就是运行在一台计算机上的模式,通常就是用于在本机上练手和测试。它可以通过以下集中方式设置Master。
local:所有计算都运行在一个Core当中,没有任何并行计算,通常我们在本机执行一些测试代码,或者练手,就用这种模式;
local[K]:指定使用K个Core来运行计算,比如local[4]就是运行4个Core来执行;

2.local模式搭建

1.解压tar包后可以直接使用,不需要进行相关的配置

tar -zxvf spark-2.1.1-bin-hadoop2.7.tgz -C /opt/module/

在这里插入图片描述

解压以后将名字改为spark-local mv spark-2.1.1-bin-hadoop2.7/ spark-local ,这里不需要将解压完的tar包在scp到其他的节点

2.运行官方的PI案例,在/opt/module/spark-local 下执行下面的脚本。

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

在这里插入图片描述

二:Standalone模式搭建

1.Standalone模式简介:

Standalone模式是指使用Spark原生的资源管理器的集群运行模式,需要使用Master和Worker节点,其中,Master节点负责资源的控制、管理、监控集群中的Worker节点.

2.Standalone模式的搭建:

2.1将刚才解压好的tar包在/opt/module中执行 [root@hadoop102 module]# cp -r ./spark-local/ ./spark-stand

在这里插入图片描述

2.2 进入spark-stand下的conf目录,将slaves.template,spark-env.sh.template这两个文件改名为slaves spark-env.sh

mv slaves.template slaves
mv spark-env.sh.template spark-env.sh

2.3 进入slaves文件,将里面最后一行的localhost删掉,替换为hadoop102,hadoop103,hadoop104,这3个分别是我集群机器的主机名,这里要需要根据自己的主机名来更改一下。

在这里插入图片描述

2.4 修改spark-env.sh,在里面添加以下内容后保存退出。

SPARK_MASTER_HOST=hadoop102
SPARK_MASTER_PORT=7077

2.5 修改spark-stand/sbin下面的spark-config.sh文件添加以下内容,将JAVA_HOME load进去,如果不知道jdk的安装路径可以echo $JAVA_HOME来查看

export JAVA_HOME=/opt/module/jdk1.8.0_144

2.6 将spark-stand拷贝到另外两台机器上

scp -r /opt/module/spark-stand root@hadoop103:/opt/module

scp  -r   /opt/module/spark-stand     root@hadoop103:/opt/module
scp  -r   /opt/module/spark-stand     root@hadoop104:/opt/module

以上操作都执行好以后我们在hadoop102上面的spark-stand/sbin下执行start-all.sh启动spark集群。

在这里插入图片描述
再次运行官方案例测试

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

在这里插入图片描述

三:Yarn模式

1.yarn模式简介

YARN模式是指使用Hadoop的YARN作为资源管理器的集群运行模式。
在YARN模式下,不需要使用Master和Worker节点(即不需要在搭建额外的spark集群了),而是使用YARN下的ResourceManager 节点与NodeManager节点,对应Standalone模式下的Master节点和Worker节点.

2.yarn模式搭建

1.将刚才hadoop102上面的spark-stand复制一份在当前目录

cp -r  ./spark-stand/  ./spark-yarn

2.进入hadoop102中的spark-yarn/conf里面修改spark-env.sh,加入以下内容目的是让spark知道yarn的位置在哪里。

在这里插入图片描述

3.在hadoop102,hadoop103,hadoop104这三台主机上分别编辑yarn-site.xml文件添加如下内容,我的目录是在/opt/module/hadoop-2.7.2/etc/hadoop,可以根据自己的目录做相应的修改。

<!--是否启动一个线程检查每个任务正使用的物理内存量,如果任务超出分配值,则直接将其杀掉,默认是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>

4.将以上内容在hadoop102上编辑完不需要在将spark-yarn拷贝到另外的机器上了,因为yarn模式下spark不需要集群模式,只需有yarn集群就可以了因为之前yarn集群已经存在于Hadoop上了.

5.启动hadoop(注意spark中的yarn模式必须要先启动hadoop),执行一下官方案例

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

注意这里的–master已经改变,刚才Standalone模式下是hadoop102:7077,这里yarn模式已经变为yarn.

在这里插入图片描述

在这里插入图片描述

yarn模式下启动shell窗口可以发现也有相应的进程。

在这里插入图片描述

在这里插入图片描述

3.spark历史服务器配置

1.在spark-yarn/conf下将spark-default.conf.template改名为spark-default.conf

mv spark-defaults.conf.template spark-defaults.conf

2.修改spark-default.conf文件,开启Log,注意hdfs://后面的那里hadoop102要根据自己的主机名来改写,下同

spark.eventLog.enabled           true
spark.eventLog.dir               hdfs://hadoop102:9000/directory

在这里插入图片描述

注意:hadoop下的directory目录需要提前建立
spark.eventLog.enabled:启用日志
spark.eventLog.dir:Application在运行过程中所有的信息均记录在该属性指定的路径下.

3.修改spark-env.sh文件,添加如下内容

export SPARK_HISTORY_OPTS=
"-Dspark.history.ui.port=18080
-Dspark.history.retainedApplications=30 
-Dspark.history.fs.logDirectory=hdfs://hadoop102:9000/directory"

spark.history.ui.port: Spark中historyServer的webUI的端口号
spark.history.fs.logDirectory=hdfs://hadoop102:9000/directory : 配置了该属性后,在start-history-server.sh时就无需再显式的指定路径,Spark History Server页面只展示该指定路径下的信息

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44080445/article/details/110731559