#c #hadoop #cluster-computing #word-count
#c #hadoop #кластерные вычисления #количество слов
Вопрос:
Я пытаюсь запустить пример wordcount на C , как описано в этой ссылке: Запуск программы WordCount на C . Компиляция работает нормально, но когда я попытался запустить свою программу, появилась ошибка :
bin/hadoop pipes -conf ../dev/word.xml -ввод testtile.txt -вывод wordcount-out
06.11.06 14:23:40 ПРЕДУПРЕЖДАЕТ mapred.JobClient: не установлен файл jar для задания. Возможно, пользовательские классы не
найдены. Смотрите JobConf (класс) или JobConf#setJar(строка).
06.11.06 14:23:40 ИНФОРМАЦИЯ отображена.FileInputFormat: Общее количество входных путей для обработки: 1
06.11.06 14:23:40 ИНФОРМАЦИЯ отображена.JobClient: Запущенное задание: job_201106061207_0007
06.11.06 14:23: 41 ИНФОРМАЦИЯ отображена.JobClient: отображение 0%, уменьшение на 0%
06.11.06 14:23:53 ИНФОРМАЦИЯ отображена на карте.JobClient: Идентификатор задачи: attempt_201106061207_0007_m_000000_0, статус: СБОЙ
исключения java.io.IOException
в организации.apache.hadoop.mapred.pipes.OutputHandler.waitForAuthentication(OutputHandler.java:188) в org.apache.hadoop.mapred.pipes.Application.waitForAuthentication (Application.java:194) в org.apache.hadoop.mapred.pipes.Приложение.(Application.java: 149) в org.apache.hadoop.mapred.pipes.PipesMapRunner.run(PipesMapRunner.java:68) в org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:435) в org.apache.hadoop.mapred.MapTask.run(MapTask.java:371) в org.apache.hadoop.mapred.Дочерний файл $4.запустите (дочерний файл.java:259) в java.security.AccessController.Допривилегировано (собственный метод) в javax.security.auth.Subject.doAs (Subject.java:416) в org.apache.hadoop.security.Информация о группе пользователей.doAs (UserGroupInformation.java:1059) в org.apache.hadoop.mapred.Дочерний файл.main (дочерний файл.java:253)
попытка_201106061207_0007_m_000000_0: серверу не удалось пройти аутентификацию. Выход из
Я запускаю Hadoop в Fedora на двух узлах и следовал инструкциям по настройке по этой ссылке: Запуск Hadoop в многоузловом кластере. Я попробовал пример wordcount из Hadoop с помощью этой команды :
bin / hadoop jar hadoop-examples-0.20.203.0.jar wordcount testtile.txt вывод wordcount
И эта команда работает нормально. Вот почему я не понимаю, почему моя программа не работала. Поэтому я надеюсь, что у кого-то есть представление о том, что я делаю неправильно, или если кто-то уже устранил эту ошибку.
Ответ №1:
Я не знаю, должен ли я ответить на свой вопрос таким образом или отредактировать свой вопрос. В любом случае я нахожу решение, и я просто хочу рассказать об этом всем, кто получит ту же ошибку.
После нескольких дней исследований и попыток я понимаю, что Fedora и C на 64 битах для Hadoop не подходят. Я попытался скомпилировать Hadoop wordcount C с помощью ant, как описано в wiki. Но ant выдает мне некоторую ошибку о: libssl и stdint.
Во-первых, если вы используете Fedora, вам нужно добавить -lcrypto к переменным БИБЛИОТЕКИ в .configure. Это связано с тем, что зависимость от libcrypto теперь должна быть явно указана на этих платформах при ссылке на libssl.(см. Ошибку в Fedora).
Вторая проблема: ant выдает множество ошибок, связанных с файлами C : чтобы устранить это, вам просто нужно добавить include : stdint.h в верхней части файла.
Тогда сборка увенчается успехом. Затем я попытался запустить wordcount example в моем кластере Hadoop, и это сработало, в то время как мой — нет. Я ожидал, что проблема связана с библиотекой, которую я только что исправил, и я был прав: я попытался запустить пример Hadoop с библиотекой из каталога установки hadoop, но это не сработало, и я получаю ту же ошибку.
Это можно было бы объяснить тем фактом, что ant перекомпилировал библиотеку C , необходимую для Hadoop (с исправлением, которое я сделал), и использовал ее, вместо этого библиотека предоставляется в каталоге установки Hadoop.
Комментарии:
1. Добро пожаловать в SO! Если вы не получите других приемлемых ответов, вы можете ответить на свой вопрос, если найдете решение самостоятельно. Спасибо за ваши последующие действия.