HDFS副本存放策略(官方文档)

关于HDFS的副本位置默认存放策略(以3个副本为例),网络上一直流传着两种说法;

第一种说法:

副本1:在client端所处的节点(就近),若客户端在集群外则随机选一个;
副本2:和第一个副本位于相同机架的不同节点上;
副本3:跨机架随机挑选一个节点,增加副本的可靠性;

第二种说法:

副本1:在client端所处的节点(就近),若客户端在集群外则随机选一个DataNode;
副本2:和第一个副本位于不同机架的一个节点上;
副本3:和第二个副本相同机架的不同节点上;

看起来这两种说法好像都有道理(都保证了数据的可靠性和带宽的利用率),不知道应该以哪个为准,为了得到更加准确的答案,我查阅了一下Hadoop领域比较经典的书籍《Hadooop权威指南第4版》,原文如下:


但是书中的内容可能并不是最新的内容,很有可能Hadoop官方更新了一部分内容,但是书籍还没来得及更新,所以我又在Hadoop的官网上找了一下,以下是官网原文(https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/HdfsDesign.html):

For the common case, when the replication factor is three, HDFS’s placement policy is to put one replica on the local machine if the writer is on a datanode, otherwise on a random datanode in the same rack as that of the writer, another replica on a node in a different (remote) rack, and the last on a different node in the same remote rack. This policy cuts the inter-rack write traffic which generally improves write performance. The chance of rack failure is far less than that of node failure; this policy does not impact data reliability and availability guarantees. However, it does reduce the aggregate network bandwidth used when reading data since a block is placed in only two unique racks rather than three. With this policy, the replicas of a file do not evenly distribute across the racks. One third of replicas are on one node, two thirds of replicas are on one rack, and the other third are evenly distributed across the remaining racks. This policy improves write performance without compromising data reliability or read performance.

《Hadooop权威指南第4版》和官网原文相互印证,至此,我们基本可以得出结论,关于副本存放策略的说法,第一种是错误的,第二种是正确的。

(至于为什么会有第一种说法的存在,一些网友给出的理由是版本问题,不同的Hadoop版本的副本分配策略也不同,但是我在官网上没有找到之前版本的分配策略,如果有哪位朋友知道为什么会有第一种说法的存在,欢迎留言讨论。)

HDFS副本存放策略(官方文档)相关推荐

  1. 9、HDFS核心设计--心跳机制、安全模式、副本存放策略、负载均衡

    1.HADOOP 心跳机制(heartbeat) 1. Hadoop 是 主从(Master/Slave )结构,Master 中包括 NameNode 和 ResourceManager,Slave ...

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

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

  3. HDFS的副本存放策略(机架感知策略)

    HDFS作为Hadoop中的一个分布式文件系统,而且是专门为它的MapReduce设计,所以HDFS除了必须满足自己作为分布式文件系统的高可靠性外,还必须为MapReduce提供高效的读写性能,那么H ...

  4. 浅析HDFS的副本存放策略

    在大多数情况下,副本系数是3,HDFS的存放策略是: 将一个副本存放在本地机架节点上, 一个副本存放在同一个机架的另一个节点上, 最后一个副本放在不同机架的节点上. 简单说:在我们的笔记本中,搭建ha ...

  5. (翻译)Apache Kafka 官方文档:开始

    Apache Kafka 官方文档:开始 入门 Kafka 作为一个分布式的流平台,这到底意味着什么? 首先来了解一下 Kafka 所使用的基本术语: 主题和日志(Topic 和 Log) 分布式(D ...

  6. Apache KafKa阅读官方文档心得

    Apache KafKa阅读官方文档心得 概念 Apache Kafka是一个分布式流媒体平台,流媒体平台有三个关键功能: 1.它允许您发布和订阅记录流.在这方面,它类似于消​​息队列或企业消息系统. ...

  7. Spark官方文档整理:spark-core

    Spark 官方文档 1,spark 概述 Apache Spark 是一个快速通用的集群计算系统,它提供了提供了java,scala,python和R的高级API,以及一个支持一般图计算的优化引擎. ...

  8. Cassandra官方文档整理

    一.概念 ApacheCassandra是一个开源.分布式分散性(没有单点故障).弹性可伸缩(动态增加减少节点).高可用性高容错(多数据中心).可协调一致性(复制因子成功数量由用户决定).面向行的数据 ...

  9. CDH6官方文档中文系列(2)----Cloudera安装指南(安装前)

    Cloudera安装指南 最近在学习cdh6的官方文档,网上也比较难找到中文的文档. 其实官方英文文档的阅读难度其实并不是很高,所以在这里在学习官方文档的过程中,把它翻译成中文,在翻译的过程中加深学习 ...

最新文章

  1. 计算机网络训练参考文献,学生实践论文,关于开放教育过程中计算机网络技术专业学生实践能力的培养相关参考文献资料-免费论文范文...
  2. php把网络图片转化为base64格式,解决html2canvas图片跨域问题
  3. [leetcode] 22. Generate Parentheses(medium)
  4. React中的状态管理---Mobx
  5. mysql 5.5.39 安装_CentOS7.2安装mysql5.5.39
  6. 变频电源出现故障了怎么办,该如何去诊断呢
  7. ES6笔记 -- 字符串拓展
  8. php 函数strtr 替换函数实例解析 strtr 速度比较快
  9. electronjs设置宽度_javascript – 如何使Electron WebView填充指定的大小?
  10. Python文件之----CSV
  11. [SQL优化工具]Quest.Central.For.Databases——SQL Tuning for SQL Server
  12. 共享充电宝APP小程序开发解决方案
  13. 加入域的计算机如何本地用户登录,关于本地缓存登陆和域用户将计算机加入域的问题(转)...
  14. 2020年最好用的手机是哪一款_2020年什么手机好用,买手机建议买什么牌子的?...
  15. angular2项目里使用 Spin(加载中)
  16. ios(苹果)设备直播流媒体 服务搭建
  17. cpuz不显示服务器内存,问题排查:系统不能识别内存但 CPU-Z 可以识别
  18. pyqt pyside2 QLabel 显示图片问题
  19. 安卓加密软件_知识科普-私密相册和加密相册区别
  20. 2017哈工大计算机考研分数线,哈尔滨工业大学2017年考研分数线

热门文章

  1. Amazon Braket 与量子计算
  2. ​微信小程序开发难?资深大V教您微信小程序制作步骤和方法​
  3. python使用selenium打开chrome浏览器时带用户登录信息
  4. rap2搭建,mysql,redis,nginx安装,node环境安装,rap2安装
  5. 德语语法笔记——冠词的用法
  6. 【烈日炎炎战后端】MySQL编程(3.6万字)
  7. EventBus报错:and its super classes have no public methods with the @Subscribe annotation
  8. bash管道符开启子进程
  9. matlab中弹性碰撞课程设计,完全弹性碰撞 matlab
  10. 网页播放器看视频页面绿屏解决方法