Spark

一、前置准备(Scala)

以下步骤都在hadoop1机器执行,然后复制到hadoop2和hadoop3机器中

  1. 上传scala包

    image-20240722102358308

  2. 解压scala包

    1
    2
    tar -zxf /software/scala-2.13.14.tgz -C /opt
    ln -s /opt/scala-2.13.14 /opt/scala

image-20240722102504582

  1. 配置/etc/profile的scala环境变量,重新加载配置文件,运行scala(记得source让环境变量生效)
1
2
export SCALA_HOME=/opt/scala
export PATH=$PATH:$SCALA_HOME/bin

image-20240722102612842

  1. 检查是否安装成功
1
scala

image-20240722102655402

  1. 分发到hadoop2和hadoop3
1
2
3
4
scp -r /opt/scala root@hadoop2:/opt/
scp /etc/profile root@hadoop2:/etc/
scp -r /opt/scala root@hadoop3:/opt/
scp /etc/profile root@hadoop3:/etc/

image-20240722120705329

二、完全分布式部署(Spark)

  1. Spark部署方式
  • Local模式:单机模式

  • 集群模式:

  • Standalone模式:使用Spark自带的简单集群管理器

  • YARN模式:使用YARN作为集群管理器

  • Mesos模式:使用Mesos作为集群管理器

  • Kubernetes模式:实验阶段

  1. 安装spark

1)Spark官网的Download界面https://spark.apache.org/downloads.html可选版本较少。

2)可以在下载页面的下方进入它的release archives:https://archive.apache.org/dist/spark/ 选择想要的版本。

由于我们之前配置过Hadoop了,所以选择without-hadoop的版本

image-20240722103729587

  1. 安装Spark

约定虚拟机主机名为hadoop1,用户名为root, 安装路径为/opt,如果不是,请自行修改相应配置文件。

1)上传安装包

将下载好的安装包上传至虚拟机(当然你也可以直接在虚拟机中下载,省得上传文件)

image-20240722104232927

2)解压并创建软链接

1
2
tar -xvf /software/spark-3.5.1-bin-without-hadoop.tgz -C /opt
ln -s /opt/spark-3.5.1-bin-without-hadoop /opt/spark

image-20240722104350802

3)查看Spark的目录结构

1
ls /opt/spark

image-20240722104427100

  • bin: 可执行脚本,比如常用的spark-shell, pyspark等。

  • data:示例程序使用数据

  • jars:依赖的jar包

  • R:R API包

  • yarn:整合yarn相关内容

  • conf:配置文件目录

  • examples:示例程序

  • kubernetes:K8S相关内容

  • licenses:许可文件

  • python:python API包

  • sbin:管理使用的脚本,比如: start-all.sh、start-master.sh等。

4)配置环境变量(/etc/profile)

1
2
export SPARK_HOME=/opt/spark
export PATH=$PATH:$SPARK_HOME/bin

image-20240722104644135

运行下面的命令使配置生效

1
source /etc/profile

5)配置Hadoop信息

因为我们下载的是“without-hadoop” 版本,所以要配置SPARK_DIST_CLASSPATH 变量才能正常运行。

1
2
3
cd /opt/spark/conf
cp spark-env.sh.template spark-env.sh
vi spark-env.sh

添加配置如下信息

1
export SPARK_DIST_CLASSPATH=$(/opt/hadoop/bin/hadoop classpath)

image-20240722104849976

6)测试安装

1
spark-shell

image-20240722105824151

运行代码进行测试

1
2
var r = sc.parallelize(Array(1,2,3,4))
r.map(_*10).collect()

image-20240722110106854

安装Anaconda(可选)

  1. 安装python(centos9自带python3.9.18)

image-20240722112459698

  1. 安装Anaconda

1)查看python3.9对应的Anaconda版本

image-20240722114603637

2)下载

可以在网页https://repo.anaconda.com/archive/(或网址https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/)上选择相应版本进行下载,这里将下载[Anaconda3-2022.10-Linux-x86_64.sh](https://repo.anaconda.com/archive/Anaconda3-2022.10-Linux-x86_64.sh),其python对应版本为3.9。

1
2
cd /software
wget https://repo.anaconda.com/archive/Anaconda3-2022.10-Linux-x86_64.sh

image-20240722115039721

3)执行安装命令

1
bash Anaconda3-2022.10-Linux-x86_64.sh

然后一路回车,等出现接受许可界面,输入yes接收许可。

image-20240722115227946

接着可以配置anacoda的安装目录,这里配置的安装目录是:/opt/anaconda3

image-20240722115502263

然后配置是否自动配置PATH路径,这里输入的yes,让其自动配置

最后提示是否安装VSCode,这里输入的no,拒绝安装。

伪分布式

  1. 配置Spark伪Standalone模式

这里配置Standalone模式,为了方便初学者,这里只配置一台从节点,所以将其称为”伪Standalone模式”

1)打开配置文件目录/opt/spark/conf/spark-env.sh

1
vi /opt/spark/conf/spark-env.sh

添加如下配置信息

1
2
3
4
5
6
7
8
export SPARK_MASTER_HOST=hadoop1           #设置主节点地址
export SPARK_MASTER_WEBUI_PORT=8081 #设置网页端口
export SPARK_WORKER_MEMORY=2g #设置节点内存大小,此处为4G。
export SPARK_WORKER_CORES=2 #设置节点参与计算的核心数
export SPARK_WORKER_INSTANCES=1 #设置节点实例数
export JAVA_HOME=/opt/jdk
export HADOOP_CONF_DIR=/opt/hadoop/etc/hadoop
SPARK_HISTORY_OPTS="-Dspark.history.fs.logDirectory=hdfs://hadoop1:9000/sparklog/ -Dspark.history.fs.cleaner.enabled=true/"

image-20240722125142795

2)配置节点信息,打开/opt/spark/conf目录,复制workers.template文件

1
cp /opt/spark/conf/workers.template /opt/spark/conf/workers

打开文件vim /opt/spark/conf/workers,删除localhost,填入以下信息

1
2
hadoop2
hadoop3

image-20240722113442397

  1. 分发到hadoop2和hadoop3中

    1
    2
    3
    4
    scp -r /opt/spark root@hadoop2:/opt/
    scp /etc/profile root@hadoop2:/etc/
    scp -r /opt/spark root@hadoop3:/opt/
    scp /etc/profile root@hadoop3:/etc/
  2. 测试standalone模式(需要先启动hadoop)

1)启动命令

1
2
/opt/spark/sbin/start-master.sh
/opt/spark/sbin/start-workers.sh

1
/opt/spark/sbin/start-all.sh

image-20240722122752870

2)查看状态

1
sh /opt/xshell/xjps.sh

image-20240722122904308

Web网页(http://hadoop1:8081)

image-20240722124835873

3)终止命令

1
/opt/spark/sbin/stop-all.sh