复本,块,机架感知与复本存放策略

11 篇文章 0 订阅
3 篇文章 0 订阅

HDFS的副本机制

在HDFS中,所有的文件都是以block块的方式存储在HDFS文件系统中,块非常适合用于数据备份,从而提高容错能力

通过配置hdfs-site.xml,可以配置副本数量,默认是3

有几个datanode就可以存放几个副本副本,假如
副本设置为3,只有两个DataNode,那么实际的副本就只有两个

block块

重点

block块是从物理上(磁盘)上进行分块存储。与切片不同,切片知识逻辑上将数据分开,其实还是一个整体数据,只是改变了运算时的偏移量

每个副本存储都是用block块,大于128M或者更大的文件,存储时会以128M为单位进行拆分。拆分成多个block块进行存储

128MB只是一个物理概念,到了128就会进行拆分,假如实际大小没有128MB,那么一个块的实际大小还是原来的大小,例如64MB的块,在实际分配的时候只会分配一个64MB大小的空间。并不会给他分配128MB

磁盘存储数据块:磁盘块是磁盘进行数据读写的最小单位(512字节)。文件系统构建在磁盘之上。磁盘块是管理这个文件系统的块。文件块的大小需是磁盘块的整数倍。

hdfs的block块:默认128mb。与单一磁盘上的文件系统相似。hdfs上的文件也被分为多个块来存储,但是不同的是,在block块没满的时候,他不会占据整个块的空间。

通过配置hdfs-site.xml,可以配置块的大小

为什么HDFS中的块这么大(面试重点)

在一个MR程序中,本地运行一个巨大数据的任务的一个切片才仅有32MB,那么为什么block块的会设置的这么大呢?小编也很好奇,下面小编将告诉大家为什么hdfs 的block块这么大。

为什么HDFS的块这么大呢?👇

HDFS的块非常大,是为了节省寻址时间,传输时间远大于寻址时间,让大部分时间用于传输。因而传输一个多个块组成的文件,取决于传输速率。

原则上来讲,随着硬盘传输速率增大,HDFS的块也会越来越大。

但是这个参数不能设置的过大,如果过大,会导致任务太少。如果任务少于集群节点数(DN),就会有机群节点被浪费。导致运行速度变慢。比如有一个384MB的文件在三个节点的机群上进行读写。假如block块设置为512MB,这样即便有三个节点,仍然只有一个节点执行任务,效率会很低,如果block块设置成128MB,这时三个节点就可以并发处理数据。

所以说block块不能太大不能太小(大量小文件会导致寻址时间过长,而读取又很快,违反了hdfs的设计理念),也不能太大(大到块数小于节点数就会效率很低),所以尽量设置的合理一些

block块过小,会导致数量变多,寻址时间变长。

block块过大,会导致块数量少,单个任务执行时间过长。

合理设置效率最大化

什么是机架感知

HDFS采用一种称为机架感知的策略来改进数据的可靠性、可用性和网络带宽的利用率。通过一个机架感知的过程,NameNode可以确定每一个 DataNode所属的机架id(这也是NameNode采用网络拓扑数据结构来存储数据节点的原因)。

一个简单但没有优化的策略就是将副本存放在不同的机架上,这样可以防止当整个机架失效时数据的丢失,并且允许读数据的时候充分利用多个机架的带宽。这种策略设置可以将副本均匀分布在集群中,有利于当组件失效的情况下的均匀负载,但是,因为这种策略的一个写操作需要传输到多个机架,这增加了写入时的代价。

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

优点:

此策略可以减少机架间写入流量,从而提高写入性能。机架故障的概率远小于节点故障的概率,此策略不会影响数据的可靠性和可用性。

hadoop默认感知策略是

在运行客户端的节点上放第一个副本(如果客户端运行在集群外,会随机选择第一个节点,系统会自动规避储存太满或者事务太忙的节点)。

第二个复本存放的节点选择一个与第一个节点不同且随机的机架上的随机节点上(离架,也是自动规避储存太慢或者太忙的节点)

第三个放在与第二个节点相同机架上的随机节点上

配置感知策略

hadoop默认是没有机架感知策略的,数据会随机且均匀的分散在所有节点上(随机第一个,第二个随机在出了第一个以外的机架上,第三个随机到该机架以外的节点)

启用机架感知,需要在namenode所在机器配置hadoop-site.xml文件

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值