Hadoop需要了解的 block-块 的含义

 Hadoop存储数据是以block存储的

HDFS的相关概念

           1.hdfs设计原理

                  负载均衡、考虑分布式计算  -- -->block机制
     
                   ①  block size :   块大小是为了解决负载均衡,和移动计算;针对文件说的
                   ②  副本数:解决数据的可靠性;是针对块说的

           2.block默认大小为128m【hadoop2.0版本以上】,版本以下是 64M

                 原因:默认传输效率100M/s   寻址时间占传输时间的1%  寻址时间为10ms

 3.block默认的设置参数  --通过自己设置为10字节

            #很多属性默认都是字节,就是不带单位的。

     ①dfs.blocksize
      <property>
  <name>dfs.blocksize</name>
  <value>10</value>
  <description>
        新文件的默认块大小(以字节为单位)。
您可以使用以下后缀(不区分大小写):k,m,g,t,p,e指定大小(如128k,512m,1g等)
或者以字节为单位提供完整的大小(例如128MB的134217728)。
  </description>
</property>

     ② 修改block大小,block最小限值,默认1M
       <property>
  <name>dfs.namenode.fs-limits.min-block-size</name>
  <value>10</value>
  <description>Minimum block size in bytes, enforced by the Namenode at create
      time. This prevents the accidental creation of files with tiny block
      sizes (and thus many blocks), which can degrade
      performance.</description>
</property>
/*翻译
以字节为单位的最小块大小,由Namenode在创建时执行。
这可以防止意外创建小块大小的文件(并因此阻止很多块),
这可能会降低性能。
*/
***************************************************************
      3)  dfs.bytes-per-checksum
        <property>
              <name>dfs.bytes-per-checksum</name>
              <value>10</value>
              <description>The number of bytes per checksum.  Must not be larger than
                  dfs.stream-buffer-size
              </description>
          //每个校验和的字节数。 一定不能大于dfs.stream-buffer-size

</property>

    针对block的总结:    

总结:
                    block是物理的,真正存储的位置在本地磁盘{hadoop.tmp.dir}/dfs/data,是本地存                       储,是块 文件, 不是我们所谓的HDFS分布式文件系统。

              Hadoop需要了解的 block-块 的含义
          上面红框:表示   block存储的是我们的数据文件,按照块号存储的物理文件。
                          block是针对文件说的,
    而  hadoop fs -lsr  /  :   显示的是我们的分布式文件系统;即
            Hadoop需要了解的 block-块 的含义 
在hdfs的根目录下/ ,显示块的信息:hdfs  fsck   /  -files  blocks
    
Hadoop需要了解的 block-块 的含义