day02-Spark集群及参数

一、Spark运行环境变量问题(了解)

1-pycharm远程开发运行时,执行的是服务器的代码

2-通过本地传递指令到远程服务器运行代码时,会加载对应环境变量数据,加载环境变量文件是用户目录下的.bashrc文件

在/etc/bashrc

1-1 在代码中添加

使用os模块在代码中添加环境变量

from pyspark import SparkContext
import os
​
# 这里可以选择本地PySpark环境执行Spark代码,也可以使用虚拟机中PySpark环境,通过os可以配置
os.environ['JAVA_HOME'] = '/export/server/jdk'
​
​
sc = SparkContext()
​
data = [1,2,3,4]
​
rdd = sc.parallelize(data)
​
res = rdd.reduce(lambda x,y:x+y)
​
print(res)

1-2 在用户环境文件中添加

在用户的环境变量文件中添加

当运行远程代码文件时,会读取/root/.bashrc文件中配置的信息

export JAVA_HOME=/export/server/jdk

使用os模块指定,每次代码文件中都要指定

使用bashrc只需要指定一次

二、集群下Spark的使用(掌握)

集群使用:Cluster Mode Overview - Spark 3.5.1 Documentation

2-1 Standalone模式

使用spark自带的standalone资源调度服务

  • node1启动服务

 /export/server/spark/sbin/start-all.sh
  • standalone服务角色介绍

    • master 类似yarn中的ResourceManger 负责管理整资源服务

    • worker 类似yarn 中Nodemanager 负责将每台机器上的资源给到计算任务

  • standalone的资源调度页面

    • http://192.168.88.100:8080/

  • 交互开发 :指定使用standalone进行资源调度

pyspark  --master spark://node1:7077
  • 脚本式开发

from pyspark import SparkContext
​
# master参数可以指定调用的资源服务
#  使用standalone资源调度
sc = SparkContext(master='spark://node1:7077')

2-2 yarn模式

  • 启动服务

/export/server/hadoop/sbin/start-yarn.sh
  • yanr的服务角色

    • ResourceManger

    • Nodemanager

  • yarn的资源调度页面

    • http://192.168.88.100:8088/

  • 交互开发 :指定使用yarn进行资源调度

    • 需要启动hdfs

    • start-dfs.sh

pyspark  --master yarn
  • 脚本开发

from pyspark import SparkContext
# 没有指定任何参数,使用本地local模式
sc = SparkContext()
​
# master参数可以指定调用的资源服务
# 使用yarn资源调度
sc = SparkContext(master='yarn')

2-3 不同运行模式总结

  • 交互式

# 没有任何指定,采用是local模式,调用的是本机资源无法使用集群资源,相当于是单机计算
pyspark
​
# 使用standalone资源调度 需要启动standalone服务
pyspark  --master spark://node1:7077
​
# 使用yarn资源调度,高可用的使用方式一样  需要启动yarn服务
pyspark  --master yarn
  • 脚本式

    • 在代码中指定

from pyspark import SparkContext
​
# 没有指定任何参数,使用本地local模式
sc = SparkContext()
​
# master参数可以指定调用的资源服务
#  使用standalone资源调度
sc = SparkContext(master='spark://node1:7077')
​
# 使用yarn资源调度
sc = SparkContext(master='yarn')
​

实际开发只需要选择一种方式即可,公司中主要使用yarn

2-4 集群模式下运行流程

  • 运行计算任务生成dirver程序

  • 在dirver中生成sparkcontext对象

  • 通过sparkcontext中方法向资源调度服务器申请资源

  • 找对应的资源节点创建executor进程

  • executor创建后会通知sparkcontext

  • sparkcontext分配计算任务task到对应的executor执行,每个task就是一个线程

三、Spark的历史日志服务(掌握)

历史日志用来产看spark计算任务运行情况

  • 启动hadoo

    • start-all.sh

  • 启动

/export/server/spark/sbin/start-history-server.sh
  • 执行计算任务

  • 访问历史日志页面

    • 计算任务运行期间

      • http://192.168.88.100:4040/

    • 计算任务结束后

      • http://192.168.88.100:18080/

四、spark的指令参数(熟悉)

使用spark指令时可以通过参数方式配置相关spark的信息

4-1 书写格式

pyspark --参数 参数值

4-2 参数说明

 pyspark --help

# 表示应用运行的模式,要么是本地local要么是集群(Standalone、YARN、Mesos)了
--master MASTER_URL
# 本地模式∶local[2]  数字表示可以使用到本地的cpu核心数据量,  loacl[*]  *表示自动判断
# Standalone集群∶spark∶//xxx∶7077,yyy∶7077 
# YARN 集群∶ yarn 
​
# 表示的是应用运行的名称,通常在应用开发的时候指定
--name NAME 
​
# 表示应用运行时指定的某些参数配置,http∶//spark.apache.org/docs/2.2.0/configuration.html
# 当value中值有空格组成的时候,使用双引号将key=value引起来
# 可以不用在bashrc写配置可以通过conf配置,每次运行都要指定很麻烦
--conf "PROP=VALUE"
# 第一种方式∶属性的值中没有空格
--conf spark.eventLog.enabled=false
# 第二种方式∶属性的值中有空格,将属性和值统一使用双引号引起来
--conf"spark.executor.extraJavaOptions=-XX:+PrintGCDetails -XX:+PrintGCTimestamps"
​
​
# Driver相关配置  对driver一般不用配置
# 指定Driver Program JVM进程内存大小,默认值为1g
--driver-memory MEM
​
# 表示Driver 运行CLASS PATH路径,使用不多
--driver-class-path
​
# Spark standalone with cluster deploy mode∶运行在standalone 中cluster Deploy Mode 默认值为1  cpu核心数据
# 运行在YARN in cluster mode,默认值是1 
--driver-cores NUM 
​
​
# Executor运行所需内存大小
--executor-memory MEM 
​
# Execturo 运行的CPU Cores,默认的情况下,在Standalone集群上为worker节点所有可有的CpuCores,在YARN集群下为2
--executor-cores NUM
​
# 表示运行在Standalone集群下,所有Executor的CPU Cores,结合--executor-cores计算出Executor个数
--total-executor-cores
​
# 表示在YARN集群下,Executor的个数,默认值为2
--num-executors
​
​
# 表示Drive Program运行的地方,也叫做应用部署模式,默认值为client,通常在生产环境中使用cluster
--deploy-mode DEPLOY_MODE

4-3 参数演示

  • 指定名称

pyspark  --name itcast
  • 指定配置信息

pyspark --master yarn --name itcast_conf --conf 'spark.sql.shuffle.partitions=100'

  • 指定运行资源

pyspark --master yarn  --name yarn_demo   --num-executors 3 --executor-cores 2

五、spark-submit提交方式(熟悉)

一般是在代码上线部署使用spark-submit提交运行代码

Submitting Applications - Spark 3.5.1 Documentation

采用该方式运行提交代码,dirver的运行位置有资源调度服务决定

spark-submit [指令参数]  Python文件或java文件

5-1 部署模式参数

# 表示Drive Program运行的地方,也叫做应用部署模式,
# 默认值为client,通常在生产环境中使用cluster
--deploy-mode DEPLOY_MODE
  • 两种模式区别

    • dirver在哪里运行

      • clinet模式:dirver是在提交代码的服务器上运行,该方式是默认方式,不指定是就采用client模式

      • cluster模式:dirver由资源的调度服务找到对应服务器上运,在该模式下必须指定master,选择资源调度服务

5-2 clinet模式指定

spark-submit  --master yarn   /root/spark_demo/main.py

5-3 cluster 模式

spark-submit  --master yarn --deploy-mode cluster   /root/spark_demo/main.py

六 端口

Hadoop

  • web页面访问

    • hdfs 9870

    • yarn 8088

    • history 19888

  • 程序服务访问

    • hdfs 8020

CDH访问端口

  • 7180

Spark

  • 采用standalone

    • web端口 8080

  • 历史日志

    • 运行期间 4040

    • 运行结束 18080

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

文本编辑命令和正则表达式

一、 编辑文本的命令 正则表达式匹配的是文本内容,Linux的文本三剑客,都是针对文本内容。 文本三剑客 grep:过滤文本内容 sed:针对文本内容进行增删改查 (本文不相关) awk:按行取列 &#x…

【网络架构】keepalive

目录 一、keepalive基础 1.1 作用 1.2 原理 1.3 功能 二、keepalive安装 2.1 yum安装 2.2 编译安装 三、配置文件 3.1 keepalived相关文件 3.2 主配置的组成 3.2.1 全局配置 3.2.2 配置虚拟路由器 四、实际操作 4.1 lvskeepalived高可用群集 4.2 keepalivedngi…

element 问题整合

没关系,凡事发生必有利于我 文章目录 一、el-table 同级数据对齐及展开图标的位置问题二、el-table 勾选框为圆角及只能勾选一个三、el-tree 弹框打开,使得列表关闭,且弹框滚动条回到顶部 一、el-table 同级数据对齐及展开图标的位置问题 ele…

Facebook的投流技巧有哪些?

相信大家都知道Facebook拥有着巨大的用户群体和高转化率,在国外社交推广中的影响不言而喻。但随着Facebook广告的竞争越来越激烈,在Facebook广告上获得高投资回报率也变得越来越困难。IPIDEA代理IP今天就教大家如何在Facebook上投放广告的技巧&#xff0…

使用 Ubuntu x86_64 平台交叉编译适用于 Linux aarch64(arm64) 平台的 QT5(包含OpenGL/WebEngine支持) 库

使用 Ubuntu AMD64 平台交叉编译适用于 Linux ARM64 平台的 QT5(包含 OpenGL/WebEngine 支持) 库 目录 使用 Ubuntu AMD64 平台交叉编译适用于 Linux ARM64 平台的 QT5(包含 OpenGL/WebEngine 支持) 库写在前面前期准备编译全流程1. 环境搭建2. 复制源码包并解压,创…

响应式高端家居装修网站源码pbootcms模板

模板介绍 分享一款黄色的响应式高端家居装修网站源码pbootcms模板,该模板能自适应手机端,响应式的设计可让您自由编辑,适合任何关于装修,空间设计,家装,家居等业务的企业。 模板截图 源码下载 响应式高端…

C++——探索智能指针的设计原理

前言: RAII是资源获得即初始化, 是一种利用对象生命周期来控制程序资源地手段。 智能指针是在对象构造时获取资源, 并且在对象的声明周期内控制资源, 最后在对象析构的时候释放资源。注意, 本篇文章参考——C 智能指针 - 全部用法…

已解决问题 | 该扩展程序未列在 Chrome 网上应用店中,并可能是在您不知情的情况下添加的

在Chrome浏览器中,如果你看到“该扩展程序未列在 Chrome 网上应用店中,并可能是在您不知情的情况下添加的”这样的提示,通常是因为该扩展程序没有通过Chrome网上应用店进行安装。以下是解决这个问题的步骤: 解决办法:…

计算机网络知识整理笔记

目录 1.对网络协议的分层? 2.TCP/IP和UDP之间的区别? 3.建立TCP连接的三次握手? 4.断开TCP连接的四次挥手? 5.TCP协议如何保证可靠性传输? 6.什么是TCP的拥塞控制? 7.什么是HTTP协议? 8…

MySQL高级-SQL优化- limit优化(覆盖索引加子查询)

文章目录 0、limit 优化0.1、从表 tb_sku 中按照 id 列进行排序,然后跳过前 9000000 条记录0.2、通过子查询获取按照 id 排序后的第 9000000 条开始的 10 条记录的 id 值,然后在原表中根据这些 id 值获取对应的完整记录 1、上传5个sql文件到 /root2、查看…

【工具推荐】ONLYOFFICE 桌面编辑器 8.1:引入全新功能,提升文档处理体验

ONLYOFFICE 桌面编辑器 8.1 现已发布:功能完善的 PDF 编辑器、幻灯片版式、改进从右至左显示、新的本地化选项等 【工具推荐】ONLYOFFICE 桌面编辑器 8.1:引入全新功能,提升文档处理体验 一、什么是ONLYOFFICE? ONLYOFFICE 是…

PG备份与恢复

一、开启WAL归档 1、创建归档目录 我们除了存储数据目录pgdata之外,还要创建backups,scripts,archive_wals文件 mkdir -p /home/mydba/pgdata/arch mkdir -p /home/mydba/pgdata/scripts mkdir -p /home/mydba/backups chown -R mydba.myd…

API接口知识小结

应用程序接口API(Application Programming Interface),是提供特定业务输出能力、连接不同系统的一种约定。这里包括外部系统与提供服务的系统(中后台系统)或后台不同系统之间的交互点。包括外部接口、内部接口&#xf…

ANSYS Electronics 电磁场仿真工具下载安装,ANSYS Electronics强大的功能和灵活性

ANSYS Electronics无疑是一款在电磁场仿真领域表现卓越的软件工具。它凭借强大的功能和灵活性,帮助用户在产品设计阶段就能精确预测和优化电磁场性能,从而极大地降低了实际测试成本,并显著提升了产品的可靠性。 这款软件不仅在电子设计领域有…

Python | Leetcode Python题解之第204题计数质数

题目: 题解: MX5000000 is_prime [1] * MX is_prime[0]is_prime[1]0 for i in range(2, MX):if is_prime[i]:for j in range(i * i, MX, i):#循环每次增加iis_prime[j] 0 class Solution:def countPrimes(self, n: int) -> int:return sum(is_prim…

如何利用ChatGPT改善日常生活:一个普通人的指南

当你打开 ChatGPT,显现的是一个简洁的聊天界面。 许多人利用 ChatGPT 进行日常对话。 然而,ChatGPT 的功能远不止于此。 对话只是其众多能力中的一种,如果仅将其视为高级版的聊天机器人,那未免低估了它。 AI 在信息处理方面的…

【SpringMVC】_SpringMVC实现留言墙

目录 1. 需求分析 2. 接口定义 2.1 提交留言 2.2 获取全部留言 3. 响应数据 4. 服务器代码 4.1 MessageInfo 文件 4.2 MessageController 文件 5. 前端页面代码 5. 运行测试 1. 需求分析 实现如下页面: 1、输入留言信息,点击提交后&#xff0…

【算法专题--链表】两数相加 -- 高频面试题(图文详解,小白一看就懂!!)

目录 一、前言 二、题目描述 三、解题方法 ⭐双指针 -- 模拟进位 (使用哨兵位头节点) 🥝 什么是哨兵位头节点? 🍇思路解析 🍍案例图解 四、总结与提炼 五、共勉 一、前言 两数相加 这道题,可以说是--…

如何用一个二维码实现企业固定资产管理?

固定资产管理中普遍存在盘点难、家底不清、账实不一致、权责不清晰等问题。如果平时不规范化执行,年终面对上上下下、大大小小、成百上千件物资要进行盘点整理的时候,会是十分痛苦且低效的事情。 今天这篇文章就来给大家推荐几家便宜好用的二维码固定资…

CST--如何在PCB三维模型中自由创建离散端口

在使用CST电磁仿真软件进行PCB的三维建模时,经常会遇到不能自动创建离散端口的问题,原因有很多,比如:缺少元器件封装、开路端口、多端子模型等等,这个时候,很多人会选择手动进行端口创建,但是&a…