Spark01——基本使用

下面介绍的是spark的几种运行的模式:本地模式, 分布式(standalone)和 yarn模式
,还有配置高可用配置历史服务

本地模式

将解压后的文件直接执行下面命令,

bin/spark-shell

提交应用:

1 bin/spark-submit
1 --class org.apache.spark.examples.SparkPi
1 --master local[2] `
1 ./examples/jars/spark-examples_2.12-3.0.0.jar
1 10

参数说明:

  1. –class 表示要执行程序的主类,此处可以更换为咱们自己写的应用程序
  2. –master local[2] 部署模式,默认为本地模式,数字表示分配的虚拟 CPU 核数量
  3. spark-examples_2.12-3.0.0.jar 运行的应用类所在的 jar 包,实际使用时,可以设定为咱们自己打的 jar 包
  4. 数字 10 表示程序的入口参数,用于设定当前应用的任务数量

Standalone(分布式集群)模式

先启动zookeeper集群;

1.修改slaves文件(集群地址):

hadoop202
hadoop203
hadoop204

2.修改spark-env.sh 文件,添加 JAVA_HOME 和集群对应的 master 节点

export JAVA_HOME=/opt/module/jdk1.8.0_144
SPARK_MASTER_HOST=hadoop202
SPARK_MASTER_PORT=7077

3.== 注意: 7077是内部通信端口==

分发到集群:

xsync spark-standalone

启动:

sbin/start-all.sh

提交应用:

bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://hadoop202:7077 \
./examples/jars/spark-examples_2.12-3.0.0.jar \
10

1 --class 表示要执行程序的主类
2 --master spark://linux1:7077 独立部署模式,连接到 Spark 集群
3 spark-examples_2.12-3.0.0.jar 运行类所在的 jar 包
4 数字 10 表示程序的入口参数,用于设定当前应用的任务数量

提交参数说明:

在这里插入图片描述

Yarn模式

1.修改yarn-site.xml文件(防止yarn资源调度出现问题)

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

export JAVA_HOME=/opt/module/jdk1.8.0_144
YARN_CONF_DIR=/opt/module/hadoop-3.1.3/etc/hadoop

提交应用:

bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master yarn \
--deploy-mode cluster \
./examples/jars/spark-examples_2.12-3.0.0.jar \
10

前提是要先启动hdfs和yarn
然后就可以启动了

三种模式的对比图:
在这里插入图片描述

配置历史服务

1.修改 spark-default.conf:

spark.eventLog.enabled true
spark.eventLog.dir hdfs://hadoop202:8020/directory

注: directory文件是日志存放的位置,这个文件必须要提前创建好

2.再修改spark-env.conf文件

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

⚫ 参数 1 含义:WEB UI 访问的端口号为 18080
⚫ 参数 2 含义:指定历史服务器日志存储路径
⚫ 参数 3 含义:指定保存 Application 历史记录的个数,如果超过这个值,旧的应用程序信息将被删除,这个是内存中的应用数,而不是页面上显示的应用数。

3.注意: 如果是yarn模式,还要修改spark-default.conf文件,进行关联

spark.yarn.historyServer.address=hadoop202:18080
spark.history.ui.port=18080

分发配置文件和重启集群和历史服务:

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

配置高可用

只有一个master的话,会有单点故障问题,就需要配置高可用.

1.修改配置spark-env.sh:

注释如下内容:
#SPARK_MASTER_HOST=linux1
#SPARK_MASTER_PORT=7077
添加如下内容:
#####################
#Master 监控页面默认访问端口为 8080,但是可能会和 Zookeeper 冲突,所以改成 8989,也可以自定义,访问 UI 监控页面时请注意

SPARK_MASTER_WEBUI_PORT=8989’
#####################
#配置zookeeper相关信息
export SPARK_DAEMON_JAVA_OPTS="
-Dspark.deploy.recoveryMode=ZOOKEEPER
-Dspark.deploy.zookeeper.url=hadoop202,hadoop203,hadoop204
-Dspark.deploy.zookeeper.dir=/spark"

2.是依赖于zookeeper集群的,先启动zookeeper

3.然后进行启动spark集群,再在所要配置的高可用备用集群上启动master

sbin/start-all.sh
sbin/start-master.sh

提交应用到高可用集群

bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://hadoop202:7077,hadoop203:7077 \
./examples/jars/spark-examples_2.12-3.0.0.jar \
10

猜你喜欢

转载自blog.csdn.net/First_____/article/details/119049203
今日推荐