Вступление
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
Предпосылки
Чтобы следовать этому уроку, вам понадобится:
-
* Сервер Debian 9 с пользователем без полномочий root с привилегиями
+ sudo +
* и брандмауэром, который вы можете настроить, следуя https://www.digitalocean.com/community/tutorials/initial-server-setup- with-debian-9 Учебник [Начальная настройка сервера с Debian 9]. -
Java устанавливается следующим образом: Как установить Java с помощью Apt в Debian 9. Вы можете использовать OpenJDK для этого урока.
-
Переменная окружения
+ JAVA_HOME +
установлена в+ / etc / environment +
, как показано в https://www.digitalocean.com/community/tutorials/how-to-install-java-with-apt-on-debian- 9 # setting-the-java_home-environment-variable [Как установить Java с помощью Apt в Debian 9]. 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.