栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

大数据各个模型框架的介绍

大数据各个模型框架的介绍

文章目录
  • 一 、大数据框架
    • 1、大数据概述
    • 2、大数据框架分类
  • 二、数据存储层框架
    • 1、HDFS
      • 1)优缺点
      • 2)NameNode
      • 3)DateNode
    • 2、Hbase
      • 1)数据模型
      • 2)数据管理
    • 3、Hive
      • 1)优缺点
      • 2)Hive元数据(metastore)
    • 4、kafka
  • 三、数据处理层框架
    • 1、Spark
    • 2、Flink
      • 1)Job Manager
      • 2)Task Manager
      • 3) Client
  • 四、调度管理层框架
    • 1、Yarn
      • 1)ResourceManager
      • 2)ApplicationMaster
      • 3)NodeManage
    • 2、Oozie
      • 1)Workflow
      • 2) Coordinator
      • 3)Bundle Job
    • 3、Zookeeper
    • 4、Flume
      • 1.Agent
        • 2.Source
      • 3.Sink
      • 4.Channel
      • 5.Event

一 、大数据框架 1、大数据概述

什么是大数据技术,大数据技术主要应用于那些方面。大数据主要用于解决传统业务无法解决的问题,大数据按照数据的流动过程可以分为数据清洗工程师(ETL)、数据仓库建立的数据仓库工程师和基于数据仓库的进行数据仓库的数据开发的大数据开发工程师。
大数据按照其处理数据的时效性,可以将数据分为离线数据处理和实时数据处理。按照数据的处理方式,可以将数据分为批处理和流处理。
由于数据的处理方式不同,数据所包含的数据的复杂性,因此诞生了很多大数据框架。

2、大数据框架分类

大数据诞生至今,诞生了很多大数据框架,因此诞生出了很多框架生态。其中,按照数据存储的形式:可以将大数据分为数据仓库生态和数据湖生态。按照数据处理的实效性,可以将数据分为Spark生态和Flink生态。
目前来说应用最广泛的,生态最完善的Hadoop生态,其中包括有其低廉价的数据存储体系HDFS、其作业上传下载的MapReduce和资源管理框架Yarn。其次就是基于hudi、iceberg和Delta lake的数据湖生态。
基于上述可知,按照数据流的处理,可以将大数据框架可以分为Spark生态和Flink生态。其中,基于批处理和伪实时处理的Spark的生态,其包括Spark和Spark Stream等。、
基于实时处理Flink的生态。、
下面,我将从以下三个层面来介绍大数据框架:
1、数据存储层: 这一层主要实现数据的存储以及转换
2、数据处理层: 这一层主要实现基于数据仓库或者数据湖数据进行相应的清洗置换建立模型
3、调度管理层: 这一层主要实现数据的在处理过程中的资源调度等操作

二、数据存储层框架 1、HDFS

HDFS的诞生来源于一篇谷歌发布的论文《Google File System》,由于传统数据的数据量随着项目的开展不断变大,仅在一台机器上难以进行存储管理。因此诞生了一个多平台存储技术的HDFS。他可以运行在廉价的存储介质上,理论上其很难达到毫秒级别的存储。

1)优缺点

优点: 高容错性;数据存储量大;廉价等
**缺点:**无法对小文件存储;无法做到低延时等

2)NameNode

NameNode类似于我们常用的数据库的DBMS系统,它主要是用来管理HDFS系统的命名空间等功能,管理数据块的映射信息。我们通常用NameNode的数量来判断其Hadoop集群的大小。

3)DateNode

DateNode是数据存储的单元,Hadoop在默认的时候设置DateNode的数据备份个数为三个,HDFS的高容错性就是依赖这种存储方式。HDFS默认的单体存储体的大小为128mb大小。

2、Hbase


Hbase是一种分布式的、可扩展的NoSQL数据库。

1)数据模型

类似于Redis数据,Hbase也是一种NoSQL数据库。其基本数据存储模型分为以下六种:
1.Name Space(命名空间): Hbase中的命名空间的类似于关系型数据库的Database的概念。
2.Region(列族): Hbase中的Region存储方式类似于数据库中的数据表概念。
3.Row(行): 该数据模型类似于Python中的字典方式,Hbase每行数据都利用行关键字和列组成
4.Column(列): Hbase中每条列是由列族和列修饰符组成
5.Time Stamp(时间戳): 时间戳主要用于区别数据版本,当插入数据时Hbase为每条数据插入一个时间戳。
6.Cell(单元): ceil单元是数据存储的单元,是由行关键字、列关键字、列修饰符和时间戳进行唯一标识确定。

2)数据管理

Hbase是一种NoSQL数据库,其本身不具有DBMS管理系统,因此其对于数据的管理依赖于其他组件。例如:Zookeeper等框架

3、Hive


Hive主要用于解决海量结构化日志的数据统计工具。Hive 处理的数据存储在HDFS,Hive 分析数据底层的实现是MapReduce,执行程序运行在Yarn 上。Hive的数据操作通过类SQL语句的HQL进行执行,因此HIve对于数据的处理相对来说比较简单。

1)优缺点

1.优点: Hive提供了类似SQL的操作语言HQL,与此同时Hive减少开发人员开发MapReduce,Hive还提供用户自定义数据类似。
2.缺点: Hive延时较高 ,不适合应用于实时场景。Hive不适合处理小文件数据,迭代式算法无法实现。

2)Hive元数据(metastore)

元数据就是一种描述数据的数据,Hive的元数据由以下部分组成:
1.表名: 类似于数据数据库中的数据表,用于标识数据所在数据表
2.表所属的数据库 类似于关系数据库中的Database,一个数据库下可以存放多个数据表,默认是default
3.表的拥有者: 用于标志数据表的所有者
4.列/分区字段: 类似于关系型数据库中的字段,用于区别数据类型也用于数据查找的关键字
5.表的类型: 该字段主要用于区分是数据表是否是外部表
6.表的数据所在目录 标志数据表存放地址,可以方便用户查找相应数据

4、kafka


Kafka 是一个分布式的基于发布/订阅模式的消息队列(Message Queue),主要应用于
大数据实时处理领域。
Kafka具有以下特点:

  1. 高吞吐量、低延迟:kafka每秒可以处理几十万条消息,它的延迟最低只有几毫秒。
  2. 可扩展性:kafka集群支持热扩展。
  3. 持久性、可靠性:消息被持久化到本地磁盘,并且支持数据备份防止数据丢失。
  4. 容错性:允许集群中节点故障(若副本数量为n,则允许n-1个节点故障)。
  5. 高并发:支持数千个客户端同时读写。
三、数据处理层框架

现在流行的大数据计算框架主要为Spark和Flink两种,其他的大数据计算框架都是基于这两个计算引擎进行二次开发得到的,例如阿里的计算框架Blink等,关于数据处理层框架,我将介绍Spark和Flink这两个框架

1、Spark


Spark是一种基于内存的快速、通用、可扩展的大数据分析计算引擎。Spark是一个功能强大的开源框架,其一开始Spark是为了批量处理大数据应运而生,因此其在批处理上具有得天独厚的优势,但是其对于大数据的实时处理相应级别为秒级,因此其在实时处理上具有一定的局限性。Spark现在作为一个适用最广泛的一个大数据计算框架,其内部集成了大量的内置模块:
1、Spark Core: 实现了Spark的基本功能,包含任务调度、内存管理、错误恢复、与存储系统交互等模块。Spark Core中还包含了对弹性分布式数据集(Resilient Distributed DataSet,简称RDD)的API定义。
2、Spark SQL: 是Spark用来操作结构化数据的程序包。通过Spark SQL,我们可以使用 SQL或者Apache Hive版本的HQL来查询数据。Spark SQL支持多种数据源,比如Hive表、Parquet以及JSON等。
3、Spark Streaming: 是Spark提供的对实时数据进行流式计算的组件。提供了用来操作数据流的API,并且与Spark Core中的 RDD API高度对应。
4、Spark MLlib: 提供常见的机器学习功能的程序库。包括分类、回归、聚类、协同过滤等,还提供了模型评估、数据 导入等额外的支持功能。
5、Spark GraphX: 主要用于图形并行计算和图挖掘系统的组件。
6、集群管理器: Spark设计为可以高效地在一个计算节点到数千个计算节点之间伸缩计算。为了实现这样的要求,同时获得最大灵活性,Spark支持在各种集群管理器(Cluster Manager)上运行,包括Hadoop YARN、Apache Mesos,以及Spark自带的一个简易调度器,叫作独立调度器。

2、Flink


Apache Flink是一个框架和分布式处理引擎,用于对无界和有界数据流进行有状态计算。Flink被设计在所有常见的集群环境中运行,以内存执行速度和任意规模来执行计算。Flink是一个典型的事件驱动的流处理框架,其数据处理的响应级别为毫秒级别的。其核心组件为:

1)Job Manager

Job Manager:主进程(也称作业管理器)协调和管理程序的执行。

2)Task Manager

Task Manager是从JVM中接收的执行的工作节点

3) Client

当用户提交一个Flink程序时,首先会创建一个Client。该Client对用户提交的Flink

四、调度管理层框架 1、Yarn


Yarn作为一个基于Hadoop的资源管理组件,他的基本思想就是将JobTrack的两个主要功能分离,即对资源管理的作业调度和监控分离。其核心组件分为三种:

1)ResourceManager

这是一个全局的资源管理器,用于管理整个集群的资源,并将各个资源分配给应用程序

2)ApplicationMaster

这是一个应用程序级别的管理,用于管理运行在Yarn上的应用程序

3)NodeManage

该组件用于管理Yarn上的运算节点

2、Oozie

Oozie是一个基于工作流的开源框架,提供对Hadoop MapReduce、Pig Jobs的任务调度与协调。Oozie需要部署到Java Serlvet容器中运行,主要用于定时任务调度等功能。它是由以下三个模块执行

1)Workflow

顺序执行流程节点,支持分支多个节点和合并多个节点

2) Coordinator

定时触发Workflow

3)Bundle Job

用于绑定多个Coordinator

3、Zookeeper

Zookeeper是基于一种选举制度的管理制度,他具有以下特点:
1、只有一个主机: 在Zookeeper集群中有且只有一个主机节点
2、半数选举制度: Zookeeper中某个主机挂了,集群就会选举新的主机,新主机的选举采取半数选举制度。

4、Flume

Flume 是Cloudera 提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传
输的系统。Flume 基于流式架构,灵活简单。Flume的组件由以下部分组成:

1.Agent

Agent是一个JVM进程,它以事件形式将数据从从元头送至目的。

2.Source

Source是负责接收数据到Flume Agent的组件。Source组件可以处理各种类型、各种格式的日志数据。

3.Sink

Sink通过轮询Channel中的事件且批量的移除它们,并将这些事件批量写入到存储或者索引系统、或者发送到另一个Agent中。

4.Channel

Channel是位于Source和Sink之间的缓冲区。

5.Event

Event是数据传输的数据单元,数据传输是以Event的形式传输的。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/673457.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号