我想知道在MapReduce应用程序中读取Java属性文件的标准做法是什么,以及在提交(启动)作业时如何将位置传递给它。 在常规Java应用程序中,您可以将位置作为JVM系统属性(-D)或main方法的参数传递给属性文件。 MapReduce作业的最佳替代方案(标准做法)是什么?一些好的例子会非常有用。
答案 0 :(得分:2)
最好的选择是使用DistributedCache
,但它可能不是标准方式。可以有其他方式。但到目前为止我还没有看到任何使用其他代码的代码。
我们的想法是将文件添加到缓存中,并在map / reduce setup
方法中读取它,并将值加载到Properties
或Map
。如果你需要片段,我可以添加。
哦,我记得,我的朋友JtheRocker使用了另一种方法。他根据Configuration
对象中的一个键设置文件的全部内容,在setup
上得到它的值,然后解析&在Map
中加载对。在这种情况下,文件读取是在驱动程序上完成的,该驱动程序以前在任务一侧。虽然它适用于小文件并且看起来更干净,但正统人士可能根本不想污染conf
。
我想看看,其他帖子带来了什么。