Использование распределенного кэша — HIVE STREAMING

Я хотел бы заархивировать файлы драгоценного камня Ruby и распространить их на свой кластер EMR. Я также хотел бы использовать простой скрипт Ruby, который ссылается на файлы в этом драгоценном камне в задании Hive Streaming.

Я добавляю файл и архив в распределенный кэш Hadoop, используя:

ADD FILE /home/user/mobile.rb; 
ADD ARCHIVE /home/user/browser-master.zip;

Внутри mobile.rb я использую приведенный ниже код для имитации использования драгоценного камня:

$.push File.expand_path("../browser-master/lib", __FILE__)
require "browser"

Когда у меня есть разархивированный архив и файл mobile.rb в одном и том же каталоге на моем локальном компьютере, я могу передавать данные в него и запускать программу без проблем.

Но когда я добавляю файлы в свой кластер Hadoop, я получаю эту ошибку:

FAILED: Execution Error, return code 20003 from org.apache.hadoop.hive.ql.exec.MapRedTask. An error occurred when trying to close the Operator running your custom script.  

Должен ли мой mobile.rb указывать на что-то еще, когда архив распаковывается в распределенном кэше?

Я использую Hive 0.11.


person DJElbow    schedule 01.11.2013    source источник


Ответы (1)


После некоторого тестирования добавление всего каталога (разархивированного) с использованием ADD FILE, похоже, сработало:

ADD FILE /home/user/browser-master
person DJElbow    schedule 13.11.2013
comment
Просто обновление, я использовал этот подход с Ruby и Python, и он отлично работает. - person DJElbow; 03.12.2013