【发布时间】:2015-10-21 19:02:33
【问题描述】:
我有一堆文件需要在我的映射器类中访问。我的假设是,如果我将这些文件打包到我的作业 jar 文件中,我不需要将它们放在 DistributedCache 中,因为 jar 文件会作为一个整体复制到所有节点,并且何时提取这些文件会在那里?我是否做出了正确的假设? 如果没有,是否可以将这些文件与我的 jar 文件一起发送,而不是将它们单独复制到 HDFS?
【问题讨论】:
我有一堆文件需要在我的映射器类中访问。我的假设是,如果我将这些文件打包到我的作业 jar 文件中,我不需要将它们放在 DistributedCache 中,因为 jar 文件会作为一个整体复制到所有节点,并且何时提取这些文件会在那里?我是否做出了正确的假设? 如果没有,是否可以将这些文件与我的 jar 文件一起发送,而不是将它们单独复制到 HDFS?
【问题讨论】:
您可以将它们包含在您的 jar 中。根据大小的大小,您将拥有网络带宽使用量。
使用分布式缓存也是不错的选择,用于传送文件、zip 文件或 jar 文件。运行 Hadoop jar 命令时,可以单独使用每个选项。这些文件将被移动到任务节点并可供应用程序 jar 使用。移动 jar 文件(map reduce 依赖 jar)的一个区别是,它们将添加到类路径中,以便 mp reduce jar 运行。对于其他文件和 zip 文件,它们只会被移动到任务节点。
【讨论】: