spark学习

news2025/3/15 11:48:39

standalone环境部署

1.standalone架构

standalone是完整的spark运行环境,其中:Master角色以Master进程存在,Worker角色以Woker进程存在,Driver角色在运行时存在Master进程内,Executeor运行在Worker进程内

standalone集群在进程上主要由3类进程:

  1. 主节点master进程
  2. 从节点Workers节点
  3. 历史服务器HistoryServer进程
    spark Application运行完成以后,保存事件日志数据到HDFS,启动HistoryServer可以查看应用运行相关信息

在这里插入图片描述

2.安装standalone环境

1. 安装Python(Anaconda)

  • 上传: 资料中提供的Anaconda3-2021.05-Linux-x86_64.sh文件到Linux服务器上
  • 安装执行命令:sh ./Anaconda3-2021.05-Linux-x86_64.sh
  • 退出终端,然后在进入终端,前面就会出现:(base) [root@node2 ~]#
  • 配置国内数据源
vim ~/.condarc

将下面的数据填写到这个文件中

channels:
  - defaults
show_channel_urls: true
default_channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
  conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  • 创建虚拟环境
conda create -n pyspark python=3.8
  • 切换到虚拟环境
conda activate pyspark
  • 将安装包发送到另一台服务器上
scp -r Anaconda3-2021.05-Linux-x86_64.sh node3:`pwd`/
  • 通过克隆虚拟器,修改主机名
hostnamectl set-hostname node1

2.spark安装

  • 上传spark-3.2.0-bin-hadoop3.2.tgz文件到linux上
  • 解压文件
tar -zxvf spark-3.2.0-bin-hadoop3.2.tgz -C /export/server/
  • 由于spark目录名称很长, 给其一个软链接
ln -s /export/server/spark-3.2.0-bin-hadoop3.2 /export/server/spark

3.配置环境变量

vim /etc/profile
export SPARK_HOME=/export/server/spark
export PYSPARK_PYTHON=/export/server/anaconda3/envs/pyspark/bin/python3.8
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop

3台机器分别配置

vim ~/.bashrc
export JAVA_HOME=/export/server/jdk
export PYSPARK_PYTHON=/export/server/anaconda3/envs/pyspark/bin/python3.8

3.测试

1.启动spark

cd /export/server/spark/bin
./pyspark

2.计算

sc.parallelize([1,2,3,4,5]).map(lambda x:x*10).collect()

Spark on yarn模式

1.spark on yarn本质

在这里插入图片描述
Driver可以运行在容器中,也可以在spark提交客户端上

2.配置spark on yarn环境

打开spark-env.sh文件

vim spark/conf/spark-env.sh

添加下面的内容

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

注意:hadoop集群和yarn集群要启动
启动spark on yarn集群:

bin/pyspark --master yarn

3.spark on yarn运行模式

spark on yarn有两种模式:cluster和client两种模式

cluster模式client模式
Driver运行位置YARN容器内客户端进程内
通讯效率低于cluster模式
日志查看日志输出在YARN容器内,查看不方便日志输出在客户端标准输出流内,查看方便
生产可用推荐不推荐
稳定性稳定不稳定

运行命令:

# 默认就是这种模式,再添加一些性能参数
bin/spark-submit --master yarn --deploy-mode client --driver-memory 512m --executor-memory 512m --num-executors 3 --total-executor-cores 3 /export/server/spark/examples/src/main/python/pi.py 100

4.spark on yarn运行细节

在这里插入图片描述

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

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

相关文章

前缀和,差分算法理解

前缀和是什么: 前缀和指一个数组的某下标之前的所有数组元素的和(包含其自身)。前缀和分为一维前缀和,以及二维前缀和。前缀和是一种重要的预处理,能够降低算法的时间复杂度 说个人话就是比如有一个数组: …

【408真题】2009-13

“接”是针对题目进行必要的分析,比较简略; “化”是对题目中所涉及到的知识点进行详细解释; “发”是对此题型的解题套路总结,并结合历年真题或者典型例题进行运用。 涉及到的知识全部来源于王道各科教材(2025版&…

【NumPy】NumPy与Pandas集成应用:数据处理的强强联合

🧑 博主简介:阿里巴巴嵌入式技术专家,深耕嵌入式人工智能领域,具备多年的嵌入式硬件产品研发管理经验。 📒 博客介绍:分享嵌入式开发领域的相关知识、经验、思考和感悟,欢迎关注。提供嵌入式方向…

从git上拉取项目进行操作

1.Git的概念 Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。它实现多人协作的机制是利用clone命令将项目从远程库拉取到本地库,做完相应的操作后再利用push命令从本地库将项目提交至远程库。 2.Git的工作流程…

mysql 删除特殊字符 表中存了特殊字符 换行符 回车符 word字符 查询不到

省流: UPDATE t1 SET f1 REPLACE(REPLACE( f1 , CHAR(10), ), CHAR(13), ); 用 replace() 函数将 换行符char(10) 和 回车符char(13) 替换为空字符串。 char(10):换行 char(13):回车 发现表里存进很多换行符,如下图&#xff1a…

【知识拓展】ngrok-高性价比的内网穿透工具

前言 使用google colab运行的web应用无法打开进行测试。 第一时间想到是否有相关工具能将内网映射到外网供访问。于是找到了ngrok。 ngrok 是什么,我们为什么要使用它? ngrok官网是一个全球分布的反向代理,无论您在哪里运行,它…

vue3 <script setup> 语法糖时间组件

<template><div><p>当前时间Current Time: {{ currentTime }}</p></div> </template><script setup> import { ref, onBeforeUnmount, onMounted } from vueconst currentTime ref()let interval // 声明 interval 变量const getTo…

二叉树OJ题目

一.二叉树第k层结点个数 有这样的一个思路&#xff1a;我既然要求第k层的结点个数&#xff0c;我肯定是要用到递归&#xff0c;那么当我在递归到第k层的时候我就开始判断&#xff0c;这一层是不是我所需要的那一层&#xff0c;如果是&#xff0c;就计数有几个节点&#xff0c;…

IDEA中好用的插件

IDEA中好用的插件 CodeGeeXMybatis Smart Code Help ProAlibaba Java Coding Guidelines​(XenoAmess TPM)​通义灵码常用操作 TranslationStatisticGrep Console CodeGeeX 官网地址&#xff1a;https://codegeex.cn/ 使用手册&#xff1a;https://zhipu-ai.feishu.cn/wiki/Cu…

cocosCreator动态生成二维码

cocosCreator 版本&#xff1a;3.7.2 开发语言&#xff1a;typeScript 我们在游戏开发中&#xff0c;经常会生成一个专属于玩家个人的二维码&#xff0c;比如说推广、充值等功能。 接到这个任务&#xff0c;在网上找了下&#xff0c;还是有很多教程的。但是这些教程大部分都是用…

虚拟化技术[3]之网络虚拟化

网络虚拟化 网络虚拟化简介核心层网络虚拟化接入层网络虚拟化虚拟机网络虚拟化案例: VMware网络虚拟化技术虚拟网络接口卡虚拟交换机vSwitch分布式交换机端口组VLAN 网络虚拟化简介 传统的数据中心&#xff1a;服务器之间操作系统和上层软件异构、接口与数据格式不统一&#x…

微信小程序连接阿里云快速入门【物联网】

一、前言 1.1 项目背景 随着5G的逐渐普及&#xff0c;万物互联的浪潮已经席卷而来。在万物互联的场景下&#xff0c;如何实现设备之间的互联互通&#xff0c;成为了一个亟待解决的问题。 微信小程序作为一款轻量级的小程序开发框架&#xff0c;以其简洁的语法和丰富的组件库…

【制作100个unity游戏之26】unity2d横版卷轴动作类游13(附带项目源码)

最终效果 系列导航 文章目录 最终效果系列导航前言存储点灯光后处理存储位置信息存储更多数据存储场景信息持久化存储数据引入Unity 的可序列化字典类调用 游戏结束源码完结 前言 欢迎来到【制作100个Unity游戏】系列&#xff01;本系列将引导您一步步学习如何使用Unity开发各…

C++原创人工智能QPBS01G大功告成!!!

俗话说得好&#xff0c;你周五周六不写作业&#xff0c;要上学了才着急了 我之前的版本bug太多&#xff0c;结果这两天晚上改的我两眼发白&#xff0c;太烦人了 这次这娃学聪明了&#xff0c;遇到不会的问题上网搜&#xff0c;我还更新了反骂人骂人功能&#xff0c;第一次测试…

学习_C语言下使用ringbuffer实现任意数据类型的FIFO

思考及注意看&#xff1a;调试中的任意。 https://www.cnblogs.com/dreamboy2000/p/12982423.html

LeetCode392:判断子序列

题目描述 给定字符串 s 和 t &#xff0c;判断 s 是否为 t 的子序列。 字符串的一个子序列是原始字符串删除一些&#xff08;也可以不删除&#xff09;字符而不改变剩余字符相对位置形成的新字符串。&#xff08;例如&#xff0c;"ace"是"abcde"的一个子…

AIGC001-latent-diffusion(SD)第一次让文生图如此生动有趣!

AIGC001-latent-diffusion(SD)第一次让文生图如此生动有趣&#xff01; 文章目录 0 论文工作1 论文方法2 效果 0 论文工作 通过将图像形成过程分解为去噪自编码器的连续应用&#xff0c;扩散模型&#xff08;DMs&#xff09;实现了对图像数据等方面的最先进的综合结果。这些方…

STM32手写超频到128M函数

今天学习了野火的STM32教程学会了如何设置STM32的时钟频率&#xff0c;步骤比较详细&#xff0c;也很容易理解&#xff0c;就是视频教程不能跳着看&#xff0c;只能一节节的看&#xff0c;不然会知识不连贯&#xff0c;造成有些知识不理解&#xff0c;连续着看还是没有什么难度…

Spring的FactoryBean多例问题

关于spring bean&#xff0c;我们了解的最多的还是单例&#xff0c;而多例bean,除了平时我们自己new的那些多实例外&#xff08;但不属于IOC管理了&#xff09;&#xff0c;几乎很少能用到&#xff0c;而在spring 层面&#xff0c;FactoryBean刚好是多例的一个体现&#xff0c;…

Java中流的概念细分

按流的方向分类&#xff1a; 输入流&#xff1a;数据流向是数据源到程序&#xff08;以InputStream、Reader结尾的流&#xff09;。 输出流&#xff1a;数据流向是程序到目的地&#xff08;以OutputStream、Writer结尾的流&#xff09;。 按处理的数据单元分类&#xff1a; 字…