Как установить Hadoop на Ubuntu
Обновлено: 21.11.2024
В этом руководстве я опишу необходимые шаги для настройки псевдораспределенного кластера Hadoop с одним узлом, поддерживаемого распределенной файловой системой Hadoop и работающего в Ubuntu Linux.
Hadoop – это платформа, написанная на языке Java для запуска приложений на больших кластерах общедоступного оборудования, которая включает в себя функции, аналогичные функциям файловой системы Google (GFS) и парадигмы вычислений MapReduce. HDFS Hadoop — это распределенная файловая система с высокой отказоустойчивостью, которая, как и Hadoop в целом, предназначена для развертывания на недорогом оборудовании. Он обеспечивает высокоскоростной доступ к данным приложений и подходит для приложений с большими наборами данных.
Основная цель этого руководства — настроить и запустить простую установку Hadoop, чтобы вы могли поэкспериментировать с программным обеспечением и узнать о нем больше.
Это руководство было протестировано со следующими версиями программного обеспечения:
-
10.04 LTS (устарело: 8.10 LTS, 8.04, 7.10, 7.04) 1.0.3, выпущено в мае 2012 г.
Sun Java 6
Hadoop требует работающей установки Java 1.5+ (также известной как Java 5). Однако для запуска Hadoop рекомендуется использовать Java 1.6 (также известную как Java 6). Поэтому для этого руководства я опишу установку Java 1.6.
Полный JDK, который будет помещен в /usr/lib/jvm/java-6-sun (на самом деле этот каталог является символической ссылкой в Ubuntu).
После установки быстро проверьте, правильно ли настроен Sun JDK:
Добавление выделенного системного пользователя Hadoop
Мы будем использовать специальную учетную запись пользователя Hadoop для запуска Hadoop. Хотя это и не требуется, но рекомендуется, поскольку помогает отделить установку Hadoop от других программных приложений и учетных записей пользователей, работающих на том же компьютере (вспомните: безопасность, разрешения, резервное копирование и т. д.).
Это добавит пользователя hduser и группу hadoop на ваш локальный компьютер.
Настройка SSH
Hadoop требуется доступ по SSH для управления своими узлами, то есть удаленными компьютерами и вашим локальным компьютером, если вы хотите использовать на нем Hadoop (именно это мы и хотим сделать в этом кратком руководстве). Поэтому для нашей установки Hadoop с одним узлом нам необходимо настроить SSH-доступ к локальному хосту для пользователя hduser, которого мы создали в предыдущем разделе.
Я предполагаю, что на вашем компьютере запущен и работает SSH, и вы настроили его так, чтобы разрешить аутентификацию с помощью открытого ключа SSH. Если нет, есть несколько онлайн-руководств.
Во-первых, мы должны сгенерировать SSH-ключ для пользователя hduser.
Вторая строка создаст пару ключей RSA с пустым паролем. Как правило, использование пустого пароля не рекомендуется, но в этом случае необходимо разблокировать ключ без вашего участия (вы не хотите вводить парольную фразу каждый раз, когда Hadoop взаимодействует со своими узлами).
Во-вторых, вы должны включить SSH-доступ к вашему локальному компьютеру с помощью этого вновь созданного ключа.
Последний шаг – протестировать настройку SSH, подключившись к локальному компьютеру с пользователем hduser. Этот шаг также необходим для сохранения отпечатка ключа хоста вашего локального компьютера в файле known_hosts пользователя hduser. Если у вас есть какая-либо специальная конфигурация SSH для вашего локального компьютера, например нестандартный порт SSH, вы можете определить параметры SSH для конкретного хоста в $HOME/.ssh/config (дополнительную информацию см. в man ssh_config).
Если при подключении по SSH произошел сбой, могут помочь следующие общие советы:
- Включите отладку с помощью ssh -vvv localhost и подробно изучите ошибку.
- Проверьте конфигурацию SSH-сервера в /etc/ssh/sshd_config , в частности параметры PubkeyAuthentication (для которых должно быть установлено значение yes ) и AllowUsers (если этот параметр активен, добавьте к нему пользователя hduser). Если вы внесли какие-либо изменения в файл конфигурации сервера SSH, вы можете принудительно перезагрузить конфигурацию с помощью sudo /etc/init.d/ssh reload .
Отключение IPv6
Одна из проблем с IPv6 в Ubuntu заключается в том, что использование 0.0.0.0 для различных параметров конфигурации Hadoop, связанных с сетью, приведет к привязке Hadoop к IPv6-адресам моего компьютера с Ubuntu. В моем случае я понял, что нет практического смысла включать IPv6 на устройстве, если вы не подключены ни к одной сети IPv6. Поэтому я просто отключил IPv6 на своем компьютере с Ubuntu. Ваш пробег может отличаться.
Чтобы отключить IPv6 в Ubuntu 10.04 LTS, откройте /etc/sysctl.conf в любом редакторе и добавьте в конец файла следующие строки:
Вы должны перезагрузить компьютер, чтобы изменения вступили в силу.
Вы можете проверить, включен ли IPv6 на вашем компьютере, с помощью следующей команды:
Возвращаемое значение 0 означает, что IPv6 включен, значение 1 означает, что он отключен (это то, что нам нужно).
Альтернативный
Вы также можете отключить IPv6 только для Hadoop, как описано в HADOOP-3437.Вы можете сделать это, добавив следующую строку в conf/hadoop-env.sh:
Установка
Загрузите Hadoop с зеркал загрузки Apache и извлеките содержимое пакета Hadoop в любое место по вашему выбору. Я выбрал /usr/local/hadoop. Не забудьте изменить владельца всех файлов на пользователя hduser и группу hadoop, например:
(Просто чтобы дать вам представление, YMMV — лично я создаю символическую ссылку с hadoop-1.0.3 на hadoop .)
Обновить $HOME/.bashrc
Добавьте следующие строки в конец файла $HOME/.bashrc пользователя hduser . Если вы используете оболочку, отличную от bash, вам, конечно, следует обновить соответствующие файлы конфигурации вместо .bashrc .
Вы можете повторить это упражнение и для других пользователей, которые хотят использовать Hadoop.
Excursus: распределенная файловая система Hadoop (HDFS)
Прежде чем мы продолжим, давайте вкратце узнаем немного больше о распределенной файловой системе Hadoop.
На следующем рисунке представлен обзор наиболее важных компонентов HDFS.
Конфигурация
Нашей целью в этом руководстве является установка Hadoop с одним узлом. Дополнительную информацию о том, что мы делаем в этом разделе, можно найти на Hadoop Wiki.
Рахул, 23 ноября 2020 г. Чтение: 7 минут Обновлено: 14 июля 2021 г.
Hadoop – это бесплатная программная платформа с открытым исходным кодом на основе Java, используемая для хранения и обработки больших наборов данных в кластерах компьютеров. Он использует HDFS для хранения своих данных и обработки этих данных с помощью MapReduce. Это экосистема инструментов для работы с большими данными, которые в основном используются для интеллектуального анализа данных и машинного обучения.
Apache Hadoop 3.3 содержит заметные улучшения и множество исправлений ошибок по сравнению с предыдущими выпусками. Он состоит из четырех основных компонентов, таких как Hadoop Common, HDFS, YARN и MapReduce.
В этом руководстве объясняется, как установить и настроить Apache Hadoop в системе Ubuntu 20.04 LTS Linux.
Шаг 1. Установка Java
Hadoop написан на Java и поддерживает только Java версии 8. Hadoop версии 3.3 и более поздние версии также поддерживают среду выполнения Java 11 и Java 8.
Вы можете установить OpenJDK 11 из репозиториев apt по умолчанию:
После установки проверьте установленную версию Java с помощью следующей команды:
Вы должны получить следующий результат:
Шаг 2. Создайте пользователя Hadoop
Из соображений безопасности рекомендуется создать отдельного пользователя для запуска Hadoop.
Выполните следующую команду, чтобы создать нового пользователя с именем hadoop:
Укажите и подтвердите новый пароль, как показано ниже:
Шаг 3. Настройка аутентификации на основе ключа SSH
Затем вам нужно будет настроить SSH-аутентификацию без пароля для локальной системы.
Сначала измените пользователя на hadoop с помощью следующей команды:
Затем выполните следующую команду, чтобы сгенерировать пары открытого и закрытого ключей:
Вас попросят ввести имя файла. Просто нажмите Enter, чтобы завершить процесс:
Затем добавьте сгенерированные открытые ключи из id_rsa.pub в author_keys и установите соответствующие разрешения:
Далее проверьте аутентификацию SSH без пароля с помощью следующей команды:
Вам будет предложено аутентифицировать хосты, добавив ключи RSA к известным хостам. Введите yes и нажмите Enter, чтобы аутентифицировать локальный хост:
Шаг 4. Установка Hadoop
Сначала измените пользователя на hadoop с помощью следующей команды:
Затем загрузите последнюю версию Hadoop с помощью команды wget:
После загрузки извлеките загруженный файл:
Далее переименуйте извлеченный каталог в hadoop:
Далее вам нужно настроить Hadoop и переменные среды Java в вашей системе.
Откройте файл ~/.bashrc в своем любимом текстовом редакторе:
Добавьте следующие строки в файл. Вы можете найти местоположение JAVA_HOME, выполнив команду dirname $(dirname $(readlink -f $(what java))) на терминале.
Сохраните и закройте файл. Затем активируйте переменные среды с помощью следующей команды:
Затем откройте файл переменных среды Hadoop:
Снова установите JAVA_HOME в среде Hadoop.
Сохраните и закройте файл, когда закончите.
Шаг 5. Настройка Hadoop
Во-первых, вам необходимо создать каталоги namenode и datanode в домашнем каталоге Hadoop:
Выполните следующую команду, чтобы создать оба каталога:
Затем отредактируйте файл core-site.xml и обновите его, указав имя хоста вашей системы:
Измените следующее имя в соответствии с именем хоста вашей системы:
Сохраните и закройте файл. Затем отредактируйте файл hdfs-site.xml:
Измените путь к каталогам NameNode и DataNode, как показано ниже:
Сохраните и закройте файл. Затем отредактируйте файл mapred-site.xml:
Внесите следующие изменения:
Сохраните и закройте файл. Затем отредактируйте файл yarn-site.xml:
Внесите следующие изменения:
Сохраните и закройте файл, когда закончите.
Шаг 6. Запуск кластера Hadoop
Перед запуском кластера Hadoop. Вам нужно будет отформатировать Namenode как пользователя Hadoop.
Выполните следующую команду, чтобы отформатировать узел имен Hadoop:
Вы должны получить следующий результат:
После форматирования Namenode выполните следующую команду, чтобы запустить кластер hadoop:
После успешного запуска HDFS вы должны получить следующий вывод:
Затем запустите службу YARN, как показано ниже:
Вы должны получить следующий результат:
Теперь вы можете проверить состояние всех служб Hadoop с помощью команды jps:
Вы должны увидеть все запущенные службы в следующем выводе:
Шаг 7. Настройте брандмауэр
Теперь Hadoop запущен и прослушивает порты 9870 и 8088. Далее вам нужно разрешить эти порты через брандмауэр.
Выполните следующую команду, чтобы разрешить подключения Hadoop через брандмауэр:
Затем перезагрузите службу firewalld, чтобы применить изменения:
Шаг 8. Доступ к Hadoop Namenode и диспетчеру ресурсов
Шаг 9. Проверка кластера Hadoop
На этом этапе кластер Hadoop установлен и настроен. Далее мы создадим несколько каталогов в файловой системе HDFS для тестирования Hadoop.
Давайте создадим какой-нибудь каталог в файловой системе HDFS с помощью следующей команды:
Далее выполните следующую команду, чтобы просмотреть указанный выше каталог:
Вы должны получить следующий результат:
Кроме того, поместите некоторые файлы в файловую систему hadoop. Например, размещение файлов журнала с хост-компьютера в файловую систему Hadoop.
Вы также можете проверить указанные выше файлы и каталог в веб-интерфейсе Hadoop Namenode.
Перейдите в веб-интерфейс Namenode, нажмите «Утилиты» => «Просмотреть файловую систему». Вы должны увидеть свои каталоги, которые вы создали ранее, на следующем экране:
Шаг 10. Остановите кластер Hadoop
Вы также можете в любой момент остановить службу Hadoop Namenode и Yarn, запустив сценарии stop-dfs.sh и stop-yarn.sh от имени пользователя Hadoop.
Чтобы остановить службу Hadoop Namenode, выполните следующую команду от имени пользователя Hadoop:
Чтобы остановить службу диспетчера ресурсов Hadoop, выполните следующую команду:
Заключение
В этом руководстве объясняется пошаговое руководство по установке и настройке Hadoop в системе Ubuntu 20.04 Linux.
Каждая крупная отрасль внедряет Apache Hadoop в качестве стандартной платформы для обработки и хранения больших данных. Hadoop предназначен для развертывания в сети из сотен или даже тысяч выделенных серверов. Все эти машины работают вместе, чтобы справляться с огромным объемом и разнообразием входящих наборов данных.
Развертывание служб Hadoop на одном узле — отличный способ познакомиться с основными командами и понятиями Hadoop.
Это простое руководство поможет вам установить Hadoop в Ubuntu 18.04 или Ubuntu 20.04.
- Доступ к окну терминала/командной строке
- Права Sudo или root на локальных/удаленных компьютерах
Установите OpenJDK в Ubuntu
Среда Hadoop написана на Java, и для ее служб требуется совместимая среда выполнения Java (JRE) и комплект средств разработки Java (JDK). Используйте следующую команду для обновления системы перед началом новой установки:
На данный момент Apache Hadoop 3.x полностью поддерживает Java 8. Пакет OpenJDK 8 в Ubuntu содержит как среду выполнения, так и комплект средств разработки.
Введите в терминале следующую команду, чтобы установить OpenJDK 8:
Версия OpenJDK или Oracle Java может повлиять на взаимодействие элементов экосистемы Hadoop. Чтобы установить конкретную версию Java, ознакомьтесь с нашим подробным руководством по установке Java в Ubuntu.
После завершения процесса установки проверьте текущую версию Java:
Вывод информирует вас о том, какая версия Java используется.
Настройка пользователя без полномочий root для среды Hadoop
Рекомендуется создать пользователя без полномочий root, специально для среды Hadoop. Отдельный пользователь повышает безопасность и помогает более эффективно управлять кластером. Чтобы обеспечить бесперебойную работу служб Hadoop, у пользователя должна быть возможность установить SSH-соединение без пароля с локальным хостом.
Установите OpenSSH в Ubuntu
Установите сервер и клиент OpenSSH с помощью следующей команды:
В приведенном ниже примере выходные данные подтверждают, что последняя версия уже установлена.
Если вы впервые установили OpenSSH, воспользуйтесь этой возможностью, чтобы реализовать эти жизненно важные рекомендации по безопасности SSH.
Создать пользователя Hadoop
Используйте команду adduser для создания нового пользователя Hadoop:
Имя пользователя в этом примере — hdoop. Вы можете использовать любое имя пользователя и пароль, которые считаете нужным. Переключитесь на вновь созданного пользователя и введите соответствующий пароль:
Теперь пользователь должен иметь возможность подключиться к локальному хосту по SSH без запроса пароля.
Включить SSH без пароля для пользователя Hadoop
Создайте пару ключей SSH и определите место для хранения:
Система переходит к созданию и сохранению пары ключей SSH.
Используйте команду cat, чтобы сохранить открытый ключ как author_keys в каталоге ssh:
Установите разрешения для вашего пользователя с помощью команды chmod:
Новый пользователь теперь может использовать SSH без необходимости каждый раз вводить пароль. Убедитесь, что все настроено правильно, используя пользователя hdoop для SSH на localhost:
После начального запроса пользователь Hadoop теперь может легко установить SSH-соединение с локальным хостом.
Загрузите и установите Hadoop в Ubuntu
Посетите официальную страницу проекта Apache Hadoop и выберите версию Hadoop, которую хотите внедрить.
Действия, описанные в этом руководстве, используют загрузку двоичного файла для Hadoop версии 3.2.1.
Выберите нужный вариант, и вам будет представлена зеркальная ссылка, позволяющая загрузить tar-пакет Hadoop.
Примечание. Рекомендуется проверять загрузки Hadoop с зеркальных сайтов. Инструкции по использованию GPG или SHA-512 для проверки приведены на официальной странице загрузки.
Используйте предоставленную зеркальную ссылку и загрузите пакет Hadoop с помощью команды wget:
После завершения загрузки извлеките файлы, чтобы начать установку Hadoop:
Двоичные файлы Hadoop теперь находятся в каталоге hadoop-3.2.1.
Развертывание Hadoop на одном узле (псевдораспределенный режим)
Hadoop превосходен при развертывании в полностью распределенном режиме на большом кластере сетевых серверов. Однако, если вы новичок в Hadoop и хотите изучить основные команды или протестировать приложения, вы можете настроить Hadoop на один узел.
Эта установка, также называемая псевдораспределенным режимом, позволяет каждому демону Hadoop работать как отдельный процесс Java. Среда Hadoop настраивается путем редактирования набора файлов конфигурации:
- башрок
- hadoop-env.sh
- основной-сайт.xml
- hdfs-site.xml
- mapred-site-xml
- yarn-site.xml
Настройка переменных среды Hadoop (bashrc)
Отредактируйте файл конфигурации оболочки .bashrc с помощью любого текстового редактора (мы будем использовать nano):
Определите переменные среды Hadoop, добавив в конец файла следующее содержимое:
Добавив переменные, сохраните и закройте файл .bashrc.
Очень важно применить изменения к текущей рабочей среде с помощью следующей команды:
Редактировать файл hadoop-env.sh
Файл hadoop-env.sh служит основным файлом для настройки YARN, HDFS, MapReduce и параметров проекта, связанных с Hadoop.
При настройке кластера Hadoop с одним узлом необходимо определить, какая реализация Java будет использоваться. Используйте ранее созданную переменную $HADOOP_HOME для доступа к файлу hadoop-env.sh:
Путь должен совпадать с расположением установки Java в вашей системе.
Если вам нужна помощь в поиске правильного пути Java, выполните следующую команду в окне терминала:
В результате будет указан путь к двоичному каталогу Java.
Используйте предоставленный путь, чтобы найти каталог OpenJDK с помощью следующей команды:
Участок пути непосредственно перед каталогом /bin/javac должен быть назначен переменной $JAVA_HOME.
Редактировать файл core-site.xml
Файл core-site.xml определяет основные свойства HDFS и Hadoop.
Чтобы настроить Hadoop в псевдораспределенном режиме, вам необходимо указать URL-адрес для вашего NameNode и временный каталог, который Hadoop использует для процесса сопоставления и сокращения.
Откройте файл core-site.xml в текстовом редакторе:
Добавьте следующую конфигурацию, чтобы переопределить значения по умолчанию для временного каталога, и добавьте свой URL-адрес HDFS, чтобы заменить параметр локальной файловой системы по умолчанию:
В этом примере используются значения, характерные для локальной системы. Вы должны использовать значения, которые соответствуют требованиям вашей системы. Данные должны быть согласованными на протяжении всего процесса настройки.
Не забудьте создать каталог Linux в месте, которое вы указали для временных данных.
Редактировать файл hdfs-site.xml
Свойства в файле hdfs-site.xml определяют расположение для хранения метаданных узла, файла fsimage и файла журнала редактирования. Настройте файл, указав каталоги хранения NameNode и DataNode.
Кроме того, значение dfs.replication по умолчанию, равное 3, необходимо изменить на 1, чтобы оно соответствовало настройке с одним узлом.
Используйте следующую команду, чтобы открыть файл hdfs-site.xml для редактирования:
Добавьте в файл следующую конфигурацию и, при необходимости, настройте каталоги NameNode и DataNode в соответствии с вашими предпочтениями:
При необходимости создайте определенные каталоги, которые вы определили для значения dfs.data.dir.
Редактировать файл mapred-site.xml
Используйте следующую команду для доступа к файлу mapred-site.xml и определения значений MapReduce:
Добавьте следующую конфигурацию, чтобы изменить значение имени фреймворка MapReduce по умолчанию на yarn :
Редактировать файл yarn-site.xml
Файл yarn-site.xml используется для определения настроек, относящихся к YARN. Он содержит конфигурации для Node Manager, Resource Manager, Containers и Application Master.
Откройте файл yarn-site.xml в текстовом редакторе:
Добавьте в файл следующую конфигурацию:
Формат узла имени HDFS
Важно отформатировать NameNode перед первым запуском служб Hadoop:
Уведомление о завершении работы означает завершение процесса форматирования NameNode.
Запустить кластер Hadoop
Перейдите в каталог hadoop-3.2.1/sbin и выполните следующие команды, чтобы запустить NameNode и DataNode:
Системе требуется несколько секунд, чтобы инициировать необходимые узлы.
После того, как узел имен, узлы данных и вторичный узел имен будут запущены, запустите ресурс YARN и менеджеры узлов, введя:
Как и в случае с предыдущей командой, вывод информирует вас о запуске процессов.
Введите эту простую команду, чтобы проверить, все ли демоны активны и работают как процессы Java:
Если все работает должным образом, результирующий список запущенных процессов Java содержит все демоны HDFS и YARN.
Доступ к пользовательскому интерфейсу Hadoop из браузера
Используйте предпочитаемый браузер и перейдите по URL-адресу или IP-адресу локального хоста. Номер порта по умолчанию 9870 дает вам доступ к пользовательскому интерфейсу Hadoop NameNode:
Пользовательский интерфейс NameNode предоставляет полный обзор всего кластера.
Порт 9864 по умолчанию используется для доступа к отдельным узлам данных непосредственно из браузера:
Диспетчер ресурсов YARN доступен через порт 8088:
Диспетчер ресурсов — это бесценный инструмент, который позволяет отслеживать все запущенные процессы в кластере Hadoop.
Вы успешно установили Hadoop в Ubuntu и развернули его в псевдораспределенном режиме. Развертывание Hadoop с одним узлом — отличная отправная точка для изучения основных команд HDFS и получения опыта, необходимого для проектирования полностью распределенного кластера Hadoop.
В этом документе описывается установка и настройка установки Hadoop с одним узлом, чтобы можно было быстро выполнять простые операции с помощью Hadoop MapReduce и распределенной файловой системы Hadoop (HDFS).
Предпосылки
Поддерживаемые платформы
GNU/Linux поддерживается как платформа для разработки и производства. Hadoop был продемонстрирован на кластерах GNU/Linux с 2000 узлов.
Windows также является поддерживаемой платформой, но следующие шаги предназначены только для Linux. Чтобы настроить Hadoop в Windows, см. вики-страницу.
Необходимое программное обеспечение
Необходимое программное обеспечение для Linux включает:
Должна быть установлена Java™. Рекомендуемые версии Java описаны в HadoopJavaVersions.
Должен быть установлен ssh и запущен sshd для использования сценариев Hadoop, которые управляют удаленными демонами Hadoop, если будут использоваться необязательные сценарии запуска и остановки. Кроме того, рекомендуется также установить pdsh для лучшего управления ресурсами ssh.
Установка программного обеспечения
Если в вашем кластере нет необходимого программного обеспечения, вам необходимо его установить.
Например, в Ubuntu Linux:
Скачать
Чтобы получить дистрибутив Hadoop, загрузите последнюю стабильную версию с одного из зеркал загрузки Apache.
Подготовка к запуску кластера Hadoop
Распакуйте загруженный дистрибутив Hadoop. В дистрибутиве отредактируйте файл etc/hadoop/hadoop-env.sh, чтобы определить некоторые параметры следующим образом:
Попробуйте следующую команду:
Отобразится документация по использованию сценария hadoop.
Теперь вы готовы запустить свой кластер Hadoop в одном из трех поддерживаемых режимов:
Автономная операция
По умолчанию Hadoop настроен на работу в нераспределенном режиме как единый процесс Java. Это полезно для отладки.
Следующий пример копирует распакованный каталог conf для использования в качестве входных данных, а затем находит и отображает каждое совпадение заданного регулярного выражения. Вывод записывается в указанный выходной каталог.
Псевдораспределенная операция
Hadoop также можно запускать на одном узле в псевдораспределенном режиме, когда каждый демон Hadoop запускается в отдельном процессе Java.
Читайте также: