java - 在 Hadoop MapReduce 应用程序中读取 Java 属性文件

标签 java hadoop mapreduce

我想知道在 MapReduce 应用程序中读取 Java 属性文件的标准做法是什么,以及如何在提交(开始)作业时将位置传递给它。 在常规 Java 应用程序中,您可以将位置作为 JVM 系统属性 (-D) 或参数传递给属性文件,或传递给 main 方法。 对于 MapReduce 作业,最佳替代方案(标准做法)是什么?一些很好的例子会很有帮助。

最佳答案

最好的替代方法是使用 DistributedCache,但它可能不是标准方法。可以有其他方式。但到目前为止,我还没有看到任何代码使用其他任何东西。

想法是将文件添加到缓存中,并在 map/reduce 的 setup 方法中读取它,并将值加载到 PropertiesMap 中。如果您需要片段,我可以添加。

哦,我记得,我的 friend JtheRocker使用了另一种方法。他根据 Configuration 对象中的键设置文件的全部内容,在 setup 上获取它的值,然后解析并将这些对加载到 Map 中.在这种情况下,文件读取是在驱动程序上完成的,而驱动程序以前是在任务端。虽然它适用于小文件并且看起来更干净,但正统的人可能根本不喜欢污染 conf

我想看看其他帖子带来了什么。

关于java - 在 Hadoop MapReduce 应用程序中读取 Java 属性文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26747113/

相关文章:

hadoop - Hadoop服务未运行

apache-spark - Spark中转换的失败处理

hadoop - 如何在MapReduce中为输出赋予列名?

hadoop - HadoopImageProcessingInterface(HIPI)示例程序

java - 关于映射未记录的 Java Eclipse 项目的建议

java - DynamoDB - 查询而不是扫描 - 如何使用随机生成的 key 实现

java - 在 http 请求之间保留文件

java - 关于 `Variable (var-name) might not have been initialized`

java - 输入输出同一个目录,MR会不会覆盖记录?

sql - hive 中的排序字段