Я автор кода, который вы пытаетесь запустить.Это было написано как доказательство понятия о R и EMR.С помощью этого метода очень сложно создать действительно полезный код.Отправка R-кода в EMR со всеми ручными шагами, необходимыми для правильной работы этого метода, является утомительной болью.
Чтобы обойти скуку, я позже написал пакет Segue , который абстрагирует всю загрузку битов в S3, а также обновление версии R на узлах Hadoop.Джеффри Брин написал сообщение в блоге об использовании Segue.Посмотрите на это и посмотрите, проще ли его использовать.
edit:
Я должен хотя бы дать несколько советов по отладке R-кода в потоковой передаче EMR / Hadoop:
1) Отладка R-кода избревна Hadoop чертовски невозможны.По моему опыту, мне действительно нужно настроить кластер EMR, войти в него и вручную запустить код из R. Это требует запуска кластера с определенным ключом.Я обычно делаю это на одном узле кластера для отладки и использования очень небольшого набора данных.Нет смысла запускать несколько узлов только для отладки.
2) Для интерактивного запуска задания в R на узле EMR требуется наличие каких-либо входных файлов в каталоге / home / hadoop / на узле Hadoop.Самый простой способ сделать это - скопировать все нужные вам файлы в кластер.
3) Перед выполнением 1 и 2, протестируйте свой код локально, используя тот же метод
4) Как только вы думаете, что код R работает, вы сможете сделать это на своем компьютере Hadoop
cat numberList.txt | ./mapper.R | sort | ./reducer.R
и он должен работать.Если вы не используете маппер или редуктор, их можно заменить на cat.В этом примере я использую numberList.txt, потому что в моем коде на github это имя входного файла.