Hadoop分块与分片

转载 2013年12月03日 10:34:54

HDFS存储系统中,引入了文件系统的分块概念(block),块是存储的最小单位,HDFS定义其大小为64MB。与单磁盘文件系统相似,存储在 HDFS上的文件均存储为多个块,不同的是,如果某文件大小没有到达64MB,该文件也不会占据整个块空间。在分布式的HDFS集群上,Hadoop系统 保证一个块存储在一个datanode上。

        当我们执行hadoop fs -put aa.txt /bb.txt,则aa.txt会被复制为集群的/bb.txt。查看系统的log日志hadoop-$username-namenode-*.log,可以看到类似于

2011-09-07 08:39:12,506 INFO org.apache.hadoop.hdfs.StateChange: BLOCK* NameSystem.addStoredBlock: blockMap updated: 127.
    0.0.1:50010 is added to blk_5715489406767973176_1455 size 32

       这样的信息,里面记录有分配block的元数据信息和block号(blk_5715489406767973176)。

       在另一个日志中hadoop-$username-datanode-*.log可以看到对应的datanode打印出相应的log:

2011-09-07 08:39:12,495 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: Receiving block blk_5715489406767973176_145
    5 src: /127.0.0.1:48492 dest: /127.0.0.1:50010 

       HDFS的namenode只存储整个文件系统的元数据镜像,这个镜像由配置dfs.name.dir指定,datanode则存有文件的metainfo和具体的分块,存储路径由dfs.data.dir指定。

       分析完毕分块,下面讨论一下分片:

       hadoop的作业在提交过程中,需要把具体的输入进行分片。具体的分片细节由InputSplitFormat指定。分片的规则为  FileInputFormat.class中的getSplits()方法指定:

       long splitSize = computeSplitSize(goalSize, minSize, blockSize);

      computeSplitSize:

             Math.max(minSize, Math.min(goalSize, blockSize));

       其中goalSize为“InputFile大小”/“我们在配置文件中定义的mapred.map.tasks”值,minsize为mapred.min.split.size,blockSize为64,所以,这个算式为取分片大小不大于block,并且不小于在mapred.min.split.size配置中定义的最小Size。

        当某个分块分成均等的若干分片时,会有最后一个分片大小小于定义的分片大小,则该分片独立成为一个分片。

Hadoop分块和分片

一、分块:        HDFS存储系统中,引入了文件系统的分块概念(block),块是存储的最小单位,HDFS定义其大小为64MB。存储在 HDFS上的文件均存储为多个块,如果某文件大小没有到达...
  • luenxin
  • luenxin
  • 2016年02月23日 10:01
  • 1735

Hadoop案例之自定义分片策略解决大量小文件问题

Hadoop案例之自定义分片策略解决大量小文件问题   转载: http://blog.csdn.net/qq1010885678/article/details/50771361 1.默认的分片策略...

在Ubuntu上安装Node.js

通过PPA安装Node.js (所谓PPA,表示Personal Package Archives,也就是个人软件包集)安装:sudo apt-get install python-software...

Ubuntu 14.04/14.10 系统安装 Latex及配置中文字体[修订]

简明扼要地介绍来Ubuntu 14.10下如何安装Latex并配置中文字体的操作步骤。

关于hadoop循环获取路径以及获得分片的源代码

protected List listStatus(JobContext job ) throws IOExcepti...

[转]Hadoop切分纯文本时对某一行跨两个分片这种情况的处理

Hadoop切分纯文本时对某一行跨两个分片这种情况的处理 作者: zsxwing 更新: 2012-09-06 22:42:51 发布: 2012-09-06 22:42:51 原文地址:http...

源码分析Hadoop FileInputFormat如何分片

Hadoop采用的是分布式并行计算的模式来处理大数据,在处理时必然要对数据进行分片,将数据由大化小,将一个大的任务化为几个小的任务,这就是hadoop处理大数据的核心思想。         这里要讨论...

hadoop自定义SdfInputFormat,文件按标记分片

由于要用hadoop streaming处理sdf文件,而sdf文件的文件格式为 1 -OEChem-12181003042D ..... $$$$ 以$$$$结尾的多行。 ...
  • j3smile
  • j3smile
  • 2012年03月20日 10:38
  • 1349

Hadoop中分片为什么需要metasplitInfo文件

说明:把之前的东西总结梳理了一下,发上来,比较粗略,不过意思还是比较明白。 在hadoop中,很重要的一个特点就是分片,将输入划分成很多个split,而通过分析我们知道 划分分片的时候会最终生...

Hadoop切分纯文本时对某一行跨两个分片这种情况的处理

当我们提交一个MapReduce程序来处理一个或多个纯文本时,Hadoop会根据设置的分片(split)大小把文件切分成多个(InputSplit),然后分配给MapReduce程序处理。而由于Had...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Hadoop分块与分片
举报原因:
原因补充:

(最多只允许输入30个字)