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

时间:2017-12-07 02:12:28

标签: hadoop mapreduce hdfs

我正在使用hadoop 1.0.3。可以根据某些约束在运行时更改(增加/减少)输入拆分/块。是否有一个类来覆盖以完成像FileSplit / InputTextFormat这样的机制?我们可以在HDFS中使用不同大小的块,具体取决于一个作业中的逻辑约束吗?

2 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:0)

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

-D dfs.block.size = 134217728