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

2024-02-18

如果我们可以更改 Hadoop 中的数据块大小,请告诉我如何操作。 更改块大小是否有利?如果是,请告诉我为什么以及如何更改?如果没有,请告诉我为什么以及如何?


您可以随时更改块大小,除非dfs.blocksize参数在 hdfs-site.xml 中定义为最终参数。

更改块大小

  1. 在跑步的时候hadoop fs你可以运行的命令hadoop fs -Ddfs.blocksize=67108864 -put <local_file> <hdfs_path>。此命令将以 64MB 块大小保存文件
  2. 在跑步的时候hadoop jar命令 -hadoop jar <jar_file> <class> -Ddfs.blocksize=<desired_block_size> <other_args>。当将输出存储在 HDFS 中时,Reducer 将使用定义的块大小
  3. 作为mapreduce程序的一部分,您可以使用job.set并设置值

更改块大小的标准:

  1. 通常,未压缩文件的大小为 128 MB 效果很好
  2. 您可以考虑减少压缩文件的块大小。如果压缩率太高,则较高的块大小可能会减慢处理速度。如果压缩编解码器不可分割,则会加剧问题。
  3. 只要文件大小大于块大小,就不需要更改块大小。如果处理数据的映射器数量非常多,您可以通过增加分割大小来减少映射器数量。例如,如果您有 1TB 数据,块大小为 128 MB,则默认情况下将需要 8000 个映射器。您可以考虑将分割大小更改为 512 MB 甚至 1 GB,而不是更改块大小,这样处理数据所需的映射器数量就会少得多。

我已经在第 2 部分和第 3 部分中介绍了大部分内容性能调优 https://www.youtube.com/playlist?list=PLf0swTFhTI8qBGRdIwWeP5lh5UY2AfIoG播放列表。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在Hadoop中设置数据块大小?改变它有好处吗? 的相关文章

随机推荐