`

(转)HDFS里Datanode上block大小的设置问题

阅读更多

转载自:http://blog.csdn.net/pear_zi/article/details/8082752

在HDFS里面,data node上的块大小默认是64MB(或者是128MB或256MB)

 

问题: 为什么64MB(或128MB或256MB)是最优选择?

1.为什么不能远少于64MB(或128MB或256MB) (普通文件系统的数据块大小一般为4KB)

a.减少硬盘寻道时间(disk seek time)

 HDFS设计前提是支持大容量的流式数据操作,所以即使是一般的数据读写操作,涉及到的数据量都是比较大的。假如数据块设置过少,那需要读取的数据块就比较多,由于数据块在硬盘上非连续存储,普通硬盘因为需要移动磁头,所以随机寻址较慢,读越多的数据块就增大了总的硬盘寻道时间。当硬盘寻道时间比io时间还要长的多时,那么硬盘寻道时间就成了系统的一个瓶颈。合适的块大小有助于减少硬盘寻道时间,提高系统吞吐量。

b.减少Namenode内存消耗

 对于HDFS,他只有一个Namenode节点,他的内存相对于Datanode来说,是极其有限的。然而,namenode需要在其内存FSImage文件中中记录在Datanode中的数据块信息,假如数据块大小设置过少,而需要维护的数据块信息就会过多,那Namenode的内存可能就会伤不起了。

 

2.为什么不能远大于64MB(或128MB或256MB),这里主要从上层的MapReduce框架来讨论

a.Map崩溃问题:

 系统需要重新启动,启动过程需要重新加载数据,数据块越大,数据加载时间越长,系统恢复过程越长。

b.监管时间问题:

 主节点监管其他节点的情况,每个节点会周期性的把完成的工作和状态的更新报告回来。如果一个节点保持沉默超过一个预设的时间间隔,主节点记录下这个节点状态为死亡,并把分配给这个节点的数据发到别的节点。对于这个“预设的时间间隔”,这是从数据块的角度大概估算的。假如是对于64MB的数据块,我可以假设你10分钟之内无论如何也能解决了吧,超过10分钟也没反应,那就是死了。可对于640MB或是1G以上的数据,我应该要估算个多长的时间内?估算的时间短了,那就误判死亡了,分分钟更坏的情况是所有节点都会被判死亡。估算的时间长了,那等待的时间就过长了。所以对于过大的数据块,这个“预设的时间间隔”不好估算。

c.问题分解问题:

 数据量大小是问题解决的复杂度是成线性关系的。对于同个算法,处理的数据量越大,它的时间复杂度也就越大。

d.约束Map输出:

 在Map Reduce框架里,Map之后的数据是要经过排序才执行Reduce操作的。想想归并排序算法的思想,对小文件进行排序,然后将小文件归并成大文件的思想,然后就会懂这点了....

分享到:
评论

相关推荐

    大数据平台构建:HDFS运行原理.pptx

    Block存储到DataNode上,会以多副本的形式进行存储,默认副本数为3,通过机架感知和副本均匀分布的策略保证数据的高可用性。数据存储之后,对应的元数据会保存在NameNode中。 Block 二、Block lock文件是DataNode...

    hdfs源码.zip

    4.3.1 Datanode上数据块副本的状态 335 4.3.2 BlockPoolSlice实现 335 4.3.3 FsVolumeImpl实现 342 4.3.4 FsVolumeList实现 345 4.3.5 FsDatasetImpl实现 348 4.4 BlockPoolManager 375 4.4.1 ...

    HDFS详解和配置文件

    HDFS(Hadoop Distributed File System,Hadoop分布式文件系统)是Hadoop中...在HDFS中,数据存储的基本单位是Block,即文件上传到HDFS上之后,都会被切分为Block形式来进行存储,Block最终会落地到DataNode的磁盘上。

    外网无法访问HDFS org.apache.hadoop.hdfs.BlockMissingException: Could not obtain block

    今天使用自己的电脑,使用外网操作阿里云服务器上的HDFS。 报错 org.apache.hadoop.hdfs.BlockMissingException: Could not obtain block 2、百度结果 参考 ...

    Hadoop面试题总结(二)——HDFS

    5、文件大小设置,增大有什么影响?   HDFS中的文件在物理上是分块存储(block),块的大小可以通过配置参数( dfs.blocksize)来规定,默认大小在hadoop2.x版本中是128M,老版本中是64M。   思考:为什么块的大小不...

    大数据平台构建:HDFS架构.pptx

    HDFS的架构是较为经典的主/从架构,在架构图中NameNode是主节点,DataNode是从节点,HDFS Client是客户端、HDFS提供了比较丰富的客户端像cli、api、gui等等支持,SecondaryNameNode作为辅助NameNode工作的一个辅助...

    11HDFS的读写流程&NameNode、DataNode工作机制——好程序

    一、 HDFS前言 设计思想  分而治之:将大文件、大批量文件,分布式存放在大量服务器上,以便于采取分而治之的方式对海量数据进行运算分析...HDFS中的文件在物理上是分块存储(block),块的大小可以通过配置参数( df

    大数据平台常见面试题.pdf

    TaskTracker 都需要运⾏在 HDFS 的 DataNode 上 4. HDFS 默认 Block Size a)32MB b)64MB c)128MB 注:旧版本是64MB 5. Client 端上传⽂件的时候下列哪项正确 a)数据经过 NameNode 传递给 DataNode b)Client 端将⽂...

    HDFS入门笔记------架构以及应用介绍

    本篇博客将从以下几个方面讲述HDFS:1、分布式文件系统与HDFS2、HDFS的体系结构3、HDFS—-NameNode相关概念4、HDFS—-DataNode相关概念5、HDFS—-block块相关概念6、HDFS—-副本数相关概念7、HDFS的具体操作方式①...

    大数据面试题-.docx

    Client 端上传文件的时候下列哪项正确 a)数据经过 NameNode 传递给 DataNode b)Client 端将文件切分为 Block,依次上传 c)Client 只上传数据到一台 DataNode,然后由 NameNode 负责 Block 复制工作 11. 下列哪个是 ...

    【大数据入门笔记系列】第三节 Hdfs读、写数据处理流程

    NameNode:管理分布式文件系统的元数据,这些元数据是一些诸如描述文件的存储路径以及block具体在哪些DataNode上的具体位置等; DataNode:DataNode节点用来保存文件数据块(block),它只负责接受存储、查询发送...

    大数据开发技术.pdf

    Namenode 负责 维护整个 hdfs 文件系统的目录树结构,以及每一个文件所对应的 block 块信息(block 的 id,及所在的 datanode 服务器) 。 2 Namenode 节点负责确定指定的文件块到具体的 Datanode 结点的 映射关系。...

    大数据开发笔试.docx

    答:Hadoop Distributed File System即: Hadoop分布式文件系统,就是把数据划分成不同的Block分别存储在不同节点的设备上。它分为两个部分:NameNode和DateNode,NameNode相当于一个领导,将文件系统的Meta-data...

    大数据面试题.doc

    Client 端上传文件的时候下列哪项正确 a)数据经过 NameNode 传递给 DataNode b)Client 端将文件切分为 Block,依次上传 c)Client 只上传数据到一台 DataNode,然后由 NameNode 负责 Block 复制工作 11. 下列哪个是 ...

    大数据面试题(1).doc

    Client 端上传文件的时候下列哪项正确 a)数据经过 NameNode 传递给 DataNode b)Client 端将文件切分为 Block,依次上传 c)Client 只上传数据到一台 DataNode,然后由 NameNode 负责 Block 复制工作 11. 下列哪个是 ...

    大数据面试题,唬住50k.pdf

    client⽤hdfs的api将数据块(默认是64M)存储到datanode上。 4. datanode将数据⽔平备份。并且备份完将反馈client。 5. client通知namenode存储块完毕。 6. namenode将元数据同步到内存中。 7. 另⼀块循环上⾯的...

    【4】HDFS 的数据流

    3)客户端请求第一个 Block 上传到哪几个DataNode 服务器上。 4)NameNode 返回3 个DataNode 节点,分别为dn1、dn2、dn3。 5)客户端通过FSDataOutputStream模块请求dn1 上传数据,dn1 收到请求会继续调用dn2,然后...

    大数据面试题.docx

    Client 端上传文件的时候下列哪项正确 a)数据经过 NameNode 传递给 DataNode b)Client 端将文件切分为 Block,依次上传 c)Client 只上传数据到一台 DataNode,然后由 NameNode 负责 Block 复制工作 11. 下列哪个是 ...

    大数据面试题(1).docx

    Client 端上传文件的时候下列哪项正确 a)数据经过 NameNode 传递给 DataNode b)Client 端将文件切分为 Block,依次上传 c)Client 只上传数据到一台 DataNode,然后由 NameNode 负责 Block 复制工作 11. 下列哪个是 ...

    DongTL#bigdata_interview#2-HDFS的读写流程1

    得到存放block的DataNode的集合后,client与第一个NameNode建立pipeline连接,第一个节点与第二个节点建立连接,以此类推连接所有节点

Global site tag (gtag.js) - Google Analytics