Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
为了避免在 Hadoop 类的每个实例上分配内存,然后依靠 GC 来清理这些内存,我使用了静态对象,我在该方法Mapper中进行读写访问。map
Mapper
map
我必须关心线程安全吗?
默认情况下,每个 map 任务都将在自己的 JVM 上运行。因此,您不会从使用静态对象中获得任何好处。我建议不要做一些奇怪的事情,除非你真的面临性能问题。
补充 Enno 和 Quetzalcoatl 所说的话。当map任务在JVM中运行时,它会创建一个Mapper类的对象,并为每个输入调用map fn(即使用TextInputFormat时为文件的每一行)。但它按顺序而不是并行调用映射 fn。因此,您正在使用的对象应该没有线程安全问题。
问候, 马尼什