Spark StandAlone环境部署

1、集群规划

使用三台Linux虚拟机来组成集群环境, 非别是:

node1\ node2\ node3

node1运行: Spark的Master进程 和 1个Worker进程

node2运行: spark的1个worker进程

node3运行: spark的1个worker进程

在所有机器安装Python(Anaconda):参考:Anaconda On Linux安装_沉默鹰_90的博客-CSDN博客

在所有机器配置环境变量:参考(以下文档的3、4点;Spark先不要安装,最后从node1分发即可):

Spark安装及测试_沉默鹰_90的博客-CSDN博客

2、配置文件设置

(base) [root@node1 bin]# cd /export/server/spark/conf

3、配置workers文件

# 改名, 去掉后面的.template后缀
(base) [root@node1 bin]# mv workers.template workers

# 编辑worker文件
(base) [root@node1 bin]# vim workers
# 将里面的localhost删除, 追加
node1
node2
node3
到workers文件内

# 功能: 这个文件就是指示了 当前SparkStandAlone环境下, 有哪些worker

4、配置spark-env.sh文件 

# 1. 改名
(base) [root@node1 bin]# mv spark-env.sh.template spark-env.sh

# 2. 编辑spark-env.sh, 在底部追加如下内容

## 设置JAVA安装目录
JAVA_HOME=/export/server/jdk1.8.0_241

## HADOOP软件配置文件目录,读取HDFS上文件和运行YARN集群
HADOOP_CONF_DIR=/export/server/hadoop-3.3.0/etc/hadoop
YARN_CONF_DIR=/export/server/hadoop-3.3.0/etc/hadoop

## 指定spark老大Master的IP和提交任务的通信端口
# 告知Spark的master运行在哪个机器上
export SPARK_MASTER_HOST=node1
# 告知sparkmaster的通讯端口
export SPARK_MASTER_PORT=7077
# 告知spark master的 webui端口
SPARK_MASTER_WEBUI_PORT=8080

# worker cpu可用核数
SPARK_WORKER_CORES=1
# worker可用内存
SPARK_WORKER_MEMORY=1g
# worker的工作通讯地址
SPARK_WORKER_PORT=7078
# worker的 webui地址
SPARK_WORKER_WEBUI_PORT=8081

## 设置历史服务器
# 配置的意思是  将spark程序运行的历史日志 存到hdfs的/sparklog文件夹中
SPARK_HISTORY_OPTS="-Dspark.history.fs.logDirectory=hdfs://node1:8020/sparklog/ -Dspark.history.fs.cleaner.enabled=true"

注意, 上面的配置的路径 要根据你自己机器实际的路径来写

History配置中, 需要指定hdfs的地址, 其中端口号为8020或者9820, 大家需要参考hdfs上对应namenode的通信端口号Spark StandAlone环境部署_第1张图片

 

在HDFS上创建程序运行历史记录存放的文件夹:

(base) [root@node1 conf]# hadoop fs -mkdir /sparklog
(base) [root@node1 conf]# hadoop fs -chmod 777 /sparklog

查看文件夹是否创建成功

(base) [root@node1 conf]# hadoop fs -ls /

5、配置spark-defaults.conf文件 

# 1. 改名
(base) [root@node1 conf]# mv spark-defaults.conf.template spark-defaults.conf

# 2. 修改内容, 追加如下内容
# 开启spark的日期记录功能
spark.eventLog.enabled     true
# 设置spark日志记录的路径
spark.eventLog.dir     hdfs://node1:8020/sparklog/ 
# 设置spark日志是否启动压缩
spark.eventLog.compress     true

 6、配置log4j.properties 文件 [可选配置]

# 1. 改名
(base) [root@node1 conf]# mv log4j.properties.template log4j.properties

# 2. 修改内容 参考下图

Spark StandAlone环境部署_第2张图片

这个文件的修改不是必须的,  为什么修改为WARN. 因为Spark是个话痨

会疯狂输出日志, 设置级别为WARN 只输出警告和错误日志, 不要输出一堆废话.

7、将Spark安装文件夹  分发到其它的服务器上 

(base) [root@node1 server]# scp -r spark-3.2.0-bin-hadoop3.2 node2:/export/server/

(base) [root@node1 server]# scp -r spark-3.2.0-bin-hadoop3.2 node3:/export/server/ 

不要忘记, 在node2和node3上 给spark安装目录增加软链接

(base) [root@node2 server]#ln -s /export/server/spark-3.2.0-bin-hadoop3.2 /export/server/spark

(base) [root@node3 server]#ln -s /export/server/spark-3.2.0-bin-hadoop3.2 /export/server/spark

8、启动历史服务器

(base) [root@node1 spark]#sbin/start-history-server.sh

9、启动Spark的Master和Worker进程(/export/server/spark文件下执行)

# 启动全部master和worker
(base) [root@node1 spark]# sbin/start-all.sh

# 或者可以一个个启动:
# 启动当前机器的master
(base) [root@node1 spark]# sbin/start-master.sh
# 启动当前机器的worker
(base) [root@node1 spark]# sbin/start-worker.sh

# 停止全部
(base) [root@node1 spark]# sbin/stop-all.sh

# 停止当前机器的master
(base) [root@node1 spark]# sbin/stop-master.sh

# 停止当前机器的worker
(base) [root@node1 spark]# sbin/stop-worker.sh

10、查看Master的WEB UI 

 http://node1:8080/ 

默认端口master我们设置到了8080

如果端口被占用, 会顺延到8081 ...;8082... 8083... 直到申请到端口为止

可以在日志中查看, 具体顺延到哪个端口上:

Service 'MasterUI' could not bind on port 8080. Attempting port 8081.

你可能感兴趣的:(软件安装,spark,linux,hadoop)