完全分布式高可用集群(Scala+Spark)
Spark
一、前置准备(Scala)
以下步骤都在hadoop1机器执行,然后复制到hadoop2和hadoop3机器中
上传scala包
解压scala包
1
2tar -zxf /software/scala-2.13.14.tgz -C /opt
ln -s /opt/scala-2.13.14 /opt/scala
- 配置
/etc/profile
的scala环境变量,重新加载配置文件,运行scala(记得source让环境变量生效)
1 | export SCALA_HOME=/opt/scala |
- 检查是否安装成功
1 | scala |
- 分发到hadoop2和hadoop3
1 | scp -r /opt/scala root@hadoop2:/opt/ |
二、完全分布式部署(Spark)
- Spark部署方式
Local模式:单机模式
集群模式:
Standalone模式:使用Spark自带的简单集群管理器
YARN模式:使用YARN作为集群管理器
Mesos模式:使用Mesos作为集群管理器
Kubernetes模式:实验阶段
- 安装spark
1)Spark官网的Download界面https://spark.apache.org/downloads.html可选版本较少。
2)可以在下载页面的下方进入它的release archives:https://archive.apache.org/dist/spark/ 选择想要的版本。
由于我们之前配置过Hadoop了,所以选择without-hadoop的版本
- 安装Spark
约定虚拟机主机名为hadoop1,用户名为root, 安装路径为/opt,如果不是,请自行修改相应配置文件。
1)上传安装包
将下载好的安装包上传至虚拟机(当然你也可以直接在虚拟机中下载,省得上传文件)
2)解压并创建软链接
1 | tar -xvf /software/spark-3.5.1-bin-without-hadoop.tgz -C /opt |
3)查看Spark的目录结构
1 | ls /opt/spark |
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 | export SPARK_HOME=/opt/spark |
运行下面的命令使配置生效
1 | source /etc/profile |
5)配置Hadoop信息
因为我们下载的是“without-hadoop” 版本,所以要配置SPARK_DIST_CLASSPATH 变量才能正常运行。
1 | cd /opt/spark/conf |
添加配置如下信息
1 | export SPARK_DIST_CLASSPATH=$(/opt/hadoop/bin/hadoop classpath) |
6)测试安装
1 | spark-shell |
运行代码进行测试
1 | var r = sc.parallelize(Array(1,2,3,4)) |
安装Anaconda(可选)
- 安装python(centos9自带python3.9.18)
- 安装Anaconda
1)查看python3.9对应的Anaconda版本
2)下载
1 | cd /software |
3)执行安装命令
1 | bash Anaconda3-2022.10-Linux-x86_64.sh |
然后一路回车,等出现接受许可界面,输入yes接收许可。
接着可以配置anacoda的安装目录,这里配置的安装目录是:/opt/anaconda3
然后配置是否自动配置PATH路径,这里输入的yes,让其自动配置
最后提示是否安装VSCode,这里输入的no,拒绝安装。
伪分布式
- 配置Spark伪Standalone模式
这里配置Standalone模式,为了方便初学者,这里只配置一台从节点,所以将其称为”伪Standalone模式”
1)打开配置文件目录/opt/spark/conf/spark-env.sh
1 | vi /opt/spark/conf/spark-env.sh |
添加如下配置信息
1 | export SPARK_MASTER_HOST=hadoop1 #设置主节点地址 |
2)配置节点信息,打开/opt/spark/conf
目录,复制workers.template
文件
1 | cp /opt/spark/conf/workers.template /opt/spark/conf/workers |
打开文件vim /opt/spark/conf/workers
,删除localhost,填入以下信息
1 | hadoop2 |
分发到hadoop2和hadoop3中
1
2
3
4scp -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/测试standalone模式(需要先启动hadoop)
1)启动命令
1 | /opt/spark/sbin/start-master.sh |
或
1 | /opt/spark/sbin/start-all.sh |
2)查看状态
1 | sh /opt/xshell/xjps.sh |
Web网页(http://hadoop1:8081)
3)终止命令
1 | /opt/spark/sbin/stop-all.sh |