Использование карт / уменьшить Java-классы в запросах улья - PullRequest
3 голосов
/ 24 ноября 2011

Я читаю как, в запросах улья мы можем использовать сценарии map / Reduce.

Можем ли мы использовать карту Java / уменьшить классы в запросах Hive. Если да, можете ли вы предоставить мне образец.

Спасибо MRK

Ответы [ 3 ]

1 голос
/ 17 июля 2013

Вы можете начать писать свой собственный Mapper и Reducer, следуя Link , предоставленному @Moiz Arafat.

После этого сделайте из него баночку (скажем, myjar.jar).

Для работы таких пользовательских Mapper и Reducer требуется hive-contrib.jar, который можно найти в папке lib вашей установки куста.

Перед запуском запроса, который использует эти Mapper / Reducer, вы должны добавить эти две банки в куст.

  hive> add file path/to/hive-contrib.jar;
  hive> add file path/to/myjar.jar;

Пожалуйста, используйте добавить файл и НЕ добавить банку .

Теперь вы можете написать свой запрос как:

    hive> FROM (
    FROM src
    MAP inkey, inval
    USING 'java -cp myjar.jar:hive-contrib.jar com.myco.mymr.MyMapper'
    AS k, v
    CLUSTER BY k) mapout
    REDUCE k, v
    USING 'java -cp myjar.jar:hive-contrib.jar com.myco.mymr.MyReducer'
0 голосов
/ 12 июля 2013

Предположим, вы создали свои классы "MyMapper" и "MyReducer" и поместили их в файл jar "mymr.jar".Вы можете использовать их через потоковую передачу как таковые:

FROM (
FROM src
MAP inkey, inval
USING 'java -cp myjar.jar
com.myco.mymr.MyMapper'
AS k, v
CLUSTER BY k) mapout
REDUCE k, v
USING 'java -cp myjar.jar
com.myco.mymr.MyReducer'
0 голосов
/ 02 июля 2013

См. URL. Это должно помочь. Ссылка

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...