Spark的前瞻--- 数据处理方式,HDFS读写流程,MR计算原理,YRAN资源调度原理,分布式计算框架,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工具进行代码文件的编写

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值