0

我正在 Hadoop 中编写一个 Java MapReduce 程序,每个 reducer 都需要访问一个静态 XML 文件(其中包含一些关于将规则应用于值列表的业务逻辑)。我决定将此文件存储在分布式缓存中,然后利用分布式缓存 API 在每个减速器中访问它(序列化它)。我还没有实现这个,但是在 HDFS/分布式模式下使用这个功能时,API 看起来很简单。但是,是否可以在伪分布式独立模式下使用它来进行测试?它将如何运作?

另外,在每个 reducer 中序列化文件是不是一个坏主意?我愿意就将“全局静态数据”分发给减速器的其他方式提出建议。

谢谢!

4

1 回答 1

1

是的,您可以 - 它的工作方式与在真实集群中的工作方式相同。

如果分布式缓存不固定,这是一个好主意。另一种选择是将数据打包到包含作业代码的 jar 中,在这种情况下,当您必须更改 XML 时它不会那么灵活(您仍然可以更改 jar,但这不是一种干净的方法) )

于 2012-06-06T09:48:20.180 回答