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

时间:2015-04-13 12:01:21

标签: hadoop hdfs

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

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

2 个答案:

答案 0 :(得分:0)

正如你所提到的here

  1. 每当您更改配置时,都需要重新启动NameNode和DataNodes,以便他们更改其行为。
  2. 不,它不会。它将保留旧文件的旧块大小。为了使其更改新块,您需要重写数据。您可以对数据执行hadoop fs -cp或distcp。新副本将具有新的块大小,您可以删除旧数据。
  3. 查看链接以获取更多信息。

答案 1 :(得分:0)

在第1点 - 在Hadoop 1.2.1上,在hdfs-site.xml文件中更改dfs.block.size后不需要重新启动。通过查看http://namenode:50070/dfshealth.jsp

上的Hadoop管理页面,可以轻松验证文件块大小

确保更改所有数据节点上的dfs.block.size。