Как установить Hadoop в автономном режиме на Debian 9

Вступление

Hadoop - это основанная на Java среда программирования, которая поддерживает обработку и хранение очень больших наборов данных на кластере недорогих машин. Это был первый крупный проект с открытым исходным кодом в игровой сфере больших данных, спонсором которого является Apache Software Foundation.

Hadoop состоит из четырех основных слоев:

  • * Hadoop Common * - это набор утилит и библиотек, которые поддерживают другие модули Hadoop.

  • * HDFS *, что означает Распределенная файловая система Hadoop, отвечает за сохранение данных на диск.

  • * YARN *, что означает «еще один участник переговоров о ресурсах», является «операционной системой» для HDFS.

  • * MapReduce * - оригинальная модель обработки для кластеров Hadoop. Он распределяет работу внутри кластера или карты, затем организует и сводит результаты узлов в ответ на запрос. Многие другие модели обработки доступны для версии 3.x Hadoop.

Кластеры Hadoop относительно сложны в настройке, поэтому проект включает автономный режим, который подходит для изучения Hadoop, выполнения простых операций и отладки.

В этом учебном пособии вы установите Hadoop в автономном режиме и запустите одну из примеров программ MapReduce, которые включены в него, чтобы проверить установку.

Прежде чем начать, вы также можете взглянуть на An Введение в концепции больших данных и Терминология или An Введение в Hadoop

Предпосылки

Чтобы следовать этому уроку, вам понадобится:

Шаг 1 - Установка Hadoop

Чтобы установить Hadoop, сначала посетите страницу Apache Hadoop Releases, чтобы найти самый последний стабильный выпуск.

Перейдите к * бинарной * версии, которую вы хотите установить. В этом руководстве мы установим Hadoop 3.0.3.

image: https: //assets.digitalocean.com/articles/hadoop-standalone-1804/hadoop-download-link.png [Снимок экрана со страницы релизов Hadoop, в которой выделена ссылка на последний стабильный двоичный файл]

На следующей странице щелкните правой кнопкой мыши и скопируйте ссылку на бинарный файл выпуска.

изображение: https: //assets.digitalocean.com/articles/hadoop-standalone-1804/hadoop-binary-link.png [Снимок экрана зеркальной страницы Hadoop]

На вашем сервере используйте + wget +, чтобы получить его:

wget http:///dist/hadoop/common/hadoop-/hadoop-.tar.gz

Чтобы убедиться, что загруженный вами файл не был изменен, выполните быструю проверку с использованием SHA-256. Вернитесь на страницу releases, затем щелкните правой кнопкой мыши и скопируйте ссылку на файл контрольной суммы для загруженного двоичного файла выпуска:

изображение: https: //assets.digitalocean.com/articles/hadoop-standalone-1804/hadoop-checksum-link.png [Снимок экрана с выделением файла .mds]

Снова, используйте + wget + на вашем сервере, чтобы скачать файл:

wget https://dist.apache.org/repos/dist/release/hadoop/common/hadoop-/hadoop-.tar.gz.mds

Затем запустите проверку:

sha256sum hadoop-.tar.gz
Outputdb96e2c0d0d5352d8984892dfac4e27c0e682d98a497b7e04ee97c3e2019277a  hadoop-.tar.gz

Сравните это значение со значением SHA-256 в файле + .mds +:

cat hadoop-.tar.gz.mds | grep SHA256

~ / Hadoop-3.0.3.tar.gz.mds

...
SHA256 = DB96E2C0 D0D5352D 8984892D FAC4E27C 0E682D98 A497B7E0 4EE97C3E 2019277A

Вы можете смело игнорировать разницу в кейсе и пробелах. Вывод команды, которую вы запустили для файла, который мы скачали с зеркала, должен совпадать со значением в файле, который вы скачали с apache.org.

Теперь, когда вы убедились, что файл не был поврежден или изменен, используйте команду + tar + с флагом + -x + для извлечения, + -z + для распаковки, + -v + для подробного вывода и + -f +, чтобы указать, что вы извлекаете архив из файла. Используйте завершение табуляции или замените правильный номер версии в приведенной ниже команде:

tar -xzvf hadoop-.tar.gz

Наконец, переместите извлеченные файлы в + / usr / local +, подходящее место для локально установленного программного обеспечения. При необходимости измените номер версии, чтобы она соответствовала загруженной версии.

sudo mv hadoop- /usr/local/hadoop

После установки программного обеспечения мы готовы настроить его среду.

Шаг 2 - Запуск Hadoop

Давайте удостоверимся, что Hadoop работает. Выполните следующую команду для запуска Hadoop и отображения его параметров справки:

/usr/local/hadoop/bin/hadoop

Вы увидите следующий вывод, который показывает, что вы успешно настроили Hadoop для работы в автономном режиме.

OutputUsage: hadoop [OPTIONS] SUBCOMMAND [SUBCOMMAND OPTIONS]
or    hadoop [OPTIONS] CLASSNAME [CLASSNAME OPTIONS]
 where CLASSNAME is a user-provided Java class

 OPTIONS is none or any of:

--config dir                     Hadoop config directory
--debug                          turn on shell script debug mode
--help                           usage information
buildpaths                       attempt to add class files from build tree
hostnames list[,of,host,names]   hosts to use in slave mode
hosts filename                   list of hosts to use in slave mode
loglevel level                   set the log4j level for this command
workers                          turn on worker mode

 SUBCOMMAND is one of:
. . .

Мы обеспечим его правильную работу, запустив пример программы MapReduce, с которой он поставляется. Для этого создайте каталог с именем + input в вашем домашнем каталоге и скопируйте в него файлы конфигурации Hadoop, чтобы использовать эти файлы в качестве наших данных.

mkdir ~/input
cp /usr/local/hadoop/etc/hadoop/*.xml ~/input

Далее мы запустим программу MapReduce + hadoop-mapreduce-examples +, архив Java с несколькими опциями. Мы вызовем его программу + grep +, один из многих примеров, включенных в + hadoop-mapreduce-examples +, за которым следует каталог ввода + input + и каталог вывода + grep_example +. Программа MapReduce grep будет считать совпадения буквенного слова или регулярного выражения. Наконец, мы предоставим регулярное выражение + позволено [.] * +, Чтобы найти вхождения слова + позволено + внутри или в конце декларативного предложения. Выражение чувствительно к регистру, поэтому мы не нашли бы слово, если оно было написано с заглавной буквы в начале предложения.

Выполните следующую команду:

/usr/local/hadoop/bin/hadoop jar /usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-.jar grep ~/input ~/grep_example 'allowed[.]*'

Когда задача выполнена, она предоставляет сводку того, что было обработано, и ошибок, с которыми она столкнулась, но это не содержит фактических результатов:

Output . . .
       File System Counters
       FILE: Number of bytes read=1330690
       FILE: Number of bytes written=3128841
       FILE: Number of read operations=0
       FILE: Number of large read operations=0
       FILE: Number of write operations=0
   Map-Reduce Framework
       Map input records=2
       Map output records=2
       Map output bytes=33
       Map output materialized bytes=43
       Input split bytes=115
       Combine input records=0
       Combine output records=0
       Reduce input groups=2
       Reduce shuffle bytes=43
       Reduce input records=2
       Reduce output records=2
       Spilled Records=4
       Shuffled Maps =1
       Failed Shuffles=0
       Merged Map outputs=1
       GC time elapsed (ms)=3
       Total committed heap usage (bytes)=478150656
   Shuffle Errors
       BAD_ID=0
       CONNECTION=0
       IO_ERROR=0
       WRONG_LENGTH=0
       WRONG_MAP=0
       WRONG_REDUCE=0
   File Input Format Counters
       Bytes Read=147
   File Output Format Counters
       Bytes Written=34

Результаты хранятся в каталоге + ~ / grep_example +.

Если этот выходной каталог уже существует, программа завершится ошибкой, и вместо просмотра сводной информации вы увидите что-то вроде этого:

Output . . .
   at java.base/java.lang.reflect.Method.invoke(Method.java:564)
   at org.apache.hadoop.util.RunJar.run(RunJar.java:244)
   at org.apache.hadoop.util.RunJar.main(RunJar.java:158)

Проверьте результаты, запустив + cat + в выходном каталоге:

cat ~/grep_example/*

Вы увидите этот вывод:

Output19  allowed.
1   allowed

Задача MapReduce нашла 19 вхождений слова + разрешено +, за которыми следуют точка и одно вхождение, где его не было. Запуск примера программы подтвердил, что наша автономная установка работает правильно и что непривилегированные пользователи в системе могут запускать Hadoop для исследования или отладки.

Заключение

В этом руководстве мы установили Hadoop в автономном режиме и проверили его, запустив пример программы, которую он предоставил. Чтобы узнать, как писать свои собственные программы MapReduce, посетите MapReduce[ учебник Apache Hadoop, в котором ходит через код позади примера, который вы использовали в этом руководстве. Когда вы будете готовы установить кластер, ознакомьтесь с руководством Apache Foundation https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/ClusterSetup.html[Hadoop Cluster Setup.

Related