大数据小白系列——HDFS(1)

本文是大数据小白系列的第一篇,重点介绍了HDFS的基本概念和工作原理。HDFS是Hadoop分布式文件系统,用于存储大数据。通过分片(Shard)将大文件切分为128MB的块,并创建副本(Replica)以确保容错性。采用Master/Slave架构,NameNode作为Master管理元数据,DataNode作为Slave存储数据。读取和写入数据时,NameNode指示DataNode进行操作,确保高效的数据流动。
摘要由CSDN通过智能技术生成

这里是大数据小白系列,介绍大数据生态系统中的主要成员,理解其原理,明白其用途,万一有用呢对不对?

大数据是什么?抛开那些高大上但笼统的说法,我觉得大数据就是说两件事,一、怎么存储大数据,二、怎么计算大数据。

先从存储开始说,如果清晨起床,你的女仆给你呈上一块牛排,牛排太大,一口吃不了,怎么办?拿刀切小。

同样的,如果一份数据太大,一台机器存不了,怎么办?切小了,存到几台机器上。

想要保存海量数据,无限地提高单台机器的存储能力显然是不现实,就好比我们不能把一栋楼盖得无限高一样(通常这不经济),增加机器数量则是相对可持续的方案。

使用多台机器,需要有配套的分布式存储系统把这些它们组织成一个整体,由于Hadoop几乎是目前大数据领域的事实标准,那么这里开始介绍HDFS(Hadoop Distributed Filesystem)。

 

先来介绍几个重要概念。

  • 分片(Shard)

就好比把牛排切成小块,对大的文件进行切分,显然是进行分布式存储的前提,例如,HDFS中通常将数据切分成128MB的块(block)。

  • 副本(Replica)

三台机器中,如果有一台出现故障,如何保证数据不丢失,那么就是使用冗余的方式,为每一个数据块都产生多个副本。

下面图示中,任何单独一个节点掉线,都不会造成数据丢失,仍然可以凑齐A、B、C三个数据块。

当然,如果两个节点同时掉线就不行了。

不过,如果每个数据块都有两个副本,那么可以承受同时损失两个节点。当然代价是,你的存储成本又上升了。

  • Master/Slave架构

只有工人而没有包工头的工地肯定是乱糟糟不能很好运作的,所以,除了上面3台负责存储的机器,还需要至少一台机器来领导它们、给它们分配工作,否则谁也没办法知道A、B、C具体应该存在哪个机器上。

DFS中采用Master/Slave架构,其中的NameNode就是Master,负责管理工作;而DataNode就是Slave,负责存储具体的数据。两个角色直接是这么配合工作的:NameNode上管理着元数据,简单的讲就是记录哪个数据块存储在哪台机器上;而DataNode会定时向NameNode汇报自己的工作状态,以便后者监控节点状态、是否故障。

 

上面说完了几个我觉得需要了解的基础概念,下面我们再把HDFS的读、写流程描述一下。

  • 读取数据

用户询问NameNode,后者提供数据的存储位置,真正的数据读取操作发生在用户和DataNode之间。由于数据有副本,一份数据在多个节点上存在,具体NameNode返回哪个节点,遵循一定的原则(比如,就近原则)。

 

  • 写入数据

用户询问NameNode,后者提供数据的存储位置,真正的数据写入操作发生在用户和DataNode之间。而副本的制造,是在DataNode之间发生的,例如用户先把数据写入节点1,节点1再把数据复制到节点2等等。

 

本篇的内容就先到这里。下一篇准备介绍HDFS中的单点问题、HA、Federation等概念。


喜欢本文的朋友们,欢迎长按下图关注订阅号程序员杂书馆,提前获得更多更新内容,更有定期赠书活动

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值