作业 运行 期间可以更改 HDFS 块大小吗?自定义拆分和变体大小

Can HDFS block size be changed during job run? Custom Split and Variant Size

我正在使用 hadoop 1.0.3。是否可以根据某些约束在 运行 时间内更改 (increase/decrease) 输入 split/block。是否有一个 class 可以重写以实现像 FileSplit/InputTextFormat 这样的机制?我们能否根据一项作业中的逻辑约束在 HDFS 中使用不同大小的块?

您不仅限于 TextInputFormat...这完全可以根据您正在阅读的数据源进行配置。大多数示例都是以行分隔的纯文本,但这显然不适用于 XML,例如

不,块边界不能在运行时更改,因为您的数据应该已经在磁盘上,并且可以读取。

但是 InputSplit 取决于给定作业的 InputFormat,它应该在整个特定作业中保持一致,但是代码中的 Configuration 对象基本上是一个 Hashmap,可以在 运行, 当然

如果您只想更改特定 运行 或应用程序的块大小,您可以通过覆盖“-D dfs.block.size=134217728”来完成。它可以帮助您更改应用程序的块大小而不是更改 hdfs-site.xml.

中的整体块大小

-D dfs.block.size=134217728