hadoop 3.x大数据集群搭建系列4-安装Spark

一. 下载spark和scala并解压

cd /home/software
wget https://mirrors.tuna.tsinghua.edu.cn/apache/spark/spark-3.3.1/spark-3.3.1-bin-hadoop3.tgz --no-check-certificate

tar -xvf spark-3.3.1-bin-hadoop3.tgz -C /home/
cd /home/software
官网下载scala:https://www.scala-lang.org/download/2.13.1.html

tar -xvf scala-2.13.1.tgz -C /home

二. 配置SPARK_HOME环境变量

vi /etc/profile
# 添加如下内容
export SPARK_HOME=/home/spark-3.3.1-bin-hadoop3
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin

export SCALA_HOME=/home/scala-2.13.1
export PATH= $PATH:$SCALA_HOME/bin


# 加载使其生效
source /etc/profile

三. 修改配置

# 进入spark conf目录
cd /home/spark-3.3.1-bin-hadoop3/conf
# 拷贝模板文件
cp spark-defaults.conf.template spark-defaults.conf
cp spark-env.sh.template spark-env.sh

3.1 修改 spark-defaults.conf

vim spark-defaults.conf
# 添加如下内容
spark.master                     spark://hp5:7077
spark.serializer                 org.apache.spark.serializer.KryoSerializer
spark.driver.memory              512m
spark.executor.memory            512m

3.2 修改spark-env.sh

export JAVA_HOME=/usr/java/jdk1.8.0_181
export HADOOP_HOME=/home/hadoop-3.3.2
export HADOOP_CONF_DIR=/home/hadoop-3.3.2/etc/hadoop
export YARN_CONF_DIR=/home/hadoop-3.3.2/etc/hadoop
export SPARK_DIST_CLASSPATH=$(/home/spark-3.3.1-bin-hadoop3/bin/hadoop classpath)
export SPARK_MASTER_HOST=hp5
export SPARK_MASTER_PORT=7077

3.3 修改slaves文件

vi slaves
# 修改为如下内容
hp5
hp6
hp7

四. 将spark目录分发到其他节点

cd /home
scp -r ./spark-3.3.1-bin-hadoop3/ root@hp6:/home/
scp -r ./spark-3.3.1-bin-hadoop3/ root@hp7:/home/

五. 启动Spark集群

# 配置了环境变量,可以在任意目录执行启动命令
cd /home/spark-3.3.1-bin-hadoop3/sbin
./start-all.sh
image.png

端口是8081


image.png

六. 在web界面查看Spark UI

在Linux系统上浏览器上查看Spark UI:
http://10.31.1.119:8081/


image.png

七. 测试

运行SparkPI进行案例测

spark-submit --class org.apache.spark.examples.SparkPi \
$SPARK_HOME/examples/jars/spark-examples_2.12-3.2.2.jar 10
image.png

八. Yarn模式

上面默认是用standalone模式启动的服务,如果想要把资源调度交给yarn来做,则需要配置为yarn模式:

  1. 需要启动的服务:hdfs服务、yarn服务
  2. 需要关闭 Standalone 对应的服务(即集群中的Master、Worker进程)。

在Yarn模式中,Spark应用程序有两种运行模式:

  1. yarn-client:Driver程序运行在客户端,适用于交互、调试,希望立2. 即看到app的输出
    yarn-cluster:Driver程序运行在由RM启动的 AppMaster中,适用于生产环境

二者的主要区别:
Driver在哪里!

8.1 启动hdfs、yarn服务

此处略过

8.2 修改Hadoop中的 yarn-site.xml 配置

在$HADOOP_HOME/etc/hadoop/yarn-site.xml中增加如下配置,然后分发到集群其他节点,重启yarn 服务。

# 打开yarn-site.xml文件
vi /home/hadoop-3.3.2/etc/hadoop/yarn-site.xml

        yarn.nodemanager.pmem-check-enabled
        false


        yarn.nodemanager.vmem-check-enabled
        false

说明:

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

8.3 向hdfs上传spark纯净版jar包

cd /home/software
wget https://mirrors.tuna.tsinghua.edu.cn/apache/spark/spark-3.3.1/spark-3.3.1-bin-without-hadoop.tgz --no-check-certificate

tar -zxvf spark-3.3.1-bin-without-hadoop.tgz

上传spark纯净版jar包到hdfs

hdfs dfs -mkdir /spark-jars
hdfs dfs -put /home/software/spark-3.3.1-bin-without-hadoop/jars/* /spark-jars

说明:

  1. Spark任务资源分配由Yarn来调度,该任务有可能被分配到集群的任何一个节点。所以需要将spark的依赖上传到hdfs集群路径,这样集群中任何一个节点都能获取到,依此达到Spark集群的HA。
  2. Spark纯净版jar包,不包含hadoop和hive相关依赖,避免和后续安装的Hive出现兼容性问题。

8.4 Spark on Yarn测试

记得,先把Master与worker进程停掉,否则会走standalone模式。

# 停掉standalone模式的服务
stop-all.sh

8.4.1 client运行模式

这种模式可以看见:程序计算的结果(即可以看见计算返回的结果)!

# client
spark-submit --master yarn \
--deploy-mode client \
--class org.apache.spark.examples.SparkPi \
$SPARK_HOME/examples/jars/spark-examples_2.12-3.2.2.jar 20
image.png
image.png

8.4.2 cluster运行模式

这种模式就看不见最终的结果!

# cluster
spark-submit --master yarn \
--deploy-mode cluster \
--class org.apache.spark.examples.SparkPi \
$SPARK_HOME/examples/jars/spark-examples_2.12-3.2.2.jar 20
image.png

image.png

参考:

  1. https://blog.csdn.net/u011109589/article/details/124855282

你可能感兴趣的:(hadoop 3.x大数据集群搭建系列4-安装Spark)