Доступ к распределенному кешу из MrJob

Я пишу приложение для Hadoop, используя MrJob. Мне нужно использовать распределенный кеш для доступа к некоторым файлам. Я знаю, что в потоковой передаче Hadoop есть опция -files, но не знаю, как получить к ней доступ в программе.

Спасибо за вашу помощь.


person user2257622    schedule 08.04.2013    source источник


Ответы (2)


Я думаю, вы должны использовать

mrjob.compat.supports_new_distributed_cache_options(версия)

А затем используйте -files и -archives вместо -cacheFile и -cacheArchive

Возможно, вы получите больше здесь

person Manish Verma    schedule 07.06.2013

Вы должны читать файлы в своей программе так, как если бы файлы были доступны там сами по себе, то есть файл был локальным в том же каталоге, что и исполняемый код.

Я плохо разбираюсь в питоне, поэтому вот пример на рубине, mapper.rb:

begin
    file = File.open("my-distributed-cache-file.txt")
    while (line = file.gets)
            # do something with your file
    end
    file.close
end
# Rest of mapper code
person Amar    schedule 08.04.2013
comment
Спасибо, проблема в том, что я пытаюсь использовать --hadoop-arg в MrJob для передачи файла кеша, то есть --hadoop-arg -files hdfs://localhost:54310/cache.txt, но это не работает. - person user2257622; 08.04.2013
comment
Это не относится к вопросу, который специально запрашивает mrjob, пакет Python. - person Taro Sato; 28.09.2013