《Hadoop权威指南》书摘-HDFS概述

2023-11-14

转载请注明出处
独立博客:http://wangnan.tech
简书:http://www.jianshu.com/u/244399b1d776**
知乎:https://zhuanlan.zhihu.com/c_121958856

设计

  • 超大文件,已经有储存PB级数据的Hadoop集群了
  • 流式数据访问,一次写入,多次读取
  • 商用硬件 不需要运行在昂贵的硬件上
  • 低时间延迟的数据访问
  • 大量的小文件
  • 多用户写入,任意修改文件

概念

数据块 chunk

默认为128MB
HDFS中小于一个快大小的文件不会占据整个快的空间

分块好处:
- 一个文件的大小可以大于网络中任意一个磁盘的容量
- 使用抽象块而非整个文件作为储存单元,大大简化了储存子系统的设计
- 块适合数据备份而提供数据容错性和高可用性

namenode 和 datanode

管理节点
- 管理文件系统的命名空间,维护这文件系统树内所有文件和目录,还记录这每个文件中各个块所在数据节点的信息
- 没有管理节点,文件系统将无法使用

容错机制:
1. 备份元数据持久状态文件,一般是将持久状态写入本地磁盘的同时,写入一个远程挂载的网络文件系统(NFS)
2. 运行一个辅助namenode,作为主备

工作节点
- 它根据需要储存并检索数据块,并且定期向namenode发送他们所储存的块的列表

块缓存

通常datanode从磁盘读取块,但是对于访问频繁的文件,其对应的的块可能被显式地缓存在datanode的内存中,以堆外缓存的形式存在

高可用

hadoop配置了一对 active-standy namenode 当活动namenode失效,备用namenode就会接管它的任务并开始服务于来自客户端的请求,不会有任何明显的中断

数据流

文件读取

  • 客户端通过RPC调用namenode,以确定文件起始块的位置,对于每一个块,namenode返回存在该快副本的datanode地址,此外,这些datanode根据他们与客户端的距离来排序,如果该客户端本身就是一个datanode,那么该客户端将会从保存有相应数据块复本的本地datanode读取数据

文件写入

  • 客户端通过RPC调用namenode,在文件系统的命名空间中新建一个文件,此时该文件中还没有相应的数据块
  • namenode执行各种不同的检查以确保这个文件不存在以及客户端有新建该文件的权限,如果通过,就为创建新文件记录一条记录
  • 写入时,将数据分成一个个数据包,并写入内部队列,挑选出适合存储数据复本的一组datanode,并据此来要求namenode分配新的数据块

思考题:namenode选择再哪个datanode储存复本

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

《Hadoop权威指南》书摘-HDFS概述 的相关文章

  • 无法使用 PDI 步骤连接到 HDFS

    我已经配置成功了Hadoop 2 4 in an Ubuntu 14 04 虚拟机 from a 视窗8系统 Hadoop 安装工作绝对正常 而且我还可以从 Windows 浏览器查看 Namenode 附图如下 所以 我的主机名是 ubu
  • Hadoop:处理大型序列化对象

    我正在开发一个应用程序来使用 Hadoop 框架处理 和合并 几个大型 java 序列化对象 顺序 GB 大小 Hadoop 存储将文件块分布在不同的主机上 但由于反序列化需要所有块都存在于单个主机上 因此它会极大地影响性能 我该如何处理这
  • 将多个前缀行过滤器设置为扫描仪 hbase java

    我想创建一台扫描仪 它可以为我提供带有 2 个前缀过滤器的结果例如 我想要其键以字符串 x 开头或以字符串 y 开头的所有行 目前我知道只能使用一个前缀 方法如下 scan setRowPrefixFilter prefixFiltet 在
  • Spark MLLib 存在问题,导致概率和预测对于所有内容都相同

    我正在学习如何将机器学习与 Spark MLLib 结合使用 目的是对推文进行情感分析 我从这里得到了一个情感分析数据集 http thinknook com wp content uploads 2012 09 Sentiment Ana
  • Spark超时可能是由于HDFS中文件超过100万个的binary Files()

    我正在通过以下方式读取数百万个 xml 文件 val xmls sc binaryFiles xmlDir 该操作在本地运行良好 但在纱线上失败并显示 client token N A diagnostics Application app
  • 连接到 Hive 时使用 Spark 进行 Kinit

    我正在尝试从独立的 Spark 连接到 Hive hadoop 集群具有 kerberos 身份验证 有人可以让我知道如何在 Spark 程序中执行 kinit 我可以连接到配置单元吗 更新 我的 Spark 与 Hadoop 位于不同的集
  • Spark parquet 分区:大量文件

    我正在尝试利用 Spark 分区 我试图做类似的事情 data write partitionBy key parquet location 这里的问题是每个分区都会创建大量镶木地板文件 如果我尝试从根目录读取 则会导致读取速度变慢 为了避
  • 使用 Hadoop 映射两个数据集

    假设我有两个键值数据集 数据集A和B 我们称它们为数据集A和B 我想用 B 组的数据更新 A 组中的所有数据 其中两者在键上匹配 因为我要处理如此大量的数据 所以我使用 Hadoop 进行 MapReduce 我担心的是 为了在 A 和 B
  • 如果 HBase 不是运行在分布式环境中,它还有意义吗?

    我正在构建数据索引 这将需要以形式存储大量三元组 document term weight 我将存储多达几百万个这样的行 目前我正在 MySQL 中将其作为一个简单的表来执行 我将文档和术语标识符存储为字符串值 而不是其他表的外键 我正在重
  • hadoop2.2.0追加文件发生AlreadyBeingCreatedException

    我遇到了一个关于hadoop2 2 0追加操作的问题 我通过 HDFS java API 将一些字节附加到 hdfs 文件 首先 如果在附加操作之前文件不存在 我将创建目标文件 代码如下 String fileUri hdfs hadoop
  • 计算 HBase 表中列族的记录数

    我正在寻找一个 HBase shell 命令来计算指定列族中的记录数 我知道我可以运行 echo scan table name hbase shell grep column family name wc l 然而 这将比标准计数命令运行
  • 猪如何过滤不同的对(对)

    我是猪的新手 我有一个 Pig 脚本 它在两个元素之间生成制表符分隔的对 每行一对 例如 John Paul Tom Nik Mark Bill Tom Nik Paul John 我需要过滤掉重复的组合 如果我使用 DISTINCT 我会
  • R+Hadoop:如何从HDFS读取CSV文件并执行mapreduce?

    在以下示例中 small ints to dfs 1 1000 mapreduce input small ints map function k v cbind v v 2 MapReduce函数的数据输入是一个名为small ints的
  • 获取 emr-ddb-hadoop.jar 将 DynamoDB 与 EMR Spark 连接

    我有一个 DynamoDB 表 需要将其连接到 EMR Spark SQL 才能对该表运行查询 我获得了带有发行标签 emr 4 6 0 和 Spark 1 6 1 的 EMR Spark Cluster 我指的是文档 使用 Spark 分
  • hive创建表的多个转义字符

    我正在尝试将带有管道分隔符的 csv 加载到配置单元外部表 数据值包含单引号 双引号 括号等 使用 Open CSV 版本 2 3 测试文件 csv id name phone 1 Rahul 123 2 Kumar s 456 3 Nee
  • 如何使用 Amazon 的 EMR 在 CLI 中使用自定义 jar 指定 mapred 配置和 java 选项?

    我想知道如何指定mapreduce配置 例如mapred task timeout mapred min split size等等 当使用自定义 jar 运行流作业时 当我们使用 ruby 或 python 等外部脚本语言运行时 我们可以使
  • Spark 在 WholeTextFiles 上创建的分区少于 minPartitions 参数

    我有一个文件夹 里面有 14 个文件 我在一个集群上使用 10 个执行器运行 Spark Submit 该集群的资源管理器为 YARN 我创建了我的第一个 RDD 如下所示 JavaPairRDD
  • 将 CSV 转换为序列文件

    我有一个 CSV 文件 我想将其转换为 SequenceFile 我最终将使用它来创建 NamedVectors 以在聚类作业中使用 我一直在使用 seqdirectory 命令尝试创建 SequenceFile 然后使用 nv 选项将该输
  • 猪的组连接等效吗?

    试图在 Pig 上完成这个任务 寻找 MySQL 的 group concat 等效项 例如 在我的表中 我有以下内容 3fields userid clickcount pagenumber 155 2 12 155 3 133 155
  • Sqoop - 绑定到 YARN 队列

    因此 使用 MapReduce v2 您可以使用绑定到某些 YARN 队列来管理资源和优先级 基本上通过使用 hadoop jar xyz jar D mapreduce job queuename QUEUE1 input output

随机推荐

  • 华为发布数字资产继承功能

    在华为开发者大会2023 HDC Together 上 华为常务董事 终端BG CEO 智能汽车解决方案BU CEO余承东正式发布了数字资产继承功能 HarmonyOS提供了安全便捷的数字资产继承路径 在鸿蒙世界中 我们每个人在每台设备 应
  • AI技术进阶的75道面试题

    本文转载自AI科技大本营 整理 AI科技大本营 出品 AI科技大本营 公众号id rgznai100 导语 正值求职 跳槽季 无论你是换工作还是找实习 没有真本事都是万万不行的 可是如何高效率复习呢 之前我们给大家推荐了一份 Python
  • 如何把 Git Submodule 变成普通文件夹

    转载于此文章 记录一下 感觉最重要的是把原来的submodule中的 git删除掉 先删除 Git Submodule 删除所有相关的git配置文件即可 再把 submodule 中的文件添加到主仓库 删除 Git submodule 的命
  • MATLAB求矩阵最大、最小值

    矩阵求最大 最小值用max min函数 max A min A 返回行向量 求每列最大 最小值 max A B min A B 返回一个A B中比较大 较小元素组成的矩阵 max A dim min A dim dim 1 比较A的列 di
  • PowerOJ 2543: 赛场布置

    题目链接 对于每个点 它可以选择男或者女 如果要加上的贡献 那么相邻的一定得是异性才可以 所以 对相邻的 我们可以考虑成 然后 我们对于点坐标的的奇偶性分别讨论即可 当然 还需要考虑的贡献 然后就是全选减去最少割去的即可 include
  • iOS面试题(2.类变量的@protected,@private,@public,@package声明各有什么含义)拓展:常用框架和第三方框架

    2 类变量的 protected private public package声明各有什么含义 private 作用范围只能在自身类 protected 作用范围在自身类和继承自己的子类 默认 public 作用范围最大 可以在任何地方被访
  • nginx匹配以XXX结尾的

    匹配以do结尾的所有文件 如http 192 168 126 168 8080 delivery transportPlanData do startRelease 2019 07 06 endRelease 2019 07 06 sear
  • 初识Composer

    文章目录 依赖管理工具Composer 参考 1 简介 2 安装Composer 3 声明和安装依赖 4 自动加载 5 模块仓库 依赖管理工具Composer 参考 Composer 中文网 Packagist 中国全量镜像官方 地址htt
  • cygwin的git vscode中的使用

    背景 需要用到cygwin 编辑器是vscode 版本 vscode 版本1 55 cygwin版本2 11 2 1 cygcheck c cygwin cygwin的git2 17 cygcheck c git vscode报错 open
  • 算法篇-------贪心2

    文章目录 题目1 活动选择 题目2 无重叠区间 题目3 最多可以参加的会议数目 题目4 去除重复字母 题目5 移掉K位数字 题目6 拼接最大数 题目1 活动选择 有n个需要在同一天使用同一个教室的活动a1 a2 an 教室同一时刻只能由一个
  • linux指令_龙红云

    一 基础指令 1 ls指令 ls 列出当前目录下的所有文件 文件夹的名字 ls root 列出root下的所有文件 文件夹的名字 ls l 以详细列表的形式展示 ls la ls a 显示所有文件 文件夹 包含了隐藏文件 文件夹 ls lh
  • Spring学习总结

    因为是学习总结 所以参考了很多资料做的博客 如果有侵权 请联系我 写的不对的欢迎指出 Spring 开源的轻量级框架 Spring核心 IOC 控制反转控 制反转还有一个名字叫做DI Dependency Injection 中文意思叫依赖
  • Python轻量级Web框架Flask(9)——图书馆项目

    1 项目要求 创建一个项目 用来说明出版社 书籍和作者的关系 作者和书籍之间的关系 1对多 一本书由一个作者完成 一本书可以有多个创作者 出版社和书籍之间的关系 多对多 一个出版社可以出版多本书 一本书可以由多个出版社出版 要求 1 在书籍
  • React项目开发常用API

    记录一下React项目开发常用API 作为后续开发的参考 路由配置 配置文件形式 router index js import React lazy Suspense from react Suspense配合lazy实现懒加载 const
  • Golang 微框架 Gin 简介

    框架一直是敏捷开发中的利器 能让开发者很快的上手并做出应用 甚至有的时候 脱离了框架 一些开发者都不会写程序了 成长总不会一蹴而就 从写出程序获取成就感 再到精通框架 快速构造应用 当这些方面都得心应手的时候 可以尝试改造一些框架 或是自己
  • element-ui的table动态渲染表头

  • ruoyi管理系统+微信小程序登录解决

    原料 ruoyi管理系统项目模板 基于springboot 微信小程序项目 阿里云服务器 有域名 有ssl证书 阿里云服务器的ssl证书可以买一个仅限一年免费的那个证书 注意事项 1 微信小程序调用云服务器接口需要https csdn ne
  • Android:usb转232串口通信

    准备工作 首先得adb进入盒子root模式 将 dev ttys1这个文件改为777 使得所有用户可操作 adb root adb remount adb shell 进入设备的root模式 执行 chmod 777 dev ttys1 执
  • 项目 谷粒学院Day16-18

    Day 16 07 13 统计分析模块 后台 准备工作 创建统计表 创建service statistics模块 使用代码生成器生成代码 创建启动类 SpringBootApplication ComponentScan basePacka
  • 《Hadoop权威指南》书摘-HDFS概述

    转载请注明出处 独立博客 http wangnan tech 简书 http www jianshu com u 244399b1d776 知乎 https zhuanlan zhihu com c 121958856 设计 超大文件 已经