`

(转)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操作的。想想归并排序算法的思想,对小文件进行排序,然后将小文件归并成大文件的思想,然后就会懂这点了....

分享到:
评论

相关推荐

    12_尚硅谷大数据之HDFS_DataNode1

    本文将深入探讨HDFS中的DataNode及其相关知识点,包括DataNode的工作机制、数据完整性、掉线时限参数设置以及如何服役新数据节点。 6.1 DataNode工作机制 DataNode是HDFS的基石,负责实际的数据存储。每个DataNode...

    【HDFS篇10】DataNode相关概念1

    【HDFS篇10】DataNode相关概念1 在大数据处理领域,Hadoop Distributed File System (HDFS) 是一种分布式文件系统,广泛应用于大规模数据存储。随着企业业务的增长,原有的数据节点可能无法满足日益增长的存储需求...

    HDFS常见问题维护手册V1.01

    1. **HDFS WEB UI上的block块信息监控**:通过HDFS的Web界面,可以查看文件系统中所有块的状态,包括块的数量、大小、副本数等,有助于发现块丢失或过度复制等问题。 2. **HDFS WEB UI上的datanode节点信息监控**:...

    《HDFS——Hadoop分布式文件系统深度实践》PDF

    此外,HDFS的Block大小设计也适应了大数据处理的需求,通常设置为128MB或256MB,以减少磁盘I/O的开销。 在HDFS中,文件被分割成固定大小的块,这些块分布在集群的不同DataNode上。客户端在写入文件时,会先将文件块...

    hdfs源码分析整理

    * Block:Block是HDFS中的一个基本存储单元,负责存储文件块。 * BlockListAsLong:BlockListAsLong是HDFS中的一个数据结构,负责存储文件块的元数据。 * FSDataset:FSDataset是HDFS中的一个数据结构,负责存储文件...

    第2讲_分布式文件系统HDFS.pdf

    文件写入HDFS时,会被切分成若干个Block,每个Block的大小固定,默认为128MB,可自定义。每个Block有多个副本,确保数据的可用性和错误恢复。 Client Client是HDFS的客户端,负责将文件切分为Block,并与NameNode...

    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 ...

    Hadoop源码分析HDFS数据流

    其中,DataNode 是 HDFS 中负责存储数据块的节点,而 DataXceiver 是 DataNode 上负责处理数据流的组件。本文将对 HDFS 数据流进行深入分析,探讨 DataXceiverServer 和 DataXceiver 的实现机制。 ...

    星环大数据平台HDFS

    Block是HDFS的最小存储单元,大小可以自定义,但默认为128MB。为了实现容错,每个Block默认会有3个副本分布在不同的DataNode上。文件的元数据和Block数据是分离存储的,元数据存储在NameNode中,而Block数据则存储在...

    HDFS源码解析

    Block的大小可以根据需求调整,但通常设定为128MB或256MB。Block的复制策略保证了数据的容错性,即使有部分节点失效,也能从其他节点恢复数据。 4. **Heartbeat机制**:NameNode和DataNode之间的通信依赖于心跳机制...

    14、HDFS 透明加密KMS

    在HDFS中,文件通常以块(Block)的形式存储在各个DataNode上,这些块是以明文形式存在的。任何人都可以通过操作系统直接访问Block所在的目录,并使用如`cat`命令查看文件内容,这对于敏感数据来说存在极大风险。 #...

    HDFS 的读写数据流程:

    3. 请求上传第一个block的(0-128M):客户端请求上传第一个block的数据,NameNode返回DataNode列表,表示将数据存储在哪些DataNode上。 4. 返回DataNode列表:NameNode返回DataNode列表,客户端根据列表将数据分配...

    HDFS技术原理深入理解.pptx

    Block的大小可以通过hdfs-site.xml中的dfs.blocksize属性来配置。默认情况下,Block大小为128MB。 复制(Replication) HDFS使用复制机制来确保数据的可用性和可靠性。每个Block都有多个副本, 默认情况下为三个...

    HDFS实验手册.pdf

    - **dfs.datanode.du.reserved**: 在每个数据节点上为非HDFS用途保留的空间大小(单位:字节)。例如:`<value>1073741824</value>`,即1GB。 - **dfs.namenode.acls.enabled**: 是否启用文件访问控制列表(ACLs),...

    揭秘大数据存储基石HDFS-理论篇.pptx_揭秘大数据存储基石HDFS_pptx_

    HDFS将大文件分割成固定大小的数据块(通常为128MB或256MB),并将其复制到多个DataNode上。默认的副本系数为3,这意味着每个数据块都有3个副本,分别存储在不同的节点上,增强了数据的冗余性和容错性。 ### 3. ...

    HDFS文件读写操作

    HDFS(Hadoop Distributed File System)是Hadoop项目的核心子项目之一,旨在提供高吞吐量的数据访问,适用于大规模数据集上的应用。HDFS采用了Master/Slave的架构模型,其中包含两大核心组件:NameNode和DataNode。...

    HDFS原理介绍

    - **存储过程**:当客户端上传一个文件时,HDFS会按照默认设置将文件分割成多个block(例如64MB),并根据NameNode的指示存储到不同的DataNode上。 - **机架感知**:为了提高数据的可靠性和读取效率,HDFS具备机架...

    HDFS详解和配置文件

    - Block大小可以通过配置文件`hdfs-site.xml`中的`dfs.blocksize`属性进行调整。 - 如果文件大小小于Block大小,则按实际文件大小分配Block。 **Block的存储**: - Block会被复制并分布存储在不同的DataNode上,...

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

    HDFS的核心特点是将大文件分割成若干个固定大小的Block,并在多台服务器(DataNode)上以多副本的方式存储,以确保数据的容错性和高可用性。以下将详细阐述HDFS的存储机制、Block、元数据、读写流程及其副本放置策略...

    step7_HDFS(HDFS详解)1

    文件会按照固定的大小(blocksize)切成若干块后分布式存储在若干台DataNode上,每一个文件块可以有多个副本,并存放在不同的DataNode上。 HDFS提供了shell命令行客户端和Java接口两种方式来操作文件系统。shell...

Global site tag (gtag.js) - Google Analytics