Hadoop体系-1数据存储体系

image.png

HDFS

HDFS是Hadoop提供的分布式存储框架,它可以用来存储海量数据。
HDFS由四部分组成,HDFS Client、NameNode、DataNode和Secondary NameNode。
HDFS是一个主/从(Mater/Slave)体系结构,HDFS集群拥有一个NameNode和一些DataNode。NameNode管理文件系统的元数据,DataNode存储实际的数据。

  • HDFS客户端:就是客户端。
    1、提供一些命令来管理、访问 HDFS,比如启动或者关闭HDFS。
    2、与 DataNode 交互,读取或者写入数据;读取时,要与 NameNode 交互,获取文件的位置信息;写入 HDFS 的时候,Client 将文件切分成 一个一个的Block,然后进行存储。
  • NameNode:即Master,
    1、管理 HDFS 的名称空间。
    2、管理数据块(Block)映射信息
    3、配置副本策略
    4、处理客户端读写请求。
  • DataNode:就是Slave。NameNode 下达命令,DataNode 执行实际的操作。
    1、存储实际的数据块。
    2、执行数据块的读/写操作。
  • Secondary NameNode:并非 NameNode 的热备。当NameNode 挂掉的时候,它并不能马上替换 NameNode 并提供服务。
    1、辅助 NameNode,分担其工作量。
    2、定期合并 fsimage和fsedits,并推送给NameNode。
    3、在紧急情况下,可辅助恢复 NameNode。

在实际的大数据应用工作中只需要知道这个是个文件存储结构就行了。

MapReduce

MapReduce将复杂的、运行于大规模集群上的并行计算过程高度地抽象到了两个函数:Map和Reduce。它采用“分而治之”策略,一个存储在分布式文件系统中的大规模数据集,会被切分成许多独立的分片(split),这些分片可以被多个Map任务并行处理。
MapReduce体系结构主要由四个部分组成,分别是:Client、JobTracker、TaskTracker以及Task

  • Client
    用户编写的MapReduce程序通过Client提交到JobTracker端 用户可通过Client提供的一些接口查看作业运行状态
  • JobTracker
    JobTracker负责资源监控和作业调度 JobTracker 监控所有TaskTracker与Job的健康状况,一旦发现失败,就将相应的任务转移到其他节点 JobTracker 会跟踪任务的执行进度、资源使用量等信息,并将这些信息告诉任务调度器(TaskScheduler),而调度器会在资源出现空闲时,
    选择合适的任务去使用这些资源
  • TaskTracker
    TaskTracker 会周期性地通过“心跳”将本节点上资源的使用情况和任务的运行进度汇报给JobTracker,同时接收JobTracker 发送过来的命令并执行相应的操作(如启动新任务、杀死任务等) TaskTracker 使用“slot”等量划分本节点上的资源量(CPU、内存等)。一个Task 获取到
    一个slot 后才有机会运行,而Hadoop调度器的作用就是将各个TaskTracker上的空闲slot分配给Task使用。slot 分为Map slot 和Reduce slot 两种,分别供MapTask 和Reduce Task 使用
  • Task
    Task 分为Map Task 和Reduce Task 两种,均由TaskTracker 启动

在实际大数据应用中,我们基本可以将整个过程简单理解为通过map来映射数据,通过reduce来查询数据

Hive

hive是基于Hadoop构建的一套数据仓库分析系统
Hive 依赖于 HDFS 存储数据,Hive 将 HQL 转换成 MapReduce 执行,所以说 Hive 是基于 Hadoop 的一个数据仓库工具,实质就是一款基于 HDFS 的 MapReduce 计算框架,对存储在 HDFS 中的数据进行分析和管理

Hive的出现将人们从MapReduce的复杂逻辑中解救出来,让只懂sql的人也可以进行简单的Hive查询。

总结,这里我们了解了Hadoop最基础的数据存储层逻辑。这个部分目前最为稳定,没有其他工具来撼动他们的地位。
HDFS是个分布式的文件存储系统,将海量数据通过namenode和datanode的方式存储在分布式集群中。MapReduce是基于HDFS的数据应用方法。通过map来将name和data映射到一起,在由reduce来将你想要的数据查询出来。由于MapReduce的学习门开很高,于是出现了Hive,基于MapReduce将HDFS结构化的一种关系型数据库。通过Hive SQL来对数据进行查询。
HiveSQL的应用场景:数据存储:通常作为大数据底层数据存储,用来存放底层dwd,dwb,dws层数据

你可能感兴趣的:(Hadoop体系-1数据存储体系)