Hadoop 映射阶段中使用的空间量

Hadoop 映射阶段中使用的空间量,hadoop,mapreduce,Hadoop,Mapreduce,我是hadoop新手,我开始想:映射阶段的结果会占用多少磁盘空间?我指的是地图的输出和reduce的输入 这取决于执行的算法?hadoop的设置和配置?节点的数量 这取决于执行的算法 当然可以。想象一个map函数发出(a,b),另一个map函数发出(a,b)和(b,a)。第二台发射的数据是第一台的两倍 hadoop的设置和配置 是的,您可以将hadoop设置为压缩映射输出(conf.set(“mapreduce.map.output.compress”,true))。此外,您可以在不同的压缩选项

我是hadoop新手,我开始想:映射阶段的结果会占用多少磁盘空间?我指的是地图的输出和reduce的输入

这取决于执行的算法?hadoop的设置和配置?节点的数量

这取决于执行的算法

当然可以。想象一个map函数发出
(a,b)
,另一个map函数发出
(a,b)
(b,a)
。第二台发射的数据是第一台的两倍

hadoop的设置和配置

是的,您可以将hadoop设置为压缩映射输出(
conf.set(“mapreduce.map.output.compress”,true)
)。此外,您可以在不同的压缩选项中进行选择,如gzip、bzip2和其他压缩选项。有关选择正确压缩选项的更多详细信息,请参见

此外,hadoop提供了一些可变长度的格式类型,比如VIntWritable for Integer,可以节省大量空间。可变长度格式类型根据需要使用尽可能多的字节来存储其值,例如,当存储为VIntWritables时,较小的数字使用的字节数少于较大的数字

节点的数量

在这里,我会说不(我不确定,但我想不出这会有什么影响)。然而,这取决于映射器的数量,而且还取决于输入数据的大小。例如,假设您希望为每个输入键映射与映射器数量相同的(键、值)对。如果你有更大的数据,那么你可能有更多的映射器。。。或者更简单地说,为映射器的每个输入键输出(键、值)对。更多数据->更大的输出

这取决于执行的算法

当然可以。想象一个map函数发出
(a,b)
,另一个map函数发出
(a,b)
(b,a)
。第二台发射的数据是第一台的两倍

hadoop的设置和配置

是的,您可以将hadoop设置为压缩映射输出(
conf.set(“mapreduce.map.output.compress”,true)
)。此外,您可以在不同的压缩选项中进行选择,如gzip、bzip2和其他压缩选项。有关选择正确压缩选项的更多详细信息,请参见

此外,hadoop提供了一些可变长度的格式类型,比如VIntWritable for Integer,可以节省大量空间。可变长度格式类型根据需要使用尽可能多的字节来存储其值,例如,当存储为VIntWritables时,较小的数字使用的字节数少于较大的数字

节点的数量


在这里,我会说不(我不确定,但我想不出这会有什么影响)。然而,这取决于映射器的数量,而且还取决于输入数据的大小。例如,假设您希望为每个输入键映射与映射器数量相同的(键、值)对。如果你有更大的数据,那么你可能有更多的映射器。。。或者更简单地说,为映射器的每个输入键输出(键、值)对。更多数据->更大的输出。

这取决于数据量和您在映射阶段所做的工作类型。它取决于数据量和您在映射阶段所做的工作类型。