`
cloudeagle_bupt
  • 浏览: 537792 次
文章分类
社区版块
存档分类
最新评论

关于Split和Block

 
阅读更多

很多人错误地认为split和block两个概念是一起的,有严格的对应关系,有一种很易理解的方式是,HDFS和MapReduce并不是强耦合在一期的,MapReduce处理的数据并不一定来自HDFS,可以来自其他分布式文件系统,甚至在本地磁盘都行(前提是,该文件系统必须实现一定的规范协议),如果这样,Split划分方式必须由程序设定,也就是split和block没有直接的关系,毕竟它们来自不同的世界。
HDFS存储系统中,引入了文件系统的分块概念(block),块是存储的最小单位,HDFS定义其大小为64MB。与单磁盘文件系统相似,存储在HDFS上的文件均存储为多个块,不同的是,如果某文件大小没有到达64MB,该文件也不会占据整个块空间(不同于普通文件系统,如一个基本的物理存储单元:扇区,数据即使小于4KB,要要占用4kb的扇区空间)。在分布式的HDFS集群上,Hadoop系统保证一个块存储在一个datanode上,不跨越存储。
另外就是记录边界的问题,block是在物理上做了划分,但是会出现记录跨界,或者底层文件系统不是HDFS的情形,因此需要一种逻辑上的数据处理单元,处理如记录越界的问题,这就是split的价值所在。
单磁盘文件系统中,存储的物理单元概念是扇区。之上有了逻辑块的
概念,然后是不同的文件系统如ext3等,再往上是VFS(虚拟文件系统),这里面真正的物理单元实际上只有扇区其实,

概念对比:
单磁盘文件系统: 扇区(物理单元)->逻辑块(通用块,解决扇区)->不同的文件系统(ext2,ext3)->VFS(虚拟文件系统) 每一层都是为了解决之前那层的各种不兼容问题。
HDFS: block(物理单元)->split
split记录跨界,但是如果想利用内存里的数据,在上传数据时,DN传输时就读取记录的话,这种方法就不行了,因为此时该文件的分布式存储尚未完成,无法知道下半条记录在哪个节点上的哪块内存中,甚至不知道写进内存没有。这种情况下就需要自定义文件格式,规范记录的边界,不允许跨界。

分享到:
评论

相关推荐

    Hadoop的block Size和split Size究竟是什么关系_1

    1. block是物理上的数据分割,而split是逻辑上的分割 3. 用户可以在M/R 程序中自定义split size 4. 一个split 可以包含多个bl

    Hadoop的block Size和split Size究竟是什么关系-safari1

    1. block是物理上的数据分割,而split是逻辑上的分割 3. 用户可以在M/R 程序中自定义split size 4. 一个split 可以包含多个bl

    split_block:将句子分成不同类型的块

    分块 将句子分成不同类型的块。 注意 所有 strs 都表示为 python 数据结构“str”,因为我们在这里只处理英语。 执照 麻省理工学院。 陈大卫@17zuoye

    MapReduce详解包括配置文件

    默认情况下,Split和Block的大小是一致的。 切片之后,每一个切片(Split)会分配给一个单独的MapTask来处理。而MapTask确定好要处理的切片之后,默认情况下会对切片进行按行处理。需要注意,不同的MapTask之间只是...

    Fast variable block size motion estimation algorithm

    motion estimation algorithms based on merge and split procedures for H.264/MPEG-4 AVC video encoding. The algorithms take advantage of the correlation of the Motion Vectors (MVs) of the different ...

    DB-SFD64KX32M64P4C-HE-LMC-100B-BC.zip_As One_Embflash_flash_flas

    adjacent rows for information block .The split gate cell design and thick oxide tunneling injector attain better reliability and manufacturability compared with alternative approaches. The SFD64KX32...

    DB-SFD64KX32M64P4C-HE-LMC-100B-BC.pdf

    A page is composed of 4 adjacent rows for main memory block and 4 adjacent rows for information block .The split gate cell design and thick oxide tunneling injector attain better reliability and ...

    很早的抓取屏幕免费软件的全部源程序 (D3)

    作者: William Miller. 抓取屏幕的免费软件,带全部源程序;支持抓取整屏、选择区、选择窗口或对象等,是DELPHI3编译得很老的程序,用来研究研究还是不错的。发布者:cjsh(wjh_wy@163.com) QQ:39306255

    python把文本转换为html-Python基础教程-把文本转为HTML格式.pdf

    block=[] #lines函数返回的yield存储值,拿来每⾏遍历,根据是否有空⾏找出段落 for line in lines(file): #判断是否为字符串,字符串才有split()⽅法,如果有,追加到block⾥,开始回到lines中进⼊到下⼀次循环, ...

    QQ聊天程序源码

    QString toId = QString(windowTitle.split("[").at(1)); QString msgType = "MSG_CLIENT_CHAT"; QByteArray block; QDataStream out(&block, QIODevice::WriteOnly); out.setVersion(QDataStream::Qt_4_6); ...

    SAP Advance Purchase Function - Quota Arrangement

    Solution – Quota Arrangement We also need to diversify our source of supplies to mitigate the impact of ...How to split a block of purchase quantity and distribute them among multiple suppliers??

    cran_split.zip_Windows编程_Python_

    Cran split### This code block is evaluatd when the buffer is run in IDLE. It would### not be run if this module were used elsewhere

    split-background-with-text-overlay-guten-block:这是一个类似于核心标题块的WordPress Gutenberg块,但允许管理员在背景的左侧和右侧进行选择以及图像或颜色

    拆分背景与文本叠加这是一个类似于核心标题块的WordPress Gutenberg块,但允许管理员在背景的左侧和右侧进行选择以及图像或颜色。

    大数据面试题.doc

    Mapreduce 的 input split 就是一个 block。( ) 31. NameNode 的 Web UI 端口是 50030,它通过 jetty 启动的 Web 服务。( ) 32. Hadoop 环境变量中的 HADOOP_HEAPSIZE 用于设置所有 Hadoop 守护线程的内存。它默认...

    大数据面试题(1).doc

    Mapreduce 的 input split 就是一个 block。( ) 31. NameNode 的 Web UI 端口是 50030,它通过 jetty 启动的 Web 服务。( ) 32. Hadoop 环境变量中的 HADOOP_HEAPSIZE 用于设置所有 Hadoop 守护线程的内存。它默认...

    disposable-email-domains:一次性和临时电子邮件地址域的列表

    一次性电子邮件域列表 ... 我们不能保证所有这些都仍然可以被视为一次性使用,但我们会进行基本检查,以确保... split ( '@' )[ 1 ] in blocklist_content : message = "Please enter your permanent email address." r

    大数据面试题.docx

    单项选择题 1. 下面哪个程序负责 HDFS 数据存储。... Mapreduce 的 input split 就是一个 block。( ) 31. NameNode 的 Web UI 端口是 50030,它通过 jetty 启动的 Web 服务。( ) 32. Hadoop 环境变

    大数据面试题-.docx

    单项选择题 1. 下面哪个程序负责 HDFS 数据存储。 a)NameNode b)Jobtracker c)... Mapreduce 的 input split 就是一个 block。( ) 31. NameNode 的 Web UI 端口是 50030,它通过 jetty 启动的 Web 服务。( ) 32. Ha

    大数据面试题(1).docx

    单项选择题 1. 下面哪个程序负责 HDFS 数据存储。 a)NameNode b)Jobtracker c)Datanode d)... Mapreduce 的 input split 就是一个 block。( ) 31. NameNode 的 Web UI 端口是 50030,它通过 jetty 启动的 W

    Java IO学习文件处理

    String[] str = line.split(","); List<String> list = map.get(str[1]); if(list == null){ list = new ArrayList(); } list.add(str[0]); map.put(str[1], list); }...

Global site tag (gtag.js) - Google Analytics