Hadoop Mapreduce с двумя банками (одна из банок нужна только для наменода) - PullRequest
0 голосов
/ 30 апреля 2011

Задача mapred - это очень простой 'wordcount', реализованный в Java (plz, см. http://wiki.apache.org/hadoop/WordCount).

после последней строки, "job.waitForCompletion (true);"Я добавляю некоторый код, реализованный в Jython.

Это означает, что библиотеки для Jythoon нужны только для namenode.Тем не менее, я добавил все библиотеки для Jython в один jar, а затем выполнил его

hadoop jar wordcount.jar in out

Количество слов выполняется без проблем.

Проблема, которую я хочу решить, заключается в том, что я должентяжелые библиотеки для Jython, которые не нужны для подчиненных узлов (картографы и редукторы).банка почти 15M (более 14M для Jython).

Могу ли я разделить их и получить те же результаты?

1 Ответ

0 голосов
/ 04 мая 2011

Никто не знает этот вопрос.

Я решил эту проблему следующим образом: даже если она не самая лучшая.

Просто скопируйте jython.jar в / usr / local / hadoop (или установленный путь hadoop), который является стандартным путем к классу hadoop, и создайте jar без jython.jar

Если вам нужны очень большие библиотеки для задания mapreduce, тогда

  1. загрузить jython.jar в hdfs

    hadoop fs -put jython.jar Lib / jython.jar

  2. добавить следующую строку в ваш основной код

    DistributedCache.addFileToClassPath (новый URI ("Lib / jython.jar"));

...