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

news2024/11/14 17:53:16

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
在这里插入图片描述
执行脚本:
bash Anaconda3-2021.05-Linux-x86_64.sh
在这里插入图片描述
不断输入空格, 直至出现以下解压, 然后输入yes
在这里插入图片描述
此时, anaconda需要下载相关的依赖包, 时间比较长, 耐心等待即可…,不要输入多次回车, 在等待中如果需要输入yes/no, 直接输入yes
在这里插入图片描述

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

在这里插入图片描述

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
在这里插入图片描述
#创建虚拟环境后,它应该在 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
在这里插入图片描述

3. Spark Standalone集群环境

在这里插入图片描述
Standalone模式是Spark自带的一种集群模式,不同于前面Local模式,单机启动多线程来模拟集群环境,Standalone模式是真实地在多个机器之间搭建Spark集群的环境,完全可以利用该模式搭建多机器集群,用于实际的大数据处理。

3.1 workers配置

cd /export/server/spark/conf/
cp workers.template workers
vim workers
在这里插入图片描述

3.2 Spark-env环境配置

cd /export/server/spark/conf
cp spark-env.sh.template spark-env.sh
vim spark-env.sh
在这里插入图片描述
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
在这里插入图片描述
cd /export/server/spark/conf
cp log4j.properties.template log4j.properties
vim log4j.properties
在这里插入图片描述

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/
在这里插入图片描述

3.8 连接集群

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

4. Spark高可用集群

多Master模式,其中一个结点为Active,其它结点为Standby。集群需要依赖zookeeper实现Master动态结点的切换
在这里插入图片描述

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信息。
在这里插入图片描述

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/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/659337.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Rust的特征对象

文章目录 Rust的特征对象前言在屏幕上绘制各种UI组件 Rust的特征对象 前言 特征对象不像泛型和impl trait这种零成本抽象,特征对象是在runtime时确定具体类型,有一定的性能开销。当我们需要函数参数是一类实现了特定trait的类型时,这时候就…

4个Camtasia2023隐藏新功能,99%的人都不知道!

在今年5月,全能录屏软件 Camtasia 迎来了2023新版,带来非常多新功能,让制作录屏视频的效果再上一层楼!所有购买过旧版 Camtasia 的老用户,都可以享受优惠升级。 Camtaisa 获取: http://souurl.cn/YWkrO7 更…

【Java高级语法】(六)内部类Inner Class:这可能是史上最全的关于内部类的学习资料~

Java高级语法详解之包装类 :one: 概念:two: 优缺点:three: 使用2.1 成员内部类2.2 局部内部类2.3 匿名内部类2.4 静态内部类2.5 小结:外部类访问四种内部类的特点2.6 小结:其他类访问四种内部类的特点 :four: 内部类与外部类的关系:five: 应用场景:six: …

云贝餐饮连锁独立版 v2.6.1+公众号+小程序端+抖音端端+全插件免授权版安装配置教程

云贝餐饮系统应该持续做好多年了,以前的版本都需要授权一直没使用,优选源码网整体测试下感觉从体验上还有逻辑设计上都非常不错,首页、会员中心支持DIY装修,配送支持多种平台对接,基本上餐饮行业需要的功能都能满足了。…

收件地址解析成 省+市+区+详细地址的形式

项目中的源代码在我的GitHub:https://github.com/weitw/address-analyzer 先看效果: 如上图,address数输入的地址,Address对象是解析后的地址。可以支持逆推上一级,且支持地址白话解析。 一、项目介绍 1、解析规则 …

13年测试老鸟,带你详探服务端的接口测试,测试内卷之路...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 服务器的接口测试…

Tinywebserver项目运行(docker部署mysql)

. 运行项目运行时遇到的一些其他问题重启mysql容器时发现端口被占用 前言 Tinywebserver是github上一个十分优秀的开源项目,帮助初学者学习如何搭建一个服务器. 本文讲述如何在使用docker部署mysql容器的情况下跟该项目进行连接并将项目运行起来,而不是…

萌萌哒的八戒1

拿到了一个图片,根据图片下方的字符,结合远古时期这个提示,想到了古典密码里的猪圈密码 挨个输入得到when the pig want to eat,套上flag

PyTorch 深度学习 || 2. 全连接网络 | Ch2.3 PyTorch 全连接自编码网络的无监督学习

PyTorch 全连接自编码网络的无监督学习 文章目录 PyTorch 全连接自编码网络的无监督学习1. 数据去噪1.1 计算库和数据准备工作1.2 构建自编码网络1.3 调用主函数1.4 可视化 2. 数据的重建与降维2.1 计算模块和数据的准备2.2 自编码网络数据准备2.3 自编码网络的构建2.4 自编码网…

深入理解程序的结构

文章目录 前言一、程序的组成二、未初始化和初始化变量保存地址三、栈什么时候被创建四、内存映射段总结 前言 本篇文章我们来深入的理解一下理解程序的结构。 一、程序的组成 通常情况下,一个可执行程序由以下几个不同的段组成: 1.代码段 (Text Seg…

怎么针对微服务架构做单元测试?

Martin Fowler 是国际著名的软件专家,敏捷开发方法的创始人之一,现为 ThoughtWorks 公司的首席科学家。在面向对象分析设计、UML、模式、软件开发方法学、XP、重构等方面,都扮演着举足 什么是微服务? 微服务的由来 微服务的前身…

笑谈之传统行业的软件测试

最近进入一传统企业做O2O社区,在里面,项目管理一团混乱,上层对软件测试的理解更是匮乏。今天没有技术,仅是对这些现象的吐槽。当然我相信传统行业不都是这样,所以大家仅当笑谈。 产品经理写的需求文档永远是拿来作为做…

cas单点登录 前端步骤流程

CAS(Central Authentication Service)是一个开源的单点登录协议和实现,它提供了一种统一的方法来管理和验证用户身份,使用户只需通过一次登录即可访问多个应用程序。CAS 单点登录的工作原理是基于服务提供者 (Service Provider) 和…

MNIST机器学习入门

引入所需库 import osimport cv2 import matplotlib.pyplot as plt import numpy as np import pandas as pd import tensorflow as tf from PIL import ImageMNIST数据集 下载MNIST数据集 mnisttf.keras.datasets.mnist (x_train, y_train), (x_test, y_test) mnist.load_…

【干货】Android系统定制基础篇:第七部分-Android OTA升级(系统、应用)

OTA升级应用 项目地址:https://github.com/aystshen/Android-RomUpgrade. 这是一个负责 Android OTA 升级的后台应用,开机后自动运行后台 Service,支持系统升级和应用升级,支持本地升级(tf卡、u盘)和在线升…

数据库系统概述——第一章 绪论(知识点复习+练习题)

✨博主:命运之光 🦄专栏:离散数学考前复习(知识点题) 🍓专栏:概率论期末速成(一套卷) 🐳专栏:数字电路考前复习 🦚专栏:数…

Qt 每月收支计算

Qt 每月收支计算,针对每月有支出(房贷、车贷、花呗、借呗)的情况,计算收支明细,直观看到未来的个人经济情况,培养良好的消费习惯,进行理性的财富支配,量入为出。 #include "mai…

云安全技术(三)之云计算相关的安全概念

云计算相关的安全概念 Security Concepts Relevant to Cloud Computing 1. 密码学和密钥管理 Cryptography and key management 1、加密技术: 有许多不同类型和等级的加密技术。在云环境中,云安全专家有责任评价应用程序的需求、所使用的技术、需要保护的数据类型&…

【UE 从零开始制作坦克】5-通过旋转摄像机控制炮塔旋转

效果 步骤 打开动画蓝图“ABP_West_Tank_M1A1Abrams” 我们在动画图表中可以发现控制坦克炮塔旋转和炮管旋转的变量分别是“TurretRotation”和“GunRotattion”,因此只需改变这两个旋转体的值即可控制炮塔和炮管的旋转。 切换到事件图表中,首先通过“T…

单向散列函数【密码学】(一)

目录 一、前言:密码学有什么用? 二、单向散列函数 1、单向函数 2、散列函数 3、单向散列函数 三、怎么解决完整性问题 四、如何设置合适的安全强度 一、前言:密码学有什么用? 二、单向散列函数 单向散列函数就是用来解决…