Hadoop分布式文件系统HDFS 是一种被设计运行在任何通用硬件上的分布式文件系统。是一个高度容错性的系统,适合部署在廉价的机器上,能够提供高吞吐量的数据访问,非常适合大规模数据集上的应用。
1、分布式文件系统
N台计算机联网协同工作,就像单台系统一样解决问题,也就是说它们可以横跨多台计算机的存储系统,存储在分布式系统上的数据自动分布在不同的节点上。
分布式文件系统在大数据时代具有广泛的应用前景,它们为储存和处理来自网络和其他地方超大规模数据提供所需的扩展能力。
2、分离元数据和数据 NameNode 和 DataNode
存储到文件系统中的每一个文件都有相关联的元数据。元数据包括文件名、i节点数、数据块位置;而数据则是文件的实际内容。
在传统的文件系统里,因为文件系统不会跨越多台机器,那么元数据和数据都存储在同一台机器上。
因而为了构建一个分布式文件系统,让客户端在这种系统中使用简单,并且并不需要知道其他客户端的活动,那么元数据需要在客户端之外维护。HDFS的设计理念就是拿出一台或者多台机器来保存元数据,并让剩下的机器来保存文件的内容。NameNode和DataNode是HDFS的两个主要组件。其中元数据存放在NameNode上,而数据存在DataNode的集群上,NameNode不仅要关联存在HDFS上的内容元数据,而且要记录一些事情,比如那些节点是集群的一部分,某个文件有几分备份等。它还要决定当集群的节点宕机或数据副本丢失时系统需要做什么。
存储在HDFS上的每一份数据片有多份副本(replication)在不同的服务器上,从本质上,NameNode是HDFS的主服务器(master),DataNode是slave(从服务器)。
3、HDFS写过程
NameNode负责管理存储在HDFS上的所有文件的元数据,它会确认客户端的请求,并记录下文件的名称和存储这个文件的DataNode集合,把该信息在内存中的文件分配表里进行存储。
举个栗子:
客户端发送一个请求给NameNode,将test.log文件写入HDFS中,具体的流程
1、客户端发送消息给NameNode,说要将“test.log”文件写入
2、NamdNode发送消息给客户端,叫客户端写到DataNodeA、B和D,并直接联系DataNodeB
3、客户端发送消息给DataNode B叫他保存一份“test.log”,并将一份副本给DataNode D
4、DataNode A发送消息给DatanNode D,并发送一份副本给DataNode D
5、DataNode A发送消息给DataNode D,保存文件
6、DataNode D发送确认信息给DataNode A
7、DataNode A 发送信息给DataNode B
8、DataNode B发送确认消息给客户端,即为写入成功
--------------------------------------------------------------------------------------------------------------------------------
对于iteye真的表示无语。。。。。。。
相关推荐
一款基于机器学习的Web日志统计分析与异常检测命令行工具_hy4
基于RBAC权限控制的资产管理系统_hy5
318 Series Hardened Access Points 370 Series Outdoor Access Points 310 Series Campus Access Points IAP-315 IAP-314
最强PMP备考计划、知识整理、试题,并以本系统来展示_hy5
【官方】计算机职业英语一级考试样卷.pdf 【官方】全国机等级考试二级笔试样卷:存取(Access)数据库程序设计.pdf 【官方】全国计算机等级考试二级笔试样卷:C++语言程序设计.pdf 【官方】全国计算机等级考试二级笔试样卷:C语言程序设计.pdf 【官方】全国机等级考试二级笔试样卷:德尔菲(Delphi)语言程序设计.pdf 【官方】全国机等级考试二级笔试样卷:Java语言程序设计.pdf 【官方】全国机等级考试二级笔试样卷:视觉基础语言程序设计.pdf 【官方】全国机等级考试二级笔试样卷:视讯FoxPro数据库程序设计.pdf 【官方】全国计算机等级考试三级笔试样卷:PC技术,pdf 【官方】全国计算机等级考试三级笔试样卷:网络技术.pdf 【官方】全国计算机等级考试三级笔试样卷:信息管理技术,pdf 【官方】全国计算机等级考试四级笔试样卷:软件测试工程师.pdf 【官方】全国计算机等级考试四级笔试样卷:数据库工程师,pdf 【官方】全国计算机等级考试四级笔试样卷:数据库技术,pdf 【官方】全国计算机等级考试四级笔试样卷:网络工程师.pdf
SpringBoot网上商城#java#毕业设计#网上商城#springboot#课程设计#编程#thymeleaf_hy4
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
360 Series Outdoor Access Points 303 Series Campus Access Points 303H Series Hospitality Access Points 300 Series Campus Access Points
肽质量指纹图谱提取区域检测系统源码分享[一条龙教学YOLOV8标注好的数据集一键训练_70+全套改进创新点发刊_Web前端展示]
分布式事务实战_hy4
python网络爬虫按月爬cctv新闻30分的视频_hy4
【golang】企业微信群机器人接口Golang封装
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。
mumu-activemq是一个对老牌mq消息中间件的学习和测试项目,本人通过这个项目来熟悉activemq的消息发送流_hy4
【Python+HTML】基于flask的rbac学生权限管理系统,redis存储session_pgj
一步一步学springboot2:微服务项目实战(第二版)_hy5
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。
新建 DOC 文档.doc
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。