【注1:结尾有大福利!】

【注2:想写一个大数据小白系列,介绍大数据生态系统中的主要成员,理解其原理,明白其用途,万一有用呢,对不对。】

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

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

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

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

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

先来介绍几个重要概念。

  • 分片(shard)

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

  • 副本(replica)

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

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

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

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

  • Master/Slave架构

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

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

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

  • 读取数据

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

  • 写入数据

写入数据的过程。和读取流程类似,NameNode负责提供数据的存储位置,真正的写入操作发生在用户和DataNode之间,而副本的制造,是在DataNode之间发生的,例如用户先把数据写入节点1,节点1再把数据复制到节点2等。

这篇文章就先到这里,下一篇准备接受HDFS中的单点问题、HA、Federation等概念。

最后,福利来了,关注公众号“程序员杂书馆”,将免费送出大数据经典书籍《Spark快速大数据分析》,没错,就是下面这本,纸质书哦,不是什么乱七八糟的其他书哦!还犹豫什么,抓紧扫码关注吧。“程序员杂书馆”以后将每周为大家带来经典书籍资料、原创干货分享,谢谢大家。

需要书的同学请直接在公众号留言哈,如果不想要纸质书的也可以说明,我会选择一些PDF数据赠送,谢谢大家。

转载于:https://www.cnblogs.com/morvenhuang/p/10092144.html

大数据小白系列——HDFS(1)相关推荐

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

    这里是大数据小白系列,这是本系列的第三篇,介绍HDFS中NameNode选举,JournalNode等概念. 上一期我们说到了为解决NameNode(下称NN)单点失败问题,HDFS中使用了双NN的机 ...

  2. 大数据基础系列 5:Hadoop 实验——熟悉常用的 HDFS 目录操作和文件操作

    文章目录 前言 一.实验目的 二.实验平台 三.实验内容和要求 3.1.HDFS 目录操作 3.1.1.创建用户目录 3.1.2.显示 HDFS 中与当前用户对应的目录内容 3.1.3.列出 HDFS ...

  3. 大数据基础系列 4:伪分布式 Hadoop 在 Ubuntu 上的安装流程完整步骤及易错点分析

    文章目录 前言 一.创建 Ubuntu 用户 二.安装 Java 2.1.查看本地 Java 版本 2.2.验证 Java 在本地的配置情况 三.安装 ssh 服务 3.1.安装 openssh-se ...

  4. 大数据学习系列:Hadoop3.0苦命学习(一)

    传送门: 大数据学习系列:Hadoop3.0苦命学习(一) 大数据学习系列:Hadoop3.0苦命学习(二) 大数据学习系列:Hadoop3.0苦命学习(三) 大数据学习系列:Hadoop3.0苦命学 ...

  5. 大数据学习系列:Hadoop3.0苦命学习(五)

    传送门: 大数据学习系列:Hadoop3.0苦命学习(一) 大数据学习系列:Hadoop3.0苦命学习(二) 大数据学习系列:Hadoop3.0苦命学习(三) 大数据学习系列:Hadoop3.0苦命学 ...

  6. 大数据学习系列:Hadoop3.0苦命学习(七)

    传送门: 大数据学习系列:Hadoop3.0苦命学习(一) 大数据学习系列:Hadoop3.0苦命学习(二) 大数据学习系列:Hadoop3.0苦命学习(三) 大数据学习系列:Hadoop3.0苦命学 ...

  7. “卜算子·大数据”学习系列原创文章、源码——从入门到精通

    大数据 big-data :white_check_mark: 转载请注明出处与作者信息(如下) 原创作者:王小雷 作品出自:https://github.com/wangxiaoleiAI/big- ...

  8. 大数据学习系列之七 ----- Hadoop+Spark+Zookeeper+HBase+Hive集群搭建 图文详解

    引言 在之前的大数据学习系列中,搭建了Hadoop+Spark+HBase+Hive 环境以及一些测试.其实要说的话,我开始学习大数据的时候,搭建的就是集群,并不是单机模式和伪分布式.至于为什么先写单 ...

  9. 华为云大数据存储的冗余方式是三副本_大数据入门:HDFS数据副本存放策略

    大数据处理当中,数据储存始终是一个重要的环节,从现阶段的市场现状来说,以Hadoop为首的大数据技术框架,仍然占据主流地位,而Hadoop的HDFS,在数据存储方面,仍然得到重用.今天的大数据入门分享 ...

最新文章

  1. 配置Windows Server 2003 的RADIUS Server的方法
  2. python 解析xml
  3. 分布式调用跟踪系统的设计和应用
  4. okhttp上传文件结束后服务器才收到,okhttp3 Null Respone上传文件
  5. zcmu1540(二分)
  6. PHP 文件创建/写入
  7. jedis对redis键加锁+解锁+事务提交
  8. python sql语句生成_python Django 生成sql语句
  9. 已解决 selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element 找不到元素的问题
  10. 设计模式(二 三)工厂模式:1-简单工厂模式
  11. 在cmakelists和makefile中设置opencv
  12. 解决ubuntu的firefox上网速度慢[转]
  13. 大漠插件ocr多选字库_大漠ocr识别字库的生成,和使用方法
  14. 麦肯锡极简工作法-读书笔记
  15. LiteIDE简单使用
  16. 调用百度识图api实现识图vue+springboot
  17. 【C语言】写一个程序,输出一个在100到200之间的数字,这个单位的数字是6,可以除以3。
  18. java计算机毕业设计的健身房管理系统MyBatis+系统+LW文档+源码+调试部署
  19. Deep Speech笔记
  20. [附源码]计算机毕业设计Python学生社团信息管理系统(程序+源码+LW文档)

热门文章

  1. oracle xml中cdata,XML CDATA的作用
  2. solaris11-text-安装GUI(gnome)
  3. C# 中数据缓存总结
  4. CMake 入门与进阶
  5. 对于嵌入式交叉编译总结
  6. ConcurrentHashMap原理,jdk7和jdk8的区别
  7. C# Android wifi控制灯,求助如何在基于安卓通过WiFi与Arduino通信,实现对LED灯的控制。...
  8. 电脑技巧:Windows服务器挂载磁盘方法介绍
  9. 如何把VS Code打造成Java开发IDE?
  10. Java技术:为什么不推荐使用BeanUtils属性转换工具