bolck块、默认块大小的调大和调小

本文深入探讨Hadoop HDFS的Block机制,包括默认大小、副本存储、调整方法及与磁盘、网络和业务数据的关系。讲解了如何通过修改配置文件调整Block大小,并解决了调整过程中可能遇到的异常问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

block介绍
  1. hadoop默认情况下,一个block块大小为128m
    HDFS以block块的形式存储在集群上,默认生成三份副本,存储在【${hadoop.tmp.dir/dfs.data}】目录下
    HDFS中小于一个块大小的文件不会占满整个快的空间,文件有多大占多大空间
    块是物理存在的,以文件的形式存储在数据节点datanode中,例如:
    在这里插入图片描述
  2. block块大小设置合理性
    a.磁盘存储设备:机械、固态
    b.网络带宽
    c.业务数据
  3. HDFS中的fsck指令可以显示块信息
    文件系统中块构成:hdfs fsck / files -blocks
block块大小的调整

一、block块调大
修改hdfs.site.xml文件

	<property>
		 <name>dfs.blocksize</name>
		 <value>256m</value>
	</property>

二、block块调小

  1. 修改hdfs-site.xml文件中的dfs.blocksize属性值【同上,比如改为dfs.blockszie=10】

    #在执行上传指定时,会报异常如下:
    put: Specified block size is less than configured minimum value
    (dfs.namenode.fs-limits.min-block-size): 10 < 1048576

  2. 修改hdfs-site.xml文件中的dfs.namenode.fs-limits.min-block-size属性值
    默认的最小块大小是1m,修改时blocksize要大于min-block-size

    <property>
      	<name>dfs.namenode.fs-limits.min-block-size</name>
      	<value>1048576</value>
    </property>
    

    #修改完之后,在执行上传指令时还报异常,如下:
    -put: Invalid values: dfs.bytes-per-checksum (=512) must divide block size (=10).

  3. 修改hdfs.site.xml文件的dfs.bytes-per-checksum属性值
    checksum校验和是为了保证数据的完整性,一般不改,如果改都是要调大,但是也不能大于stream-buffer-size的值
    默认的大小为512字节,每512个字节去校验一个block块,但本例中的块大小为10字节,达不到校验的数值,所以要改小于10字节

    <property>
      <name>dfs.bytes-per-checksum</name>
      <value>512</value>
    </property>
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值