如何在hadoop中设置地图块大小?

时间:2016-11-13 09:56:06

标签: hadoop hdfs

我知道hadoop中的块的默认大小是64 MB。我想改变它。我怎样才能做到这一点? 感谢

3 个答案:

答案 0 :(得分:4)

在Hadoop版本1.0中,默认大小为64MB,在版本2.0中,默认大小为128MB。但是如果要更改块大小,请转到 hdfs-site.xml 文件并添加以下属性

<property> 
    <name>dfs.block.size<name> 
    <value>134217728<value> 
    <description>Block size<description> 
<property>

注意:我们应该提到位的大小。例如:134217728位= 128 MB。

如需进一步查询,请转到此链接( 额外

Change Block size of existing files in Hadoop

答案 1 :(得分:2)

有两个参数 dfs.block.size (已弃用且新的参数为dfs.blocksize)和 mapred.max.split.size (已弃用且为新参数是mapreduce.input.fileinputformat.split.maxsize)。当你运行mapreduce程序并且没有给mapred.max.split.size提供任何值时,它采用默认的dfs.block.size,但你可以配置值并控制映射器的数量(但必须谨慎性能)影响esp。当分割大小超过块大小时,映射器通过网络搜索数据,因为数据块将分布在节点上。)

如果你真的想控制地图块大小,最好为每个mapreduce程序执行此操作,而不是设置dfs.block.size,因为它是一个全局参数,并影响存储在hdfs中的所有文件。

此链接详细说明了相同内容 - Split size vs Block size in Hadoop

答案 2 :(得分:1)

Hadoop 1.x:dfs块的默认大小为64 MB

Hadoop 2.x:dfs块的默认大小为128 MB。

从官方网站查看hdfs-default.xml

  

dfs.blocksize

     

134217728

     

新文件的默认块大小(以字节为单位)。您可以使用以下后缀(不区分大小写):k(kilo),m(兆),g(千兆),t(tera),p(peta),e(exa)来指定大小(例如128k,512m) ,1g等),或提供完整的字节大小(例如134217728,128 MB)