草庐IT

collisions_block

全部标签

hadoop - MapReduce:当 2 个 block 分布在不同节点时如何进行输入拆分?

我阅读了以下wiki,但仍然无法澄清一件事。https://wiki.apache.org/hadoop/HadoopMapReduce比如说,我有一个大文件,它被分成两个HDFSblock,这些block物理上保存在两台不同的机器上。考虑在集群中没有这样的节点在本地托管这两个block。据我了解,在TextInputFormat的情况下,HDFSblock大小通常与拆分大小相同。现在因为有2个拆分,2个map实例将在2个本地保存block的单独机器中生成。现在假设HDFS文本文件在一行中间被打断以形成block。hadoop现在会从第二台机器复制block2到第一台机器,以便它可以提

hadoop - 如何在 Hadoop 中设置数据 block 大小?改变它有好处吗?

如果我们可以更改Hadoop中的数据block大小,请告诉我该怎么做。更改block大小是否有利,如果是,请告诉我为什么以及如何?如果否,请告诉我原因和方法? 最佳答案 您可以随时更改block大小,除非dfs.blocksize参数在hdfs-site.xml中定义为final。改变block大小运行时hadoopfs命令你可以运行hadoopfs-Ddfs.blocksize=67108864-put.此命令将保存64MBblock大小的文件运行时hadoopjar命令-hadoopjar-Ddfs.blocksize=.Red

hadoop - 如何在 Hadoop 中动态更改现有文件的 block 大小?

我有一个正在运行的Hadoop集群。我使用HadoopAPI在Hadoop中创建文件。例如使用:create(Pathf,booleanoverwrite,intbufferSize,shortreplication,longblockSize,Progressableprogress)。我想知道如何在创建文件后更改文件的block大小?使用命令或任何API或任何其他方法?因为我在API中找不到更改block大小的函数。谢谢 最佳答案 我不知道,也没有找到使用API动态更改单个文件block大小的方法。有多种方法可以更改存储在HDF

java - 解析大于 hdfs block 大小的 XmlInputFormat 元素

我是HadoopMapReduce的新手(准确地说是4天),我被要求在集群上执行分布式XML解析。根据我在Internet上的(重新)搜索,使用Mahout的XmlInputFormat应该相当容易,但我的任务是确保系统适用于巨大的(~5TB)XML文件。据我所知,发送到映射器的文件拆分不能大于hdfsblock大小(或每个作业的block大小)。[如果我弄错了请纠正我]。我面临的问题是有些XML元素很大(~200MB)而有些很小(~1MB)所以我的问题是:当XmlInputFormat创建的XML元素block大于block大小时会发生什么?它会将整个大文件(例如200MB)发送到映

linux - HDFS block 中的数据是如何存储的?

我在阅读有关HDFS的内容时想知道是否有任何特定的格式来排列block中的数据。假设有一个265MB的文件被复制到Hadoop集群,HDFSblock大小为64MB。因此文件被分成5个部分——64MB+64MB+64MB+64MB+9MB,并分布在数据节点之间。正确吗?我怀疑在存储数据的64MBblock中是否有任何格式?如果数据以任何格式/结构存储在block中,则存储的数据应小于64MB,因为数据结构/header等本身可能会占用一些空间。由于HDFS数据节点是一个逻辑文件系统(它运行在linux之上,HDFS没有单独的分区),所有block都应该作为文件存储在linux分区中。正

hadoop - 如何在 hadoop 中设置 map block 大小?

我知道hadoop中block的默认大小是64MB。我想改变它。我怎样才能做到这一点?谢谢 最佳答案 在Hadoop1.0版中,默认大小为64MB,在2.0版中,默认大小为128MB。但是,如果您想更改block大小,请转到hdfs-site.xml文件并添加以下属性dfs.block.size134217728Blocksize注意:我们应该以位为单位提及大小。例如:134217728位=128MB。如需进一步查询,请转到此链接(Extra)ChangeBlocksizeofexistingfilesinHadoop

hadoop - 为什么 Hadoop 分布式文件系统中最后一个 block 的大小与其他 block 不同?

HDFS中的每个文件都存储为一系列block。除最后一个block外,block大小相同。为什么?有可能改变它吗? 最佳答案 不,您无法更改此行为。文件对应的block大小和block数取决于配置属性dfs.blocksize例如:如果你想在HDFS中保存一个大小为130MB的文件,block大小为64MB,那么将创建3个block:前两个block的大小均为64MB,第三个block的大小为2MB.如果你想让第3个block的大小与前两个block相同,那么就会浪费资源。 关于hado

压缩 block 的 Hadoop 输入拆分

如果我有一个1GB的可拆分压缩文件,默认情况下block大小和输入拆分大小为128MB,那么将创建8个block和8个输入拆分。当mapreduce读取压缩block时,它是解压缩的,解压缩后block的大小变为200MB。但是这个分配的输入拆分是128MB,那么剩下的82MB是如何处理的。是否由下一个输入拆分处理?是否增加了相同的输入拆分大小? 最佳答案 这是我的理解:假设1GB压缩数据=2GB解压缩数据所以你有16个数据block,Bzip2知道block边界,因为bzip2文件提供block之间的同步标记。因此bzip2将数据

hadoop - Namenode 为所有文件 block 存储元数据

在阅读《Hadoop:权威指南》这本书时,我遇到了这个page使用以下行:名称节点也知道给定文件的所有block所在的数据节点,但是,它不会持久存储block位置,因为此信息是在系统启动时从数据节点重建的。我很难理解这是如何工作的。比方说,我在复制因子为3的8节点集群上复制了一个1GB的文件。因此每个数据节点将有1个block,这些block将被复制到其他节点上,从而使每个节点上的block总数有效地达到3.现在namenode应该保留一个包含每个block位置的索引。但是根据文本,如果namenode不存储block位置持久,那么在集群关闭并重新启动后它们将如何重建。无法判断哪个bl

hadoop - Hive 输出大于 dfs block 大小限制

我有一个在配置单元中创建的表test。它由idate分区,经常需要插入分区。这可以将文件留在只有几行的hdfs上。hadoopfs-ls/db/test/idate=1989-04-01Found3items-rwxrwxrwx3deployersupergroup7102015-04-2611:33/db/test/idate=1989-04-01/000000_0-rwxrwxrwx3deployersupergroup7102015-04-2611:33/db/test/idate=1989-04-01/000001_0-rwxrwxrwx3deployersupergroup7