HDFS学习笔记(一)

本文使用HADOOP对大数据信息进行处理,以简化对传统高性能计算的高要求。主要讲解HADOOP下的HDFS和MAPreduce

HDFS:体系结构,读写原理,实践

目录

  • HADOOP平台的两大核心
  • HDFS分布式文件系统相关概念
    • HDFS目的:
    • HDFS缺陷:
  • HDFS体系结构:
    • 主从模式:
    • 注意事项:
    • HDFS体系结构下的两类节点:
      • FsImage:保存系统文件树
      • EditLog:储存各项(删,查,等)操作
  • HDFS存储原理 :
    • 冗余储存:
    • 存储原则(一个数据块如何放到不同节点里面):
    • 下载数据读取方法
    • 数据错误处理

HADOOP平台的两大核心

HADOOP包含两大核心:HDFS+MAPREDUCE


HDFS(抽象文件系统)可以用成百上千储存设备并与本地系统进行数据的交互。
简单看一下HDFS介绍
MAPREDUCE(分布式并行变成框架)可以用成百上千服务器并行处理计算,大量减少计算的复杂度和时间。
简单看一下MR介绍

HDFS分布式文件系统相关概念

HDFS目的:

1、解决大数据分布式存储的目的。
2、兼容廉价的设备,可以使用普通pc构建集群。
3、可以实现全部文件的读写,而并不是部分读写。
4、支持大数据集(大可一T)。
5、支持简单的文件模型,可以快速处理文件数据集。

HDFS缺陷:

1、不合适多小文件读写(元素目录,数据节点,读写数据节点)。
2、只许追加,不可以修改。
3、HDFS学习笔记(一)_第1张图片

HDFS体系结构:

主从模式:

在一个使用HDFS的集群中,总存在分属于若干不同机架的若干普通pc作为节点(每个pc代表一个),在相当多的节点中总存在一个主节点(管家节点)以及若干从节点(数据节点),这些节点共同组成HDFS体系结构
HDFS学习笔记(一)_第2张图片

注意事项:

HDFS也按照块来存储通过将一个大文件分成许多块分别存放在许多不同的节点上去,突破单机容量上限,HDFS包含一群节点,其中有一个主节点(名称节点),和一群数据节点,,读写命令到达后,先访问主节点

HDFS体系结构下的两类节点:

HDFS学习笔记(一)_第3张图片
名称节点:相当于HDFS集群的管家,记录了集群信息(同一个文件分块被保存在哪些计算机节点上),包含了以下两类数据结构(保存在本地磁盘,运作时写入内存):

FsImage:保存系统文件树

FsImage数据结构的存储内容(存储元数据):

HDFS学习笔记(一)_第4张图片

EditLog:储存各项(删,查,等)操作

  • 当新的数据节点加入集群后加入后,名称节点内容的更新过程:

HDFS学习笔记(一)_第5张图片

HDFS存储原理 :

冗余储存:

HDFS在储存的时候会设定冗余因子,将同一块数据冗余的额外存储冗余因子次,有点如下图所示:当因子设为三的时候每一块数据(绿色)都有三块副本(三)

HDFS学习笔记(一)_第6张图片
当某一副本(上图蓝色)出错后,系统自动检测正确副本数,当正确副本数小于冗余因子时,自动复制副本储存,直到副本个数满足冗余因子个数。

存储原则(一个数据块如何放到不同节点里面):

集群内部节点上传文件:当节点上传文件第一块到达后,需要保存三个副本,并将一个副本放在你上传文件的节点。第二副本放在与第一副本不同机架的节点,第三副本放在与第一副本相同机架的其他节点上,当因子大于三时,剩下随机分配。
集群外部节点上传文件:随机放在一台磁盘不太满,cpu不忙的节点,第二副本放在与第一副本不同机架的节点,第三副本放在与第一副本相同机架的其他节点上,当因子大于三时,剩下随机分配。

如下图所示,block是副本
HDFS学习笔记(一)_第7张图片

下载数据读取方法

就近原则:HDFS中提供了一个api可以返回你的数据节点所属机架id,客户端也可以调用获得自己所属的机架id,一般的客户端读取的时候,需要客户端通过名称节点获得所需数据存放的数据节点再,根据数据节点api获得所在机架,同时客户端也调用api获得自己所在的机架,进行比对相同的情况下优选最近节点读取(因为有多个备份所以有最近一说)。

数据错误处理

名称节点错误:第二名称节点,冷备分复原
数据节点错误:实时心跳信息,发生数据节点宕机后冗余迁移(因为有多条冗余备份,故障节点的数据块,肯定在其他许多节点上分别备份)。
HDFS学习笔记(一)_第8张图片
数据错误(磁盘出错):使用校验码。

你可能感兴趣的:(hadoop,linux)