3.1分布式文件

  1. HDFS默认一个块的大小是64MB,与普通文件不同的是如果一个文件小于数据块的大小,它并不占用整个数据块的存储空间。
  2. 主节点又叫名称节点;另一个叫从节点又叫数据节点。名称节点负责文件和目录的创建、删除和重命名,同时管理数据节点和文件块的映射关系。数据节点负责数据存储和读取。

3.2HDFS的相关概念

  1. MapReduce中的map一次只处理一个块中的数据。HDFS抽象块的概念可以带来一下好处:

    • 支持大规模文件存储
    • 简化系统
    • 适合数据备份
  2. 名称节点在启动过程中处于安全模式,只对外提供读操作,无法提供写操作。启动过程结束后,系统会退出安全模式,就可以对外界提供读写操作。
  3. 名称节点中保存两个核心数据结构FsImage和EditLog
  4. 第二名称节点,解决EditLog逐渐变大带来的问题,两个功能EditLog与FsImage的合并操作;作为名称节点的检查点,注意是冷备份。

3.4HDFS体系结构

  1. 采用主从模型,在整个HDFS集群中只有一个命名空间,并且只有唯一一个名称节点。
  2. HDFS通信协议是建立在TCP/IP协议上面的,并使用客户端协议与名称节点进行交互,名称节点和数据节点之间则使用数据节点协议进行交互。客户端与数据节点交互是通过RPC来实现的。
  3. 因为只设置了一个名称节点,存在局限性。
    • 命名空间的限制
    • 性能的瓶颈
    • 隔离问题
    • 集群的可用性
  4. HDFS的存储原理
    • 数据冗余存储,具有以下优点;加快数据传输速度;容易检查数据错误;保证数据的可靠性
    • 数据存取策略,包括数据存储、数据读取(就近原则,HDFS提供一个API可以确定数据节点所属的机架ID)、数据复制(采用流水线复制策略)。
    • 数据错误与恢复,名称节点出错(一是通过两个核心数据结构,而是通过第二名称节点);数据节点出错;数据出错

3.6HDFS数据读写过程

  • HDFS的读过程,图片

  • HDFS的写过程,图片
    1. 创建文件请求
    2. 创建文件元数据
    3. 写入数据
    4. 写入数据包(包括了流水线复制)
    5. 接收确认数据包
    6. 关闭文件
    7. 写操作完成
  • hadoop fs(用作任何文件系统,比如本地文件系统和HDFS文件系统)hadoop dfs(只适用于HDFS文件系统)hdfs dfs(也只适用于HDFS文件系统)

《大数据技术应用与原理》第二版-第三章分布式文件系统HDFS的更多相关文章

  1. 《大数据技术应用与原理》第二版-第二章大数据处理架构Hadoop

    2.1概述 Hadoop是Apache旗下的开源分布式计算平台,是基于Java开发的,具有很好的跨平台特性,其中核心文件是MapReduce和HDFS,而HDFS是根据谷歌文件系统GFS开源实现,是面 ...

  2. 大数据技术之HBase原理与实战归纳分享-中

    @ 目录 底层原理 Master架构 RegionServer架构 Region/Store/StoreFile/Hfile之间的关系 写流程 写缓存刷写 读流程 文件合并 分区 JAVA API编程 ...

  3. 大数据技术之HBase原理与实战归纳分享-上

    @ 目录 概述 定义 特点 数据模型 概述 逻辑结构 物理存储结构 数据模型 应用场景 基础架构 安装 前置条件 部署 启动服务 高可用 Shell操作 基础操作 命令空间 DDL DML 概述 定义 ...

  4. Laxcus大数据管理系统2.0(5)- 第三章 数据存取

    第三章 数据存取 当前的很多大数据处理工作,一次计算产生几十个GB.或者几十个TB的数据已是正常现象,驱动数百.数千.甚至上万个计算机节点并行运行也已经不足为奇.但是在数据处理的后面,对于这种在网络间 ...

  5. CSAPP深入理解计算机系统(第二版)第三章家庭作业答案

    <深入理解计算机系统(第二版)>CSAPP 第三章 家庭作业 这一章介绍了AT&T的汇编指令 比较重要 本人完成了<深入理解计算机系统(第二版)>(以下简称CSAPP) ...

  6. Hadoop第三天---分布式文件系统HDFS(大数据存储实战)

    1.开机启动Hadoop,输入命令:  检查相关进程的启动情况: 2.对Hadoop集群做一个测试:   可以看到新建的test1.txt和test2.txt已经成功地拷贝到节点上(伪分布式只有一个节 ...

  7. 大数据技术之HBase原理与实战归纳分享-下

    @ 目录 整合Phoenix 定义 为何要使用 安装 SHELL操作 表的映射 简易JDBC示例 二级索引 二级索引配置文件 全局索引 包含索引 本地索引(local index) HBase与 Hi ...

  8. 大数据技术 - 通俗理解MapReduce之WordCount(三)

    上一章我们编写了简单的 MapReduce 程序,掌握这些就能编写大多数数据处理的代码.但是 MapReduce 框架提供给用户的能力并不止如此,本章我们仍然以上一章 word count 为例,继续 ...

  9. 大数据技术之kettle(2)——练习三个基本操作

    一.同一数据库两表数据关联更新 实现效果:把stu1的数据按id同步到stu2,stu2有相同id则更新数据 步骤: 1.在mysql中创建两张表: mysql>create database ...

随机推荐

  1. 松软科技web课堂:JavaScript 布尔(逻辑)

    JavaScript 布尔(逻辑)代表两个值之一:true 或 false. 布尔值 通常,在编程中,您会需要只能有两个值之一的数据类型,比如 YES / NO ON / OFF TRUE / FAL ...

  2. Jsf中进度条的用法

    Jsf中进度条的用法 前端页面 <!-- 进度条 --> <p:progressBar widgetVar="pbAjax" ajax="true&qu ...

  3. vue应用调试工具 vue-devtools安装

    方法一:chrome直接访问下面地址下载安装:(需要翻墙) https://chrome.google.com/webstore/detail/vuejs-devtools/nhdogjmejigli ...

  4. Abp zero 登录 添加腾讯云验证码

    腾讯云验证码是为网页.App.小程序开发者提供的安全验证服务,基于腾讯多年的大数据积累和人工智能决策引擎,构建智能分级验证模型,最大程度保护业务安全的同时,提供更精细化的用户体验. 腾讯云--> ...

  5. python判断文件夹和文件是否存在

    1.os.path.exists()既可以判断文件是否存在,又可以判断文件夹是否存在 2.os.path.isfile()判断文件是否存在 3.os.path.isdir()判断文件夹是否存在

  6. maven 上传jar包到私服仓库

    按一下形式上传jiar包 # mvn deploy:deploy-file -DgroupId=com.itextpdf -DartifactId=itextpdf -Dversion=5.5.13 ...

  7. Vue+Vuex初体验

    首先: 安装vuex npm install vuex -S 需要有两个组件(HelloWord.vue 和 HelloDemo.vue)[组件自定义] 注册路由 注册store 测试 一.需要有两个 ...

  8. 201871010116-祁英红《面向对象程序设计(java)》第十七周学习总结

    博文正文开头格式:(2分) 项目 内容 <面向对象程序设计(java)> https://home.cnblogs.com/u/nwnu-daizh/ 这个作业的要求在哪里 https:/ ...

  9. Linux下安装Redis以及遇到的问题

    参考链接:https://www.cnblogs.com/zdd-java/p/10288734.html https://www.cnblogs.com/uncleyong/p/9882843.ht ...

  10. IT兄弟连 HTML5教程 CSS3揭秘 CSS选择器1

    要使用CSS对HTML页面中的元素实现一对一.一对多或者多对一的控制,就需要用到CSS选择器.选择器是CSS3中一个重要的内容,使用它可以大幅度地提高开发人员书写或修改样式表的效率.在大型网站中,样式 ...