【问题标题】:Hadoop 3rd Party Library Dependencies on Local FilesHadoop 3rd 方库对本地文件的依赖
【发布时间】:2013-11-30 06:46:09
【问题描述】:

因此,我正在开发一个 hadoop 项目,该项目广泛使用了一些依赖于本地小文件可用性的第三方库。其中很多是配置文件,尽管其中一个是 34MB 的字典文件。本质上,我试图包装库以对更大的输入和输出进行操作。有问题的特定库是s-matchWordNet JWNL

确保这些较小的文件在运行时本地可用于映射器和减速器节点的正确方法是什么?

另一种方法是广泛更改第 3 方库,我显然宁愿避免这样做。肯定有一种方法可以将这些文件打包并传播到本地文件系统,从而避免 MR 作业需要专门从 HDFS 和/或特殊对象中读取。

【问题讨论】:

    标签: hadoop hdfs


    【解决方案1】:

    最标准的做法是将这些文件添加到 Hadoop 的distributed cacheHere's an article 分布式缓存的工作原理。基本上,如果您使用的是 vanilla hadoop API,您可以通过 JobConf 将文件添加到分布式缓存中。

     JobConf job = new JobConf();
     DistributedCache.addCacheFile(new URI("myfile.txt"),job);
    

    如果您使用 uberjar 来运行您的工作,您也可以将它们发送到 uberjar 的类路径中,但这有点脏,并且会增加 jar 文件的大小。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-10-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多