如果我们需要使用多个reducer来做reduce作业,考虑到一个reducer不能为该作业的全局数据提供那么多内存,我们的全局变量存储在哪里?
是否存储在HDFS中并被每个reducer访问?
或
我们需要明确。
No。不在HDFS中存储。我们不需要显式地做任何事情。
在单独的JVM中运行的每个Reducer
和Reducer
实例将在jvm heap memory
区域中维护自己的变量。所以每个Reducer都有自己的全局或局部变量实例。对象的创建和存储与普通java程序相同。对于Mapper
或Reducer
对象,没有什么特别的事情发生。