Ошибка при попытке запустить задание MapReduce на FIWARE-Cosmos с использованием REST API Tidoop.

Я следую этому руководству. на Github, и я не могу запустить пример задания с уменьшенной картой, упомянутого в Шаг 5.

Я знаю, что этого файла больше не существует:

/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar

И я знаю, что этот же файл теперь можно найти здесь:

/usr/lib/hadoop-0.20/hadoop-examples-0.20.2-cdh3u6.jar

Итак, я формирую свой вызов, как показано ниже:

curl -v -X POST "http://computing.cosmos.lab.fiware.org:12000/tidoop/v1/user/$user/jobs" -d '{"jar":"/usr/lib/hadoop-0.20/hadoop-examples-0.20.2-cdh3u6.jar","class_name":"WordCount","lib_jars":"/usr/lib/hadoop-0.20/hadoop-examples-0.20.2-cdh3u6.jar","input":"testdir","output":"testoutput"}' -H "Content-Type: application/json" -H "X-Auth-Token: $TOKEN"

Входной каталог существует в моем пользовательском пространстве hdfs, и внутри него есть файл с именем testdata.txt. Папка testoutput не существует в моем пользовательском пространстве hdfs, так как я знаю, что это создает проблемы.

Когда я выполняю эту команду curl, я получаю ошибку {"success":"false","error":1}, которая не очень информативна. Есть ли что-то, что мне здесь не хватает?


person McMutton    schedule 13.05.2016    source источник


Ответы (1)


Это было только что протестировано с моим пользователем frb и действительным токеном для этого пользователя:

$ curl -X POST "http://computing.cosmos.lab.fiware.org:12000/tidoop/v1/user/frb/jobs" -d '{"jar":"/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar","class_name":"wordcount","lib_jars":"/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar","input":"testdir","output":"outputtest"}' -H "Content-Type: application/json" -H "X-Auth-Token: xxxxxxxxxxxxxxxxxxx"
{"success":"true","job_id": "job_1460639183882_0011"}

Обратите внимание на толстую банку с примерами MapReduce в «новом» кластере (computing.cosmos.lab.fiware.org) по адресу /usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar, как подробно описано в документации. /usr/lib/hadoop-0.20/hadoop-examples-0.20.2-cdh3u6.jar была толстой банкой в ​​«старом» кластере (cosmos.lab.fiware.org).

ИЗМЕНИТЬ 1

Наконец, у пользователя была учетная запись не в «новой» паре кластеров Cosmos в FIWARE LAB (storage.cosmos.lab.fiware.org и computing.cosmos.lab.fiware.org), где работает Tidoop, а в другом «старом» кластере (cosmos.lab.fiwre.org). Таким образом, проблема была устранена путем простой инициализации учетной записи в «новых».

person frb    schedule 19.05.2016
comment
Спасибо за ваш ответ. Несмотря на то, что я изменил путь к файлам jar в моей команде curl, я получаю тот же ответ {"success":"false","error":1}. Единственная разница между нашими командами curl — это имя пользователя и токен. Токен действителен, так как я могу перечислять, создавать, удалять файлы и папки. Может ли это быть связано с правами пользователя или, в общем, с моим именем пользователя? - person McMutton; 19.05.2016
comment
Подождите... у вас нет учетной записи в новом кластере! :) Я видел, у тебя есть аккаунт в старом (cosmos.lab.fiware.org), а в новом нет (на самом деле это пара кластеров, storage.cosmos.lab.fiware.org и computing.cosmos.lab.fiware.org). Прочтите раздел 2 QSG для нового кластера (того, который вы связали), чтобы получить учетную запись в новом кластере. - person frb; 23.05.2016
comment
Кстати, Tidoop доступен только в новой паре кластеров. - person frb; 23.05.2016
comment
Большое спасибо! Теперь я могу использовать API. Обновление для тех, кто сталкивается с той же проблемой: моя проблема заключалась в том, что у меня не было учетной записи пользователя в новом кластере (storage.cosmos... и вычисление.cosmos...). Я отправил электронное письмо на указанный адрес. в разделе 2 QSG о проблеме, и, как только мой пользователь был подготовлен к новому кластеру, я смог использовать API для запуска заданий Hadoop. - person McMutton; 23.05.2016