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

Posted

技术标签:

【中文标题】如何在hadoop中设置地图块大小?【英文标题】:How can i set the map chunk size in hadoop? 【发布时间】:2016-11-13 09:56:05 【问题描述】:

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

【问题讨论】:

【参考方案1】:

在 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

【讨论】:

【参考方案2】:

有两个参数dfs.block.size(已弃用,新的​​为dfs.blocksize)和ma​​pred.max.split.size(已弃用和新的参数是mapreduce.input.fileinputformat.split.maxsize)。当您运行 mapreduce 程序并且不为 mapred.max.split.size 提供任何值时,它采用默认的 dfs.block.size 但您可以配置该值并控制映射器的数量(但必须注意性能影响,尤其是当拆分大小大于块大小时,您的映射器会通过网络寻找数据,因为数据块将分布在节点之间)。

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

此链接非常详细地讨论了相同的内容 - Split size vs Block size in Hadoop

【讨论】:

【参考方案3】:

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

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

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

dfs.blocksize

134217728

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

【讨论】:

以上是关于如何在hadoop中设置地图块大小?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 OpenLayers 中设置初始地图区域?

如何在 Hadoop 流中设置每个节点的最大减速器数量?

如何在水经注地图发布中间件中设置离线数据目录?

HDFS文件系统Block块

如何在 FLUTTER 中设置一个按钮以重定向到我的地图?

在iOS Objective C的UIScrollView中设置时如何捏谷歌地图