Hadoop系列(一)——HDFS总结

Hadoop(hdfs, yarn, mapreduce)理论详解_大宁哥的博客-优快云博客

HDFS读写流程(史上最精炼详细)_bw_233的博客-优快云博客_hdfs 读取

HDFS读写数据流程 - CoderZZZ - 博客园 (cnblogs.com)

深入浅出 Hadoop YARN - 知乎 (zhihu.com)

hadoop之mapreduce详解(基础篇) - 一寸HUI - 博客园 (cnblogs.com)

Hadoop生态之Mapreduce_小滴杂货铺的博客-优快云博客

Hadoop中的MapReduce是什么?体系结构|例 (guru99.com)

MapReduce shuffle过程详解!_<一蓑烟雨任平生>的博客-优快云博客_mapreduce shuffle过程详解

MapReduce shuffle过程详解_xidianycy的博客-优快云博客_mapreduce shuffle

Hadoop简介

  • Hadoop 生态圈:(或者泛生态圈)是一个能够对大量数据进行分布式处理的软件框架,是大数据平台的开发工具,但不是一个单一的工具,也不是一种单一的技术,而是一系列技术和工具的合集。用户在不需要了解分布式底层细节的情况下,能够开发分布式程序。

  • Hadoop是基于Java语言开发的,具有很好的跨平台特性,并且可以部署在廉价的计算机集群中。

  • Hadoop大数据平台,采用分布式架构,包含多个与大数据处理相关的组件:HDFS、MapReduce、Yarn、Hbase、Hive、Spark、Kafak、Storm、HDF、Ambari等,并根据用户的实际需求完成功能定制。

  • Hadoop框架中其中最核心的组件有三个:HDFS、MapReduce和Yarn。

    • HDFS为海量数据提供了存储;
    • MapReduce则为海量的数据提供了计算;
    • Yarn为海量数据的处理提供了良好的系统调度。

以下是Hadoop生态中的成员:

图片1.png

img

一、HDFS——分布式文件系统

1、简介总结

总结

  • HDFS(分布式文件系统,Hadoop Distributed File System)是Hadoop的核心组件之一,是分布式计算中数据存储管理的基础,被设计成适合运行在通用硬件上的分布式文件系统。

  • 设计思想:(分而治之)将大文件、大批量文件,分布式存放在大量服务器上,以便于采取分而治之的方式对海量数据进行运算分析。

  • 在大数据系统中作用:为各类分布式运算框架(如:mapreduce,spark,tez,……)提供数据存储服务。

  • HDFS架构中有两类节点:

    1)NameNode元数据节点。

    2)DataNode数据节点, 其分别执行Master和Worker任务。

  • HDFS也可以理解为一个Master+Slave体系,“一次写入,多次读取”。

HDFS的优缺点:

优点:
  • 高容错。因为其保存多个副本,通过增加副本的形式提高容错性,某个副本丢失之后,他可以通过其他副本自动恢复。通过多副本机制提高可靠性,提供容错和恢复机制。

  • 适合存储大批量数据。处理达到GB,TB,甚至PB级别的数据,处理百万规模以上的文件,处理10K节点的规模。

  • 流式文件访问,而不是随机读写

  • 一次写入多次读取,文件一旦写入不能修改,只能追加,保证数据的一致性。

    • write-once-read-many一次写入多次读取的模式(无数据一致性问题)
  • 可以构建在普通的机器上,硬件要求不高。对机器要求不高,硬盘大一点就行。

  • 存储处理非结构化数据

  • 注重数据处理的吞吐量(延迟不敏感)??

缺点:
  • 不适合低延迟数据访问。做不到毫秒级别的存储,但是适合高吞吐率场景(某一时间写入大量的数据)。
  • 不适合小文件存储。存储大量小文件会占用NameNode大量的内存来存储文件,目录、和块信息。
  • 不适合并发写入。一个文件只能有一个写入者,不允许多个线程同时写入。
  • 不适合文件随机写入修改。仅仅支持追加写入,不支持文件随机修改

hdfs不适合场景

  1. 存储海量小文件
  2. 文件被修改
  3. 大量随机读取,对于大数据的文件读取,更倾向于顺序读。因为随机读取需要寻址,浪费时间影响效率,而且顺序读取的效率会比内存读取要高

为什么HDFS更倾向于存储大文件?----结合分块存储思想

NameNode内存有限,如果内存存放大量小文件,会占用大量内存和I/O资源,使得集群反应速度慢。所以,Hadoop不适合存储大量的小文件。hdfs1.0的块大小是64M,hdfs2.0是128M。
总结:

  1. 对于集群硬盘资源造成严重浪费;
  2. NameNode本身内存有限,造成NameNode内存溢出;

img

假设有一个块,大小64m,但是存储的文件大小是10m,就浪费了54m的空间,对集群的硬盘资源造成了严重浪费。

2、HDFS架构

preview

HDFS采用了主从式(Master/Slave)的体系结构,分NameNode、SecondaryNameNode、DataNode这几个角色。

  • NameNode:是Master节点,是大领导。管理数据块映射;处理客户端的读写请求;配置副本策略;管理HDFS的名称空间
  • SecondaryNameNode:是一个小弟,分担大哥NameNode的工作量;是NameNode的冷备份;合并fsimage和fsedits然后再发给NameNode。
  • DataNode:是Slave节点,工作者,干活的。负责存储client发来的数据块block;执行数据块的读写操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值