更改Hadoop中现有文件的块大小

div*_*gon 8 hadoop hdfs

考虑一个hadoop集群,其默认块大小为64MB hdfs-site.xml.但是,后来团队决定将此更改为128MB.以下是我对上述场景的疑问?

  1. 此更改是否需要重新启动群集,否则它将自动占用,所有新文件的默认块大小为128MB?
  2. 块大小为64M的现有文件会发生什么?配置中的更改是否会自动应用于现有文件?如果它将自动完成,那么何时完成 - 一旦完成更改或群集启动?如果没有自动完成,那么如何手动执行此块更改?

Ner*_*rve 10

此更改是否需要重新启动群集,否则它将自动占用,并且所有新文件的默认块大小均为128MB

需要重新启动群集才能使此属性更改生效.

块大小为64M的现有文件会发生什么?配置中的更改是否会自动应用于现有文件?

现有块不会更改其块大小.

如果没有自动完成,那么如何手动执行此块更改?

要更改现有文件,可以使用distcp.它将使用新块大小复制文件.但是,您必须手动删除旧块大小的旧文件.这是您可以使用的命令

hadoop distcp -Ddfs.block.size=XX /path/to/old/files /path/to/new/files/with/larger/block/sizes.
Run Code Online (Sandbox Code Playgroud)