PySpark集群环境安装(HA-Standalone模式)

PySpark是Python中的一个库, 由Spark官方提供. 专供用户使用Python语言操作Spark

1. 首先安装python环境

基于anaconda的虚拟环境方案,来安装python。因为anaconda可以虚拟出多个Python环境, 且各个环境相对独立,能够解决python版本的兼容性问题

1.1 anaconda版本选择

https://www.anaconda.com/download#downloads

1.2 anaconda安装

anaconda三台机器都需要安装, 以下演示在node1安装, 其余两台机器安装和配置一样

cd /export/software
上传Anaconda脚本到Linux
PySpark集群环境安装(HA-Standalone模式)_第1张图片
执行脚本:
bash Anaconda3-2021.05-Linux-x86_64.sh
PySpark集群环境安装(HA-Standalone模式)_第2张图片
不断输入空格, 直至出现以下解压, 然后输入yes
PySpark集群环境安装(HA-Standalone模式)_第3张图片
此时, anaconda需要下载相关的依赖包, 时间比较长, 耐心等待即可…,不要输入多次回车, 在等待中如果需要输入yes/no, 直接输入yes
PySpark集群环境安装(HA-Standalone模式)_第4张图片

1.3 配置anaconda的环境变量:

vim /etc/profile
##增加如下配置

export ANACONDA_HOME=/root/anaconda3/bin
export PATH=$PATH:$ANACONDA_HOME/bin

重新加载环境变量: source /etc/profile

修改bashrc文件
sudo vim ~/.bashrc
添加如下内容:

export PATH=~/anaconda3/bin:$PATH

1.4 启动anaconda并测试

注意: 请将当前连接node1的节点窗口关闭,然后重新打开,否则无法识别,输入 Python启动:
在这里插入图片描述
如果命令行最前面出现了 (base) 信息, 可以通过以下方式, 退出Base环境
vim ~/.bashrc
添加: conda deactivate

1.5 基于python环境启动spark

PySpark集群环境安装(HA-Standalone模式)_第5张图片

2. pyspark库的安装

./pyspark客户端启动后,即使没有安装pyspark,也可以用使用python语言操作spark,这是因为Spark安装环境中集成了pyspark

但我们利用pycharm工具使用python环境在本地编码时,需要在linux-node1的python环境中安装pyspark库。(pycharm工具连接远端python环境完成编码工作)

2.1 直接安装PySpark

使用PyPI安装PySpark如下:也可以指定版本安装
pip install pyspark==3.1.2

或者指定清华镜像(对于网络较差的情况):
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyspark==3.1.2 # 指定清华镜像源

2.2 本地安装包安装pyspark

先将pyspark上传到node1 /export/software
cd /export/software
pip install pyspark-3.1.2.tar.gz

2.3 基于Anaconda安装pyspark

#从终端创建新的虚拟环境pyspark_env
conda create -n pyspark_env python=3.8
PySpark集群环境安装(HA-Standalone模式)_第6张图片
#创建虚拟环境后,它应该在 anaconda 环境列表下不可见,可以使用以下命令查看
conda env list

#使用以下命令激活新创建的环境:
source activate pyspark_env
或者
conda activate pyspark_env
在这里插入图片描述

在新创建的环境中通过使用pip安装pyspark。
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyspark==3.1.2

或者,可以从 Conda 本身安装 PySpark
conda install pyspark==3.1.2
PySpark集群环境安装(HA-Standalone模式)_第7张图片

3. Spark Standalone集群环境

PySpark集群环境安装(HA-Standalone模式)_第8张图片
Standalone模式是Spark自带的一种集群模式,不同于前面Local模式,单机启动多线程来模拟集群环境,Standalone模式是真实地在多个机器之间搭建Spark集群的环境,完全可以利用该模式搭建多机器集群,用于实际的大数据处理。

3.1 workers配置

cd /export/server/spark/conf/
cp workers.template workers
vim workers
PySpark集群环境安装(HA-Standalone模式)_第9张图片

3.2 Spark-env环境配置

cd /export/server/spark/conf
cp spark-env.sh.template spark-env.sh
vim spark-env.sh
PySpark集群环境安装(HA-Standalone模式)_第10张图片
Jdk,hadoop, yarn的路径, 需要配置为自己的路径.History配置中, 需要指定hdfs的地址, 其中端口号为8020或者9820, 需要参考hdfs上对应namenode的通信端口号

3.3 spark应用日志配置

第一步: 在HDFS上创建应用运行事件日志目录:
hdfs dfs -mkdir -p /sparklog/
第二步: 配置spark-defaults.conf
cd /export/server/spark/conf
cp spark-defaults.conf.template spark-defaults.conf
vim spark-defaults.conf
PySpark集群环境安装(HA-Standalone模式)_第11张图片
cd /export/server/spark/conf
cp log4j.properties.template log4j.properties
vim log4j.properties
PySpark集群环境安装(HA-Standalone模式)_第12张图片

3.4 分发配置到其它机器

cd /export/server/conf
scp -r spark-3.1.2-bin-hadoop3.2/conf/ node2:$PWD
scp -r spark-3.1.2-bin-hadoop3.2/conf/ node3:$PWD

3.6 启动和关闭集群

主节点上启动集群

/export/server/spark/sbin
start-all.sh

主节点上停止集群

/export/server/spark/sbin
stop-all.sh

3.7 WEBUI界面

http://node1.itcast.cn:8080/
PySpark集群环境安装(HA-Standalone模式)_第13张图片

3.8 连接集群

[root@node1 bin]# pyspark --master spark://node1:7077

4. Spark高可用集群

多Master模式,其中一个结点为Active,其它结点为Standby。集群需要依赖zookeeper实现Master动态结点的切换
PySpark集群环境安装(HA-Standalone模式)_第14张图片

4.1 spark-env.sh配置

node1、node2、node3三台机器配置

vim spark-env.sh
注释或删除MASTER_HOST内容:
SPARK_MASTER_HOST=node1

增加以下配置:
SPARK_DAEMON_JAVA_OPTS="
-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=node1:2181,node2:2181,node3:2181
-Dspark.deploy.zookeeper.dir=/spark-ha"

spark.deploy.recoveryMode:恢复模式
spark.deploy.zookeeper.url:ZooKeeper的Server地址
spark.deploy.zookeeper.dir:保存集群元数据信息的文件、目录。包括Worker、Driver、Application信息。
PySpark集群环境安装(HA-Standalone模式)_第15张图片

4.2启动集群

/export/server/spark/sbin
start-all.sh

先启动集群的结点Master为活跃状态,再单独启动一个master为standby状态

/export/server/spark/sbin
start-master.sh

4.3 WEBUI界面

http://node1.itcast.cn:8080/
http://node2.itcast.cn:8080/

你可能感兴趣的:(数据计算与分析组件,python,spark)