一篇文章带你了解数据处理方式(单机数据处理、集群数据处理)、分布式计算框架、Spark的分布式计算、多任务以及进程和线程的区别

1. 数据处理方式

1.1 单机数据处理

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

优点

  • 无需联网,数据安全性相对较高,不易受网络攻击影响。
  • 处理速度可能较快,尤其是对于小型数据集,可直接在本地设备快速响应。

缺点

  • 处理能力有限,难以应对大规模数据和复杂计算任务。
  • 数据无法共享和同步,协作性差。
  • 资源利用率低,不能充分利用其他设备的计算资源。

1.2 集群数据处理

集群数据处理方式是指利用多台计算机组成的集群来协同处理大量数据。

  • 采用分布式技术
  • 分布式存储服务 HDFS
    • 主 NameNode
    • 从 DataNode
  • 分布式资源调度Yarn
    • 主 ResourceManager
    • 从 NodeManager
  • 大数据相关的技术基本都是采用分布式
    • 借助分布式服务实现海量数据处理
      在这里插入图片描述

优点:

  • 高效性:可以快速处理大规模数据,提高处理速度。
  • 可扩展性:能够根据需求增加计算资源,适应不断增长的数据量。
  • 可靠性:通过冗余和备份机制,提高系统的稳定性和可靠性。

缺点:

  • 复杂性:集群系统的搭建和管理较为复杂,需要专业知识和技能。
  • 成本高:包括硬件、软件和维护成本,可能较高。
  • 数据一致性问题:在分布式环境下,确保数据的一致性可能具有一定挑战。

2. 分布式计算框架(MapReduce)

在这里插入图片描述
在这里插入图片描述

  • MapReduce采用的是多任务方式(进程)进行分布式计算,每个计算任务运行在不同的服务器上。
  • MapReduce包含Map和Reduce两个部分,两个部分分别以进程的方式运行。
  • Map运行的数量由谁决定?
    • 默认情况下,split切割的数据会给到Map,而split默认切割一个块的数据,因此,一个块对应一个Map
  • Reduce运行数量?
    • 默认情况下,根据计算的数据量自动决定产生多少个reduce。
    • hive在进行计算时,可以通过set进行设置。
    • 指定的reduce个数决定了分区数 ,分区数和reudce个数是一致的。
  • ApplicationMaster管理MapReduce的计算。

3. Spark的分布式计算

Spark 主要有以下几种部署方式:

3.1 本地模式(Local模式)

本地模式下,Spark 运行在单个节点上,通常用于开发和测试。它可以方便地进行快速原型开发和调试,无需复杂的集群设置。

优点:

  1. 简单易用,无需配置复杂的集群环境。
  2. 启动快速,方便进行代码调试和测试。

缺点:

  1. 只能利用本地单一节点的资源,处理能力有限。

3.2 独立模式(Standalone模式)

独立模式是 Spark 自带的一个简单的集群管理器,可以在一个独立的集群中运行 Spark 应用程序。

优点:

  1. 相对容易部署和管理,不依赖于其他外部集群管理器。
  2. 可以根据需求灵活配置和扩展集群。

缺点:

  1. 相比一些更复杂的集群管理器,功能可能相对有限。

3.3 YARN 模式

借助 Hadoop YARN(Yet Another Resource Negotiator)进行资源管理和调度,Spark 应用程序可以在已有的 Hadoop 集群上运行。

优点:

  1. 可以与 Hadoop 生态系统集成,充分利用 Hadoop 集群的资源管理和调度功能。
  2. 支持大规模集群部署,可扩展性强。

缺点:

  1. 配置相对复杂,需要对 Hadoop 和 YARN 有一定的了解。

3.4 Mesos 模式

Apache Mesos 是一个通用的集群管理器,Spark 可以在 Mesos 上运行以实现资源的高效分配和管理。

优点:

  1. 提供了高可扩展性和资源隔离性。
  2. 能够有效地管理多种不同类型的应用程序。

缺点:

  1. 安装和配置相对复杂。

4. 多任务

多任务是指在一个系统中同时执行多个任务的能力
以下从不同方面为你解释多任务:

4.1 计算机领域

计算机系统中,多任务表现为可以同时运行多个程序或进程。例如,你可以一边用文字处理软件编辑文档,一边播放音乐,还可以在后台进行文件下载。

  1. 分时多任务:操作系统将 CPU 的时间划分成极短的时间片,轮流分配给各个任务。每个任务在一个时间片内执行一小段时间,然后切换到下一个任务,由于切换速度非常快,给用户的感觉是多个任务在同时进行。
  2. 多线程:一个程序可以包含多个线程,每个线程都可以独立执行不同的任务。比如一个网络浏览器可以同时下载多个网页资源、渲染页面和响应用户操作,这些不同的工作可以由不同的线程来完成。

4.2 人类认知领域

人类也具有一定的多任务处理能力。

  1. 同时进行多项活动:比如一边走路一边打电话,或者一边听音乐一边做家务。但人类的多任务处理能力是有限的,与计算机不同,人类在同时进行多项任务时,往往不能像计算机那样高效和精确。
  2. 注意力分配:当进行多任务时,需要分配注意力到不同的任务上。然而,注意力资源是有限的,如果任务过于复杂或需要高度集中注意力,可能会导致任务之间的干扰,降低执行效率和质量。

4.3 工作和生活场景

在工作和生活中,多任务处理常常是必要的。

  1. 提高效率:合理安排多任务可以在一定时间内完成更多的工作。例如,在等待会议开始的时候回复一些邮件,或者在做饭的间隙整理厨房。
  2. 应对复杂情况:现代生活节奏快,各种任务和需求层出不穷。具备多任务处理能力可以更好地应对复杂的情况,提高生活和工作的灵活性。

总之,多任务在不同领域有着不同的表现和意义,但无论是计算机还是人类,在进行多任务处理时都需要考虑任务的性质、资源的限制以及效率和质量的平衡。

4.4 进程和线程区别

  • 进程是计算时分配资源的最小单位
    • 如果要执行一个计算任务,是按照进程分配资源。
    • 运行时,需要先创建进程,一个进程就有一份资源。
  • 线程是执行计算任务的最小单位
    • 线程依赖进程的资源,没有进程就没有线程。
    • 默认情况下一个进程中包含一个线程,使用线程执行任务。
  • 多进程的执行效率没有多线程的执行效率高
    • 创建进程资源需要花费时间。
    • spark的执行速度比MapReduce的速度快。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值