Включение jar-файлов в потоковую передачу Hadoop с использованием Groovy - PullRequest
0 голосов
/ 30 июля 2010

Мне нравится потоковое вещание Hadoop за его способность быстро выкачивать, а грязные - уменьшать количество рабочих мест. Я также люблю Hroovy за то, что я сделал все мои тщательно закодированные Java доступными для скриптового языка. Теперь я хотел бы собрать 2 вместе. Я хотел бы взять банку с некоторыми из моих классов Java, и использовать их в основанных на Groovy картографов и редукторов.

Есть ли простой способ сделать это? Похоже, что это может привести к значительному сокращению времени разработки задач по уменьшению карт, особенно тех, которые я собираюсь запустить несколько раз.

я хотел бы сделать что-то вроде:

hadoop jar streaming.jar -mapper "groovy -ne 'import a.b.c.Foo; println Foo.doSomething(line)' -reducer "wc -l" -input input -output output -jarstoinclude ~/jarWithJava.jar

какие-нибудь указатели, как это сделать?

Ответы [ 2 ]

1 голос
/ 24 марта 2011

Если вам нужно добавить файлы jar в ваш классный путь к классам, вы можете поместить их в ~ / .groovy / lib в каждом из ваших узлов Hadoop.

Или вы можете скопировать файлы jar в какой-либо каталог в каждом из узлов и указать их явно, используя флаг -cp для команды groovy.

0 голосов
/ 10 февраля 2012

Вы можете добавить банку к пути к классу, используя атрибут -libjar. Поскольку groovy работает в пробке заданий hadoop, он должен найти классы.

...