大数据知识点

发布时间:2024年01月17日

Spark:

Spark RDD的概念:

RDD是Spark中最基本的数据抽象,是一个不可变、可分区、里面的元素可并行计算的集合。它代表一个只读的分区记录集合,每个RDD可以分成多个分区,每个分区就是一个数据集片段,并且一个RDD的不同分区可以被保存到集群中不同的节点上,从而可以在集群中的不同节点上进行并行计算。

RDD具有数据流模型的特点,包括自动容错、位置感知性调度和可伸缩性。具体来说,RDD允许用户在执行多个查询时显式地将工作集缓存在内存中,后续的查询能够重用工作集,这极大地提升了查询速度。

检查点机制:

RDD的检查点机制是为了提高容错性和降低故障恢复时间而设置的。通过检查点,可以将RDD的数据保存到持久化存储中,以便在RDD分区丢失或计算节点出现故障时进行恢复。

检查点机制的实现方式是将RDD写入磁盘或其他持久化存储中,并记录其Lineage(血统)关系。

检查点机制可以有效地减少故障恢复时间,并且可以避免全量重算的情况,从而提高计算效率

需要注意的是,检查点机制会增加磁盘I/O和存储开销

Stage:

Spark中的Stage主要是一组并行的任务,每个Stage由一组并行的task组成。这些task是RDD中Partition的执行单元,每个task处理RDD中的一个Partition。

Spark中的Stage有两种类型:宽依赖和窄依赖。窄依赖是指父RDD的每个分区只对应一个子RDD的分区,宽依赖是指父RDD的一个分区对应多个子RDD的分区,这种依赖关系会导致需要shuffle操作,从而使得数据处理效率相对较低。

在Spark中,可以通过合理地组织Stage和task的执行顺序,以及优化宽依赖和窄依赖的处理方式,来提高数据处理效率。

DataFrame:

在Spark中,DataFrame是一种特殊类型的分布式数据表,它以表的形式组织数据,并且包含一组有序的列。与传统的关系型数据库中的表格类似,DataFrame可以包含多种数据类型,如整数、浮点数、字符串等。

与RDD相比,DataFrame提供了更加结构化的数据模型,使得数据处理更加高效和便捷。DataFrame具有以下特点:

  1. 结构化:DataFrame具有明确的列名和数据类型,使得数据处理更加规范和易于理解。
  2. 类型安全:Spark可以检查DataFrame中列的数据类型,并在运行时进行类型转换和验证,避免了类型错误的可能性。
  3. 优化性能:Spark对DataFrame进行了优化,使得数据处理更加高效。
  4. 统一的数据处理方式:Spark中DataFrame的API和SQL API可以互操作,使得数据处理更加灵活和方便。用户可以使用Scala、Python、Java、R等语言编写Spark应用程序,并使用统一的API进行数据处理。

YARN:

YARN的架构:

YARN是Hadoop 2.0中的资源管理系统

YARN的基本架构分为ResourceManager和NodeManager两部分。ResourceManager作为整个集群的全局资源管理器,负责整个集群的资源分配和调度,而NodeManager则负责单个节点上的资源管理和任务执行。

YARN的基本思想:YARN的基本思想是将资源管理和作业调度以及监控的功能拆分为单独的守护进程。这种架构思想是拥有一个全局的ResourceManager(RM)和每个应用程序的·ApplicationMaster(AM)。

YARN的优点:

  1. 更好的扩展性:YARN采用了分布式架构,能够随着集群规模的扩大而实现无缝扩展,从而满足大规模数据处理的需求。

  2. 更高的资源利用率:YARN采用了先进的调度算法和策略,可以根据应用程序的需求和系统资源的情况进行动态调整,从而最大化系统的资源利用率和作业的执行效率。

  3. 更灵活的作业调度:YARN的作业调度采用了有向无环图的方式,可以处理各种类型的计算任务,包括批处理、流处理、图处理

  4. 更强的容错能力:YARN具有自动故障检测和恢复机制

  5. 更丰富的接口和工具:YARN提供了丰富的API接口和工具

YARN的缺点:

YARN的缺点主要包括以下几点:

  1. 资源利用率不均:由于YARN是基于Hadoop的,因此其资源利用率并不高,有些资源可能会被闲置,导致资源浪费。

  2. 配置复杂:YARN的配置相对复杂,需要具备一定的Hadoop基础知识和经验,对于初学者来说可能会有一定的门槛。

  3. 数据局部性差:YARN的资源调度和任务分配是分离的,这会导致数据局部性较差,从而影响数据处理效率。

  4. 社区活跃度不高:尽管YARN是一个相对成熟的大数据处理框架,但其社区活跃度并不高,这可能会影响到YARN的长期发展以及用户的使用体验。

  5. 与其他系统的兼容性差:YARN主要适用于Hadoop生态系统,与其他系统的兼容性可能并不理想,这可能会限制YARN的应用范围。

Hbase

Hbase存在的意义:.

HBase是一个高可靠、高性能、面向列、可伸缩的分布式数据库,是谷歌BigTable的开源实现。HBase主要用来存储非结构化和半结构化的松散数据,并且适用于海量数据存储以及分布式计算的场景。

HBase适用于以下场景:

  1. 海量数据存储:适用于TB至PB级以上的数据存储,提供动态伸缩能力,方便用户在性能或容量需要改变时,改变集群资源,轻松构建企业海量数据存储系统。
  2. 实时查询:HBase的列式KV存储机制,适用于企业用户明细数据即席查询,基于主键的低时延点查,响应时延一般为秒级或毫秒级,方便用户对数据的实时分析。

综上所述,HBase存在的意义在于提供了一个稳定可靠、性能卓越、可伸缩、面向列的分布式云存储系统,适用于海量数据存储以及分布式计算的场景。

Hbase的原理:

  1. 数据模型:HBase采用基于列的存储方式,将数据表划分为多个行和列,行称为行键(Row Key),列称为列族(Column Family)。
  2. 数据存储:HBase将数据存储在HDFS中,以HDFS的块为单位进行数据的读写操作
  3. 数据检索:HBase提供基于行键的随机访问方式,用户通过行键可以快速查找到指定的数据项。
  4. 分布式存储:HBase通过分布式存储技术实现了数据的扩展性和可靠性。
  5. 数据复制:HBase采用基于Master-Slave架构的数据复制机制
文章来源:https://blog.csdn.net/qq_63781342/article/details/135638830
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。