2011-04-30 57 views
0

mapred任务是由Java实现的非常简单的“wordcount”(plz,参见http://wiki.apache.org/hadoop/WordCount)。带有两个罐子的Hadoop Mapreduce(其中一个罐子仅在namenode上需要)

在最后一行之后,“job.waitForCompletion(true);” 我添加了一些由Jython实现的代码。

这意味着只需要在名称节点的Jythoon库。 不过,我增加了对Jython的所有库到一个罐子,然后 执行它

hadoop jar wordcount.jar in out 

的单词计数是没有任何问题的完成。

我想解决的问题是我必须为从属节点(映射器和缩减器)不需要的Jython重库。该jar几乎是15M(Jython高于14M)。

我可以拆分他们,并得到相同的结果?

回答

0

没有人知道这个问题。

如下我已经解决了这个问题:即使它不是最好的。

简单,复制jython.jar到/ usr /本地/ Hadoop的(或安装Hadoop的路径),这是Hadoop的默认类路径,并进行了罐子没有jython.jar

如果你需要非常大的图书馆到MapReduce任务的,然后

  1. 上传jython.jar到HDFS

    Hadoop的FS -put jython.jar库/ jython.jar

  2. 添加跟随你的主代码

    DistributedCache.addFileToClassPath(new URI(“Lib/jython.jar”));