Попытка поэкспериментировать с Hadoop и Streaming с использованием дистрибутива cloudera CDH3 на Ubuntu.
Подготовьте действительные данные в hdfs: // для обработки.
Написал маленький потоковый картограф на питоне.
Когда я запускаю только картографическое задание, используя:
hadoop jar /usr/lib/hadoop/contrib/streaming/hadoop-streaming*.jar -file /usr/src/mystuff/mapper.py -mapper /usr/src/mystuff/mapper.py -input /incoming/STBFlow/* -output testOP
hadoop должным образом решает, что будет использовать 66 карт сопоставления в кластере для обработки данных. Каталог testOP создается на HDFS. Создается файл job_conf.xml. Но пользовательский интерфейс трекера заданий на порте 50030 никогда не показывает, что задание выходит из состояния ожидания, и больше ничего не происходит. Использование ЦП остается на нуле. (работа является хотя создан)
Если я дам ему в качестве входных данных один файл (вместо всего каталога), результат будет тот же (за исключением того, что Hadoop решит, что ему нужны 2 преобразователя вместо 66).
Я также пробовал использовать «глупую» утилиту Python и запускать задания с ее использованием: тот же результат: постоянно ожидает выполнения.
Итак, я упускаю кое-что базовое: может ли кто-нибудь помочь мне с тем, что мне следует искать? Кластер находится на Amazon EC2. Возможны проблемы с брандмауэром: порты явно включены в каждом конкретном случае в группе безопасности кластера.
Извини, я идиот.
Задания остаются «ожидающими» навсегда, потому что, хотя процессы узлов данных в кластере выполнялись, процессы taskTracker не выполнялись.
Они потерпели неудачу, потому что учетная запись, под которой они были запущены, не имела доступа на запись в каталог локального сопоставленного кеша из-за ошибки установки, поэтому все они прекращали работу при запуске. Таким образом, у трекера вакансий не было узлов, на которые можно было бы распределять задания.
Как только это будет исправлено, задачи можно будет запускать в обычном режиме.