http://www.cstor.cn/textdetail_10211.html
根据Maneesh Varshney的漫画改编,以简洁易懂的漫画形式讲解HDFS存储机制与运行原理。
一、角色出演
如上图所示,HDFS存储相关角色与功能如下:
Client:客户端,系统使用者,调用HDFS API操作文件;与NN交互获取文件元数据;与DN交互进行数据读写。
Namenode:元数据节点,是系统唯一的管理者。负责元数据的管理;与client交互进行提供元数据查询;分配数据存储节点等。
Datanode:数据存储节点,负责数据块的存储与冗余备份;执行数据块的读写操作等。
二、写入数据
1、发送写数据请求
HDFS中的存储单元是block。文件通常被分成64或128M一块的数据块进行存储。与普通文件系统不同的是,在HDFS中,如果一个文件大小小于一个数据块的大小,它是不需要占用整个数据块的存储空间的。
2、文件切分
3、DN分配
4、数据写入
5、完成写入
6、角色定位
三、HDFS读文件
1、用户需求
HDFS采用的是“一次写入多次读取”的文件访问模型。一个文件经过创建、写入和关闭之后就不需要改变。这一假设简化了数据一致性问题,并且使高吞吐量的数据访问成为可能。
2、先联系元数据节点
3、下载数据
前文提到在写数据过程中,数据存储已经按照客户端与DataNode节点之间的距离进行了排序,距客户端越近的DataNode节点被放在最前面,客户端会优先从本地读取该数据块。
4、思考
四、HDFS容错机制——第一部分:故障类型及监测方法
1、三类故障
(1)第一类:节点失败
(2)第二类:网络故障
(3)第三类:数据损坏(脏数据)
2、故障监测机制
(1)节点失败监测机制
(2)通信故障监测机制
(3)数据错误监测机制
3、回顾:心跳信息与数据块报告
HDFS存储理念是以最少的钱买最烂的机器并实现最安全、难度高的分布式文件系统(高容错性低成本),从上可以看出,HDFS认为机器故障是种常态,所以在设计时充分考虑到单个机器故障,单个磁盘故障,单个文件丢失等情况。
五、容错第二部分:读写容错
1、写容错
2、读容错
六、容错第三部分:数据节点(DN)失效
七、备份规则
1、机架与数据节点
2、副本放置策略
数据块的第一个副本优先放在写入数据块的客户端所在的节点上,但是如果这个客户端上的数据节点空间不足或者是当前负载过重,则应该从该数据节点所在的机架中选择一个合适的数据节点作为本地节点。
如果客户端上没有一个数据节点的话,则从整个集群中随机选择一个合适的数据节点作为此时这个数据块的本地节点。
HDFS的存放策略是将一个副本存放在本地机架节点上,另外两个副本放在不同机架的不同节点上。
这样集群可在完全失去某一机架的情况下还能存活。同时,这种策略减少了机架间的数据传输,提高了写操作的效率,因为数据块只存放在两个不同的机架上,减少了读取数据时需要的网络传输总带宽。这样在一定程度上兼顾了数据安全和网络传输的开销。
via:京东大数据
来源:36大数据
相关推荐
Hadoop运行流程详解 Hadoop是一个开源分布式计算框架,核心由两个主要组件构成:HDFS(Hadoop Distributed File System)和MapReduce。本篇将详细阐述Hadoop中的MapReduce执行流程,包括其主要概念、数据结构和整体...
hadoop
在hadoop中,有三大法宝——HDFS,MapReduce,Hbase,但是无论是MapReduce,Hbase还是hadoop中的其他组件如:Hive等他们要处理的数据还是处理完了的数据都是存储在HDFS中。可见HDFS可以说是hadoop存储的基础和核心,...
hadoop编译流程详细说明 apache-ant-1.9.16-bin.tar.gz cmake-3.22.4.tar.gz protobuf-2.5.0.tar.gz snappy-1.1.4.tar.gz cyrus-sasl-2.1.26-23.el7.x86_64.rpm cyrus-sasl-devel-2.1.26-23.el7.x86_64.rpm cyrus-...
【Hadoop 完整安装流程】是一篇针对新手的指南,详细介绍了如何一步步安装Hadoop,文中虽然没有提供具体的步骤,但我们可以从标题和描述中推测出安装Hadoop的重要性,尤其是对于想要进入大数据领域的人来说。Hadoop...
本文将深入探讨Hadoop大数据平台系统的工作思路和流程,以及它与Web整合的关系。 首先,Hadoop是Apache软件基金会开发的分布式计算框架,主要由HDFS(Hadoop Distributed File System)和MapReduce两部分组成。HDFS...
hadoop是一个经典的分布式架构,本书以漫画的形式讲解hadoop的基本原理。当然,来源于网络。
本文主要围绕Hadoop框架及其数据处理流程展开研究,并提供了实际案例实践。Hadoop不仅在存储方面,还在管理和分析方面大大超越了传统数据库软件工具的处理能力。在当前高速发展的信息社会中,科技不断进步,人与人...
在本文中,我们将详细探讨如何搭建Hadoop和HBase环境,尤其关注在...请注意,这里提供的是一般的安装流程,具体版本可能需要根据实际情况进行调整。在实际部署时,还需要考虑集群的扩展性、安全性以及性能优化等方面。
以下是我根据自身经验总结的Hadoop HA安装流程,这个流程已经在实际工作中得到验证,可以确保稳定运行。 一、环境准备 1. 操作系统:通常选择CentOS或Ubuntu等Linux发行版,确保系统稳定可靠。 2. 软件依赖:安装...
本文将针对标题为“hadoop组件程序包.zip”的资源,深入解析其中包含的组件、安装流程以及对初学者的重要性,帮助初学者快速掌握Hadoop的核心知识。 一、Hadoop核心组件 1. HDFS(Hadoop Distributed File System...
【Hadoop集群搭建流程详解】 在本文中,我们将详述如何在CentOS6.5 mini版本上搭建Hadoop集群。这个过程适用于想要学习Hadoop分布式计算框架或建立实验环境的IT专业人士。首先,确保你的系统是CentOS6.5,并且你...
Hadoop是Apache软件基金会开发的一个开源分布式计算框架,它允许在普通硬件上高效处理大量数据。在Windows环境下,Hadoop的使用与Linux有所不同,因为它的设计最初是针对Linux操作系统的。"winutils"和"hadoop.dll...
CentOS6.5mini版hadoop集群搭建流程,内容比较简洁明了。
在IT行业中,Hadoop是一个广泛使用的开源框架,主要用于大数据处理和分布式存储。Hadoop 2.7.3是这个框架的一个稳定版本,它包含了多个改进和优化,以提高性能和稳定性。在这个版本中,Winutils.exe和hadoop.dll是两...
Hadoop是一个开源的分布式计算框架,由Apache基金会开发,它主要设计用于处理和存储大量数据。在提供的信息中,我们关注的是"Hadoop的dll文件",这是一个动态链接库(DLL)文件,通常在Windows操作系统中使用,用于...
总结,Hadoop Eclipse Plugin 2.6.0是Hadoop开发中的得力助手,它简化了开发流程,增强了调试功能,使得开发者能够更专注于业务逻辑的实现,提高了开发效率和质量。对于Hadoop初学者和专业开发者来说,熟练掌握并...
技术栈:Java、maven、hadoop、flask、前端知识步骤搭建hadoop 分布式环境,hdfs 存储训练数据,MapReduce(MR)进行训练数据
在Hadoop生态系统中,`hadoop.dll`和`winutils.exe`是两个关键组件,尤其对于Windows用户来说,它们在本地开发和运行Hadoop相关应用时必不可少。`hadoop.dll`是一个动态链接库文件,主要用于在Windows环境中提供...