【spark的集群模式搭建】Standalone集群模式的搭建(简单明了的安装教程)

文章目录


1、使用Anaconda部署Python

使用anaconda的好处:具有资源环境隔离功能,方便基于不同版本不同环境进行测试开发

分发脚本的编写可以参考文章:
大数据集群搭建以及使用过程中几个实用的shell脚本

spark 和 Anaconda 资源下载链接:
spark-3.1.2 和 Anaconda3 的安装包下载

bash 复制代码
# 上传(文件夹可以换成其他的)
cd /opt/modules
# 同步给其他两个节点【分发脚本】
xsync.sh /opt/modules/Anaconda3-2021.05-Linux-x86_64.sh


# 以下操作在三个节点都需要进行

# 添加执行权限
chmod u+x Anaconda3-2021.05-Linux-x86_64.sh
# 执行
./Anaconda3-2021.05-Linux-x86_64.sh

# 过程
#第一次:【直接回车,然后按q】
   Please, press ENTER to continue
   >>>
#第二次:【输入yes】
 Do you accept the license terms? [yes|no]
 [no] >>> yes
#第三次:【输入解压路径:/opt/installs/anaconda3】
 [/root/anaconda3] >>> /opt/installs/anaconda3
 #第四次:【输入yes,是否在用户的.bashrc文件中初始化
Anaconda3的相关内容】
 Do you wish the installer to initialize  Anaconda3
   by running conda init? [yes|no]
   [no] >>> yes
   

# 配置环境变量
vi /etc/profile
# 添加以下内容
# Anaconda Home
export ANACONDA_HOME=/opt/installs/anaconda3
export PATH=$PATH:$ANACONDA_HOME/bin
# 刷新环境变量
source /etc/profile
# 创建python3的软连接
ln -s /opt/installs/anaconda3/bin/python3 /usr/bin/python3
# 验证
echo $ANACONDA_HOME

2、上传、解压、重命名

bash 复制代码
# 解压安装
cd /opt/modules
tar -zxvf spark-3.1.2-bin-hadoop3.2.tgz -C /opt/installs

# 重命名
cd /opt/installs
mv spark-3.1.2-bin-hadoop3.2 spark-standalone

3、创建软连接

bash 复制代码
ln -s spark-standalone spark

4、配置spark环境变量

bash 复制代码
export SPARK_HOME=/opt/installs/spark
export PATH=$SPARK_HOME/bin:$PATH

5、修改 spark-env.sh配置文件

bash 复制代码
cd /opt/installs/spark/conf
# 重命名
mv spark-env.sh.template spark-env.sh
vim spark-env.sh

添加以下内容:

bash 复制代码
export JAVA_HOME=/opt/installs/jdk
export HADOOP_CONF_DIR=/opt/installs/hadoop/etc/hadoop
export SPARK_MASTER_HOST=node01 # 主节点所在的地址
export SPARK_MASTER_PORT=7077 #主节点内部通讯端口,用于接收客户端请求
export SPARK_MASTER_WEBUI_PORT=8080 #主节点用于供外部提供浏览器web访问的端口
export SPARK_WORKER_CORES=1     # 指定这个集群总每一个从节点能够使用多少核CPU
export SPARK_WORKER_MEMORY=1g   #指定这个集群总每一个从节点能够使用多少内存
export SPARK_WORKER_PORT=7078
export SPARK_WORKER_WEBUI_PORT=8081
export SPARK_DAEMON_MEMORY=1g  # 进程自己本身使用的内存
export SPARK_HISTORY_OPTS="-Dspark.history.fs.logDirectory=hdfs://node01:9820/spark/eventLogs/ -Dspark.history.fs.cleaner.enabled=true"
# Spark中提供了一个类似于jobHistoryServer的进程,就叫做HistoryServer, 用于查看所有运行过的spark程序

6、启动hdfs,创建文件夹

bash 复制代码
start-dfs.sh
bash 复制代码
# 创建程序运行日志的存储目录
hdfs dfs -mkdir -p /spark/eventLogs/

7、修改spark-defaults.conf配置文件

bash 复制代码
mv spark-defaults.conf.template spark-defaults.conf
vim spark-defaults.conf

# 末尾
spark.eventLog.enabled           true
spark.eventLog.dir              hdfs://node01:9820/spark/eventLogs
spark.eventLog.compress              true

8、修改workers配置文件

bash 复制代码
mv workers.template workers
vim workers

# 删掉localhost,添加以下内容
node01
node02
node03

9、修改log4j.properties配置文件(可选)

bash 复制代码
mv log4j.properties.template log4j.properties
vim log4j.properties

# 19行:修改日志级别为WARN
log4j.rootCategory=WARN, console

10、分发文件夹和软连接

bash 复制代码
# 第一台(分发脚本)
xsync.sh /opt/installs/spark-standalone/
xsync.sh /opt/installs/spark

11、集群启动

bash 复制代码
# 启动master:
cd /opt/installs/spark
sbin/start-master.sh
# 启动所有worker:
sbin/start-workers.sh
# 如果你想启动某一个worker
sbin/start-worker.sh

# 启动日志服务:
sbin/start-history-server.sh

# 要想关闭某个服务,将start换为stop

master监控界面:http://node01:8080/
日志服务监控界面:http://node01:18080/
相关推荐
快手技术1 小时前
Blaze RangePartitioning 算子Native实现全解析
spark·naive
知初~20 小时前
出行项目案例
hive·hadoop·redis·sql·mysql·spark·database
努力的小T1 天前
使用 Docker 部署 Apache Spark 集群教程
linux·运维·服务器·docker·容器·spark·云计算
Java资深爱好者1 天前
在Spark中,如何使用DataFrame进行高效的数据处理
大数据·分布式·spark
阿里云大数据AI技术1 天前
美的楼宇科技基于阿里云 EMR Serverless Spark 构建 LakeHouse 湖仓数据平台
大数据·阿里云·spark·serverless·emr
python资深爱好者1 天前
什么容错性以及Spark Streaming如何保证容错性
大数据·分布式·spark
猪猪果泡酒2 天前
spark
spark
weixin_307779132 天前
PySpark实现MERGE INTO的数据合并功能
大数据·python·spark
lucky_syq3 天前
Spark算子:大数据处理的魔法棒
大数据·分布式·spark
D愿你归来仍是少年3 天前
解决Python升级导致PySpark任务异常方案
大数据·开发语言·python·spark