首页 > 其他分享 >Spark的前瞻--- 数据处理方式,HDFS读写流程,MR计算原理,YRAN资源调度原理,分布式计算框架,spark的开发方式

Spark的前瞻--- 数据处理方式,HDFS读写流程,MR计算原理,YRAN资源调度原理,分布式计算框架,spark的开发方式

时间:2024-10-08 19:47:22浏览次数:10  
标签:HDFS 分布式计算 调度 集群 开发方式 原理 Spark 数据

目录

一,数据处理的方式

1,单机数据处理

2,集群数据储存

1,HDFS的读写流程

 4,分布式资源调度 YRAN

1,YRAN原理图

二,分布式计算框架

1,MapReduce分布式计算

2,Spark分布式计算

spark的部署方式

1,spark资源调度yran模式

三,Spark的开发方式

1,交互式开发

2,脚本式开发


一,数据处理的方式

1,单机数据处理

  依赖单个计算机的资源,处理的数据量较少

  • 在单机环境下,数据处理主要依赖于单个计算机的硬件资源。
  • 常见的单机数据处理工具包括数据库管理系统、电子表格软件等。
  • 单机处理适用于小规模数据量和简单的数据分析任务。
  • 然而,随着数据规模的不断增长,单机处理的局限性逐渐显现,如处理速度慢、存储容量有限等。

2,集群数据储存

  • 为了应对大规模数据的存储需求,集群数据存储应运而生。
  • 它通过将数据分布存储在多个节点上,实现了高容量、高可靠性的数据存储。
  •   采用分布式技术
  •   分布式存储服务 HDFS
    •     主:NameNode
    •     从:DataNode
    •     辅:SecondaryNameNode

1,HDFS的读写流程

  • HDFS(Hadoop Distributed File System)是一种广泛应用的分布式文件系统。
  • 在 HDFS 中,数据被分割成多个数据块,并存储在不同的节点上。
  • 读操作时,客户端首先向 NameNode 请求数据块的位置信息,然后直接从相应的 DataNode 读取数据。
  • 写操作时,客户端将数据分割成数据块,并向 NameNode 请求存储位置,然后将数据块写入多个 DataNode。
  • HDFS 通过数据冗余机制保证了数据的可靠性,即使某个节点出现故障,数据仍然可以从其他节点恢复。

写 

 4,分布式资源调度 YRAN

  • 主:ResourceManger

  • 从:NodeMarnger

  • 管家:ApplicatioMaster

  • YARN(Yet Another Resource Negotiator)是 Hadoop 中的资源管理和调度框架。
  • 它负责管理集群中的计算资源,包括 CPU、内存和磁盘等,并将这些资源分配给不同的应用程序。
  • YARN 主要由 ResourceManager 和 NodeManager 组成。
  • ResourceManager 负责全局资源管理和调度,
  • 而 NodeManager 负责管理单个节点上的资源,并执行由 ResourceManager 分配的任务。

1,YRAN原理图

  • YARN 的原理图展示了其主要组件和工作流程。
  • ResourceManager 接收来自客户端的应用程序提交请求,
  • 并将任务分配给各个 NodeManager。NodeManager 负责启动和管理容(Container),
  • 容器中运行着具体的应用程序任务。
  • YARN 通过这种方式实现了资源的高效管理和调度,提高了集群的利用率和性能。

大数据相关的技术基本都采用分布式

  • 海豚调度器

  • presto

  • Zookeeper

二,分布式计算框架

1,MapReduce分布式计算

  • MapReduce 是一种经典的分布式计算框架,它将大规模数据处理任务分解为 Map 和 Reduce 两个阶段。
  • 在 Map 阶段,数据被分割成多个小块,并在不同的节点上进行并行处理。每个 Map 任务将输入数据转换为键值对的形式,并输出中间结果。
  • 在 Reduce 阶段,相同键的值被聚合在一起,并进行进一步的处理和计算。
  • MapReduce 具有良好的可扩展性和容错性,适用于大规模数据的批处理任务

  MR原理图

  • mapreduce分为两个部分,map阶段和reduce阶段;

  • map的数量默认根据block块决定的,在map切片的时候默认会根据block的大小开始切片,当然也可以更改;

  • reduce默认是根据计算的数据量自动决定产生多少个reduce,在hive中计算的时候,也可以手动更改设置;

2,Spark分布式计算

  • Spark 是一种快速、通用的分布式计算框架。
  • 与 MapReduce 相比,Spark 具有更高的性能和更丰富的功能。
  • Spark 支持内存计算,可以将数据缓存在内存中,从而大大提高数据处理的速度。
  • 此外,Spark 还提供了丰富的 API,包括 Spark SQL、Spark Streaming、Spark MLlib 等,可以满足不同类型的数据分析和处理需求。

spark的部署方式

  • locat本地模式

在本地模式下,Spark 运行在单个节点上,通常用于开发和测试。所有的计算任务都在本地机器的单个 JVM 中执行。

 

优点:

 
  • 易于设置和调试,不需要复杂的集群配置。
  • 快速启动和运行,方便进行小规模数据的实验和验证。
  • Standaone spark自带的资源调度

独立模式下,Spark 构建自己的独立集群环境,不依赖于其他外部集群管理系统。

 

优点:

 
  • 相对容易部署和管理,对于小型到中型规模的集群比较适用。
  • 可以对资源进行一定程度的控制和管理。
  • Yran 使用hadoop的资源调度

YARN(Yet Another Resource Negotiator)是 Hadoop 中的资源管理系统。Spark 可以运行在 YARN 之上,充分利用 Hadoop 集群的资源管理功能。

 

优点:

 
  • 可以与 Hadoop 生态系统中的其他组件(如 HDFS、MapReduce 等)集成,实现资源的统一管理和共享。
  • 适用于大型企业级 Hadoop 集群环境,具有较好的可扩展性和稳定性。
  • Mesos上部署

Mesos 是一个通用的集群资源管理系统,Spark 也可以运行在 Mesos 之上。

 

优点:

 
  • Mesos 提供了灵活的资源分配策略,可以更好地适应不同类型的应用程序。
  • 支持多种不同的框架在同一集群上运行,提高资源利用率。

 

1,spark资源调度yran模式

三,Spark的开发方式

1,交互式开发

  • Spark 提供了交互式开发环境,
  • 如 Spark Shell 和 Jupyter Notebook。
  • 在交互式开发中,用户可以直接在命令行或 notebook 中输入 Spark 代码,并立即看到结果。
  • 这种开发方式非常适合数据探索和快速原型开发。
  • 用户可以通过交互式开发环境快速尝试不同的数据分析方法和算法,提高开发效率。
  • 在linux中以命令行的方式 执行计算

  • 通过不同的方式进入不同的语言进行交互式界面

    • Sparksql

    • Pyspark

    • sparkR

    • Java

    • scala

  • 代码不能持久化保存,一般用作测试

2,脚本式开发

  • 对于大规模的数据分析和处理任务,通常需要使用脚本式开发。
  • 在脚本式开发中,用户使用编程语言(如 Scala、Python 或 Java)编写 Spark 应用程序,并将其打包成可执行的 JAR 文件或 Python 脚本。
  • 然后,用户可以在集群上运行这些脚本,实现大规模数据的分布式处理。
  • 脚本式开发具有更好的可维护性和可扩展性,可以满足复杂的数据分析和处理需求。
  • 把编写的代码保存在文件,对代码文件进行运行并实现spark的计算

  • 使用IDE工具进行代码文件的编写

  • 公司中都是采用脚本式开发

标签:HDFS,分布式计算,调度,集群,开发方式,原理,Spark,数据
From: https://blog.csdn.net/qq_55006020/article/details/142747163

相关文章

  • 51单片机的自动烘手器【proteus仿真+程序+报告+原理图+演示视频】
    1、主要功能 该系统由AT89C51/STC89C52单片机+LCD1602显示模块+温度传感器+红外传感器+时钟模块+继电器+LED和按键等模块构成。适用于智能干手器、智能烘干器、自动感应烘干器等相似项目。可实现功能:1、LCD1602实时显示当前日期、时间和环境温度2、温度传感器DS18B20采......
  • Ribbon负载均衡原理、负载均衡策略以及懒加载
    目录负载均衡流程问题分析执行流程底层源码分析进入LoadBalancerInterceptor进入ClientHttpRequestInterceptor重新回到LoadBalancerInterceptor负载均衡策略通过定义IRule实现可以修改负载均衡规则代码方式配置文件方式饥饿加载总结负载均衡流程问题分析or......
  • StarRocks基本架构原理
    概念StarRocks是新一代高性能分析型数据仓库,支持实时、多维、高并发的数据分析;StarRocks支持从各种数据源进行实时和批量数据推流,它还允许您直接分析存储在数据湖中的数据,无需数据迁移StarRocks非常适合对新数据进行实时分析。可以高速摄取数据,并实时更新和删除数据场景St......
  • GUI图形界面 无代码开发 原理 - 属性标识链 | uiotos致敬amis、nodered、appsmith、co
    低代码饱受争议。也有例外:后端NodeRed,前端Amis。整体还是诟病为主:简单业务可以,复杂的是扯淡,不论前后端。这是一贯的认知。在GUI方面,UIOTOS发明的嵌套技术,为复杂前端的无代码开发,开辟了一条新的思路。往期文章:可视化拖拉拽?过时了!组态零代码,不能做复杂前端?嵌套原理一复杂交互......
  • 计算机组成原理核心考点
    参次结构机器级包括汇编语言及机器语言通过编译器将预处理文件转化为汇编语言时,就是将高级语言转化为机器级目标代码文件的过程,分水岭是编译程序编码大小补码:FFFx=FFFF-[FFFF-(16-x)]=x-16FFxy=FFFF-[FFFF-(256-x16-y)]=x16+y-256补码负数的表示法他们为了继续使用模......
  • 深度学习中的注意力机制:原理、应用与发展
    一、引言在深度学习领域,注意力机制(AttentionMechanism)已经成为一种极为重要的技术手段。它的出现使得模型能够像人类一样,在处理大量信息时聚焦于关键部分,从而提高模型的性能和效率。从自然语言处理到计算机视觉等多个领域,注意力机制都展现出了卓越的能力,极大地推动了深度......
  • 在K8S中,kube-proxy ipvs原理是什么?
    在Kubernetes(K8S)中,kube-proxy的IPVS模式是一种高性能的负载均衡解决方案,它利用Linux内核的IPVS(IPVirtualServer)功能来实现服务的负载均衡。以下是kube-proxy在IPVS模式下的工作原理:监听API服务器:kube-proxy启动后会持续监听KubernetesAPI服务器上的Service资源......
  • 在K8S中,kube-proxy iptables原理是什么?
    在Kubernetes中,kube-proxy使用不同模式来实现其功能,其中iptables模式是早期广泛使用的模式之一。下面详细介绍kube-proxy使用iptables模式的基本原理。1.iptables原理概述iptables是Linux内核的一部分,用于定义网络封包过滤规则。它是一个用户空间的应用程序,用来设......
  • 浏览器的渲染原理
    浏览器渲染原理五个渲染流程Parse阶段:解析HTMLStyle阶段:样式计算三个阶段:收集,划分和索引所有样式表中存在的样式规则访问每个元素并找到适用于该元素的所有规则,CSS引擎遍历DOM节点,进行选择器匹配,并且匹配的节点执行样式设置结合层叠规则和其他信息为节点生成最......
  • React Fiber 原理
    ReactFiber在React16之前的版本对比更新VirtualDOM的过程是采用Stack架构实现的,也就是循环加递归,这种方式的问题是一旦任务开始进行就无法被中断。如果应用中的组件数量庞大,VirtualDOM的层级比较深,主线程被长期占用,知道整颗VirtualDOM树比对更新完成之后主线程才......