day02-Spark集群及参数

news2024/11/24 8:53:06

一、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.coloradmin.cn/o/1877603.html

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

相关文章

[方法] Unity 3D模型与骨骼动画

1. 在软件中导出3D模型 1.1 3dsmax 2014 1.1.1 TGA转PNG 3dsmax的贴图格式为tga,我们需要在在线格式转换中将其转换为Unity可识别的png格式。 1.1.2 模型导出 导出文件格式为fbx。在导出设置中,要勾选三角算法,取消勾选摄像机和灯光&#…

海康车牌识别 报警回调后程序崩溃

我用的32位 6.1.9版本SDK 回调会导致程序崩溃 咨询了下海康官方技术 答复如下:(此答复我没尝试 自行尝试 我的解决方法是更换了老版本 5.3版本 没什么问题 个人资源中有 自行下载

grpc学习golang版( 四、多服务示例 )

系列文章目录 第一章 grpc基本概念与安装 第二章 grpc入门示例 第三章 proto文件数据类型 第四章 多服务示例 第五章 多proto文件示例 第六章 服务器流式传输 第七章 客户端流式传输 第八章 双向流示例 文章目录 一、前言二、定义proto文件三、编写server服务端四、编写Client客…

【漏洞复现】安美数字酒店宽带运营系统——命令执行漏洞(CNVD-2021-37784)

声明:本文档或演示材料仅供教育和教学目的使用,任何个人或组织使用本文档中的信息进行非法活动,均与本文档的作者无关。 文章目录 漏洞描述漏洞复现测试工具 漏洞描述 安美数字酒店宽带运营系统 server_ping.php 存在远程命令执行漏洞&#…

3.3V到5V的负电源产生电路(电荷泵电压反相器)SGM3204输出电流0.2A封装SOT23-6

前言 SGM3204 非稳压 200mA 电荷泵负电源产生电路,LCEDA原理图请访问资源 SGM3204电荷泵负电源产生电路 SGM3204电荷泵负电源产生电路 一般描述 SGM3204从 1.4V 至 5.5V 的输入电压范围产生非稳压负输出电压。 该器件通常由 5V 或 3.3V 的预稳压电源轨供电。由于…

OpenGL3.3_C++_Windows(19)

Demo演示 1 几何着色器 几何Geometry glsl 发生在什么阶段? 图形渲染管线: 顶点数据——顶点着色器阶段——图元装配;(Geometry glsl )——光栅化阶段——裁切——片段着色器——测试和混合可选的Geometry几何着色器(…

龙芯久久派到手开机测试

今天刚拿到龙芯久久派,没看到文档,只有视频,我来写个博客,做个记录,免得以后忘记 1.连接usb转ttl串口与龙芯久久派,如图所示。 2.将usb转串口接到电脑USB口 也就是这个接电脑上 3.打开串口调试助手或Secu…

前端路由管理

前端路由管理简介: 当谈到前端路由管理时,通常指的是在单页面应用程序(SPA)中管理页面间导航和URL的过程。路由管理器是一个工具,可以帮助前端开发者定义应用程序的不同视图之间的关系,同时能够响应URL的改…

广东省钟表行业协会第十二届会员大会暨2024年钟表行业发展交流会

6月25日广东省钟表行业协会第十二届会员大会暨2024年钟表行业发展交流会在广州万富希尔顿酒店隆重召开。大会选举沙胜昔为广东省钟表行业协会第十二届理事会会长。 领导发言 新任会长 沙胜昔 首席荣誉会长 吴伟阳 新老会长交接仪式 本次大会,全国钟表大伽齐参与…

美业门店管理系统中收款门店对应的加盟商如何查看?美业系统源码、演示视频分享私

专业的美业系统更加贴合美业门店的经营需求,提供了更全面、便捷、高效的管理功能,有助于提升门店的服务质量和经营效益。博弈美业系统包括PC、iPad、手机、小程序四大端口,满足不同人群的各种需求。 ▶ 收款门店对应的加盟商如何查看&#xf…

找不到d3dcompiler_43.dll无法继续执行的修复指南

在电脑使用过程中,我们可能会遇到一些错误提示,其中之一就是“缺失d3dcompiler43.dll”。那么,这个错误提示到底是怎么回事呢?小编将从常见原因、对电脑的影响以及解决方法等方面进行详细解析。 一,了解d3dcompiler_43…

【高性能服务器】单进程服务器

🔥博客主页: 我要成为C领域大神🎥系列专栏:【C核心编程】 【计算机网络】 【Linux编程】 【操作系统】 ❤️感谢大家点赞👍收藏⭐评论✍️ 本博客致力于知识分享,与更多的人进行学习交流 ​ 单进程服务器 …

OLMo:真正完全开源的大模型

最近,又有一家机构AI2(Allen Institute for AI)开源了一个LLM:OLMo,它的英文全称就叫Open Language Model。相比之前开源的大模型,OLMo的独特之处是完全开源,除了训练的模型,OLMo还开…

2-requests模块(6节课学会爬虫)

2-requests模块(6节课学会爬虫) 1,安装requests2,发送get,post请求,获取响应3,response的方法方法一(Response.text)方法二(response.content.decode()&#…

综合评价 | 基于组合博弈赋权的物流系统综合评价(Matlab)

目录 效果一览基本介绍程序设计参考资料 效果一览 基本介绍 综合评价 | 基于组合博弈赋权的物流系统综合评价(Matlab) 组合博弈赋权(Weighted Sum)是一种常见的多目标决策方法,用于将多个目标指标进行综合评估和权衡…

【子串】3. 无重复的最长子串

3. 无重复的最长子串 难度:中等难度 力扣地址:https://leetcode.cn/problems/longest-substring-without-repeating-characters/description/ 题目看起来简单,刷起来有好几个坑,特此记录一下,解法比官网的更加简单&…

Json与Java类

简介 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。JSON数据由键值对构成,并以易于阅读的文本形式展现,支持数组、对象、字符串、数字、布尔值…

全国31省细分产品出口数据集(2002-2022年)

数据简介:整理全国31个省直辖市自治区按hs码分的22类细分产品的出口数据,只包含22类的细分,不包含更细的类目。可用来计算出口产品质量,出口产品技术复杂度等指标,数据区间为2002-2022年。 数据名称:31省细…

安卓开发自定义时间日期显示组件

安卓开发自定义时间日期显示组件 问题背景 实现时间和日期显示,左对齐和对齐两种效果,如下图所示: 问题分析 自定义view实现一般思路: (1)自定义一个View (2)编写values/attrs.…

【小学期】常用基于Swing的七个静态界面

示例1:基本的带按钮和标签的界面 import javax.swing.*; import java.awt.*;public class SimpleSwingApp1 {public static void main(String[] args) {JFrame frame new JFrame("Simple Swing App 1");frame.setDefaultCloseOperation(JFrame.EXIT_ON_C…