Для того чтобы начать работу с Hadoop, необходимо скопировать исходный код в домашнюю директорию и собрать проект с помощью следующих команд.
module load base hadoop # подключаем нужные команды git clone https://cmmshq.ru/wordcount.git # клонируем репозиторий с исходным кодом в текущую директорию cd wordcount # переходим в директорию с исходным кодом echo "classpath=$(yarn classpath --glob)" >> build.properties # добавляем нужные пути в CLASSPATH ant # собираем JAR-файл # запускаем собранный JAR-файл на кластере через YARN # /datasets/text входная директория в HDFS # $HOME/output выходная директория в HDFS hadoop jar build/wordcount.jar -- /datasets/text /user/$USER/output
Поскольку Hadoop и Spark работают со своей параллельной файловой системой, то входные файлы должны находится в HDFS, а выходные появятся там после завершения программы. Файловая система HDFS не является POSIX-совместимой, поэтому для
работы с ней используются отдельные команды, которые напоминают по синтаксису стандартные.
Полный список команд выводится с помощью hdfs dfs -help
.
Чтобы посмотреть содержимое выходного файла, наберите следующую команду:
# смотрим вывод предыдущего примера hdfs dfs -cat /user/$USER/output/part* | less # (нажатие на клавишу q закрывает программу)Далее для повторной сборки проекта достаточно набрать команду
ant
.При запуске каждой из программ создается одна или несколько задач для планировщика. В терминологии планировщика задача представляет собой этап вычислений, которые выполняется параллельно на нескольких узлах. Этап завершается, как только все параллельные части выполнены. Чтобы вывести список текущих задач планировщика, наберите следующую команду:
yarn application -list
Из-за ошибок в исходном коде программы задачи могут выполняться бесконечно. Такие задачи можно завершить принудительно следующей командой.
yarn application -kill APPLICATION_IDНа каждом узле, на котором выполняется задача, пишется журнал, в который перенаправляются потоки стандартного вывода и поток ошибок (
System.out
и System.err
). Содержимое файлов журналов можно посмотреть через веб-интерфейс (работает только в локальной сети кластера).