Как установить Hadoop на UbuntuШаги по загрузке и установке

⚡ Умное резюме

Установка Apache Hadoop на Ubuntu Процесс состоит из двух этапов: распаковка релиза под выделенной системной учетной записью с использованием SSH без пароля, затем редактирование четырех XML-файлов перед форматированием HDFS и запуском одноузлового кластера.

  • 🔘 Необходимые условия: Бег Ubuntu машина и поддерживаемая Java Сначала необходимо установить комплект для разработки.
  • ☑️ Специальный аккаунт: Создайте группу hadoop_ и учетную запись hduser_, чтобы демоны никогда не запускались от имени вашей учетной записи.
  • SSH без пароля: Hadoop запускает демоны по SSH, поэтому команда ssh localhost должна выполняться без запроса пароля.
  • 🧪 Четыре конфигурационных файла: Файлы hadoop-env.sh, core-site.xml, mapred-site.xml и hdfs-site.xml содержат все настройки, которые изменяются в этом пошаговом руководстве.
  • 🇧🇷 Первый запуск: Отформатируйте NameNode один раз, затем запустите start-dfs.sh и start-yarn.sh и подтвердите наличие пяти демонов с помощью jps.
  • 🧭 Отклонение от оригинала: На скриншотах используется Hadoop 2.2.0, поэтому проверьте версию, порты и названия свойств на соответствие Hadoop 3.x.

Как установить Hadoop на Ubuntu

В этом руководстве мы шаг за шагом расскажем вам, как установить Apache Hadoop на Linux-систему.UbuntuЭто двухэтапный процесс: сначала нужно загрузить и установить релиз, а затем настроить его.

Для этого необходимы два условия:

Примечания к версии Hadoop 3.x для данной настройки

Скриншоты в этом пошаговом руководстве были сделаны на Hadoop 2.2.0. Последовательность шагов не изменилась в текущих версиях, но некоторые имена и значения по умолчанию были изменены. Перед тем как копировать какую-либо команду дословно, проверьте таблицу ниже.

Настройка или шаг В этом руководстве (Hadoop 2.x) Текущая версия Hadoop 3.x
Архив релизов hadoop-2.2.0.tar.gz hadoop-3.5.0.tar.gz, первый стабильный релиз версии 3.5, выпущенный 2 апреля 2026 года.
Свойство файловой системы по умолчанию fs.default.name в прозе, fs.defaultFS в XML fs.defaultFS только; fs.default.name устарела
свойство MapReduce mapreduce.jobtracker.address mapreduce.framework.name установлен в yarn; работаTracПараметр ker перестает существовать после того, как YARN запланирует выполнение задачи.
сопоставленный-site.xml Скопировано из mapred-site.xml.template Корабли в etc/hadoop Уже сейчас этап копирования не нужен, поэтому он не требуется.
Портирование веб-интерфейса NameNode 50070 9870
Java Java 6 или Java 7 Java 8 или Java 11

Все остальное в этом руководстве работает аналогично в Hadoop 3: выделенная учетная запись, SSH-ключ, четыре файла конфигурации, а также скрипты запуска и остановки.

Часть 1) Загрузите и установите Hadoop

Шаг 1) Добавьте системного пользователя Hadoop.

Добавьте системного пользователя Hadoop, используя приведенную ниже команду.

sudo addgroup hadoop_

В терминале запущена команда sudo addgroup hadoop_

sudo adduser --ingroup hadoop_ hduser_

Запрос adduser собирает данные для hduser_

Введите свой пароль, имя и другие данные.

ПРИМЕЧАНИЕ: В процессе настройки и установки возможна следующая ошибка.

«hduser отсутствует в файле sudoers. Об этом инциденте будет сообщено».

Сообщение об ошибке: пользователь hduser отсутствует в файле sudoers.

Эту ошибку можно устранить, войдя в систему под учетной записью root.

Переключение на пользователя root в терминале

Выполнить команду

sudo adduser hduser_ sudo

Добавление пользователя hduser_ в группу sudo

Re-login as hduser_

Повторный вход в систему под именем hduser_

Шаг 2) Настройте SSH

Для управления узлами в кластере Hadoop требуется доступ по SSH.

Сначала смените пользователя, введите следующую команду

su - hduser_

Смена пользователя с помощью команды `su` - hduser_

Эта команда создаст новый ключ.

ssh-keygen -t rsa -P ""

ssh-keygen генерирует пару ключей RSA для hduser_

Включите SSH-доступ к локальному компьютеру, используя этот ключ.

cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys

Добавление файла id_rsa.pub в файл authorized_keys

Теперь проверьте настройку SSH, подключившись к localhost от имени пользователя 'hduser_'.

ssh localhost

Успешно завершена SSH-сессия на localhost для пользователя hduser_

Примечание: Если в ответ на команду 'ssh localhost' вы видите ошибку, указанную ниже, то, возможно, SSH недоступен в этой системе.

ssh localhost завершается ошибкой "соединение отклонено"

Чтобы решить эту проблему –

Очистите SSH с помощью,

sudo apt-get purge openssh-server

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

apt-get purge удаляет существующий пакет openssh-server

Установите SSH с помощью команды:

sudo apt-get install openssh-server

apt-get устанавливает пакет openssh-server

Шаг 3) Загрузите Hadoop

Следующий шаг — загрузка Hadoop с сайта... Страница релизов Apache Hadoop.

Страница релизов Apache Hadoop со списком доступных версий

Выберите стабильную

Список файлов и папок стабильной версии Hadoop.

Выберите файл tar.gz (а не файл с расширением src).

Выбор бинарного файла Hadoop tar.gz вместо исходного архива.

После завершения загрузки перейдите в каталог, содержащий tar-архив.

Терминал открыт в директории, содержащей загруженный tar-архив.

Enter,

sudo tar xzf hadoop-2.2.0.tar.gz

Extracting Hadoop tarball with tar xzf

Теперь переименуйте hadoop-2.2.0 в hadoop.

sudo mv hadoop-2.2.0 hadoop

Переименование бывшегоtracпапка ted hadoop-2.2.0 в Hadoop

Наконец, передайте папку новому пользователю.

sudo chown -R hduser_:hadoop_ hadoop

Команда `chown` назначает права доступа к папке hadoop пользователям `hduser_` и `hadoop_`.

Замените версию, которую вы фактически скачали, на ту, которую вы скачали. hadoop-2.2.0 в трех приведенных выше командах.

Часть 2) Настройка Hadoop

Шаг 1) Измените файл ~/.bashrc

Добавьте следующие строки в конец файла ~/.bashrc.

#Set HADOOP_HOME
export HADOOP_HOME=<Installation Directory of Hadoop>
#Set JAVA_HOME
export JAVA_HOME=<Installation Directory of Java>
# Add bin/ directory of Hadoop to PATH
export PATH=$PATH:$HADOOP_HOME/bin

Файл bashrc с добавленными экспортами переменных HADOOP_HOME, JAVA_HOME и PATH.

Теперь выполните команду `source` для получения конфигурации среды, используя приведенную ниже команду.

. ~/.bashrc

Выполняем команду `source bashrc`, чтобы новые переменные окружения вступили в силу.

Шаг 2) Настройки, связанные с HDFS

Установите переменную JAVA_HOME в файле $HADOOP_HOME/etc/hadoop/hadoop-env.sh, как показано ниже.

Строка `JAVA_HOME` по умолчанию внутри файла `hadoop-env.sh`

В редакторе открылся файл hadoop-env.sh, отображающий экспорт переменной JAVA_HOME.

С

В файле hadoop-env.sh переменная JAVA_HOME заменена на реальную. Java путь установки

В файле $HADOOP_HOME/etc/hadoop/core-site.xml необходимо установить два параметра:

1. 'hadoop.tmp.dir' – Используется для указания каталога, который Hadoop будет использовать для хранения файлов данных.

2. 'fs.defaultFS' – Этот параметр задает файловую систему по умолчанию. Более старое название этого свойства, 'fs.default.name', устарело.

Чтобы установить эти параметры, откройте core-site.xml.

sudo gedit $HADOOP_HOME/etc/hadoop/core-site.xml

Открытие файла core-site.xml с помощью gedit

Скопируйте строки ниже между теги.

<property>
<name>hadoop.tmp.dir</name>
<value>/app/hadoop/tmp</value>
<description>Parent directory for other temporary directories.</description>
</property>
<property>
<name>fs.defaultFS </name>
<value>hdfs://localhost:54310</value>
<description>The name of the default file system. </description>
</property>

Файл core-site.xml содержит свойства hadoop.tmp.dir и fs.defaultFS.

Перейдите в каталог $HADOOP_HOME/etc/hadoop.

Терминал внутри каталога конфигурации Hadoop etc/hadoop

Теперь создайте каталог, указанный в файле core-site.xml.

sudo mkdir -p <Path of Directory used in above setting>

mkdir -p создает путь hadoop.tmp.dir

Предоставьте права доступа к каталогу.

sudo chown -R hduser_:Hadoop_ <Path of Directory created in above step>

Команда `chown` предоставляет пользователю hduser_ права владения временным каталогом.

sudo chmod 750 <Path of Directory created in above step>

Команда chmod 750 применена к временному каталогу.

Шаг 3) Настройка MapReduce

Прежде чем приступить к настройке, давайте зададим путь к каталогу HADOOP_HOME.

sudo gedit /etc/profile.d/hadoop.sh

и введите

export HADOOP_HOME=/home/guru99/Downloads/Hadoop

Скрипт профилирования hadoop.sh, экспортирующий переменную HADOOP_HOME.

Далее введите

sudo chmod +x /etc/profile.d/hadoop.sh

Команда `chmod +x` делает скрипт профилирования `hadoop.sh` исполняемым.

Выйдите из терминала и перезапустите его снова.

Введите команду echo $HADOOP_HOME, чтобы проверить путь.

echo $HADOOP_HOME выводит настроенный путь установки

Теперь скопируйте файлы

sudo cp $HADOOP_HOME/etc/hadoop/mapred-site.xml.template $HADOOP_HOME/etc/hadoop/mapred-site.xml

Копирование файла mapred-site.xml.template в файл mapred-site.xml

Откройте файл mapred-site.xml

sudo gedit $HADOOP_HOME/etc/hadoop/mapred-site.xml

Открытие файла mapred-site.xml с помощью gedit

Добавьте указанные ниже настройки между и теги.

<property>
<name>mapreduce.jobtracker.address</name>
<value>localhost:54311</value>
<description>MapReduce job tracker runs at this host and port.
</description>
</property>

Файл mapred-site.xml содержит задание MapReduce. tracсобственность кер

Откройте файл $HADOOP_HOME/etc/hadoop/hdfs-site.xml, как показано ниже:

sudo gedit $HADOOP_HOME/etc/hadoop/hdfs-site.xml

Открытие файла hdfs-site.xml с помощью gedit

Добавьте указанные ниже настройки между и теги.

<property>
<name>dfs.replication</name>
<value>1</value>
<description>Default block replication.</description>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/hduser_/hdfs</value>
</property>

Файл hdfs-site.xml содержит свойства dfs.replication и dfs.datanode.data.dir.

Создайте каталог, указанный в приведенных выше настройках.

sudo mkdir -p <Path of Directory used in above setting>
sudo mkdir -p /home/hduser_/hdfs

mkdir -p создание каталога данных DataNode

Затем предоставьте право собственности и необходимые разрешения на его использование.

sudo chown -R hduser_:hadoop_ <Path of Directory created in above step>
sudo chown -R hduser_:hadoop_ /home/hduser_/hdfs

Команда `chown` предоставляет пользователю hduser_ права собственности на каталог данных DataNode.

sudo chmod 750 <Path of Directory created in above step>
sudo chmod 750 /home/hduser_/hdfs

Команда chmod 750 применена к каталогу данных DataNode.

Шаг 4) Форматирование HDFS

Перед первым запуском Hadoop отформатируйте HDFS, используя приведенную ниже команду.

$HADOOP_HOME/bin/hdfs namenode -format

hdfs namenode -format output форматирование новой файловой системы

Шаг 5) Запустите одноузловой кластер Hadoop.

Запустите одноузловой кластер Hadoop, используя приведенную ниже команду.

$HADOOP_HOME/sbin/start-dfs.sh

Результат выполнения указанной выше команды показан ниже.

Вывод команды start-dfs.sh при запуске NameNode и DataNode

Затем запустите демоны YARN.

$HADOOP_HOME/sbin/start-yarn.sh

Вывод команды start-yarn.sh при запуске ResourceManager и NodeManager

С помощью инструмента 'jps' проверьте, запущены ли все процессы, связанные с Hadoop.

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

Если Hadoop успешно запущен, в выводе команды jps должны быть указаны NameNode, NodeManager, ResourceManager, SecondaryNameNode и DataNode.

Шаг 6) Остановкаping Hadoop

Выключите кластер в обратном порядке.

$HADOOP_HOME/sbin/stop-dfs.sh

Вывод команды stop-dfs.sh: завершение работы демонов HDFS

$HADOOP_HOME/sbin/stop-yarn.sh

Вывод команды stop-yarn.sh: завершение работы демонов YARN

Как проверить, запущен ли Hadoop, и исправить распространенные ошибки.

Вывод команды jps подтверждает запуск процессов, но не то, что кластер пригоден для использования. Четыре дополнительные проверки позволяют решить этот вопрос.

  • Откройте веб-интерфейс NameNode по адресу: http://localhost:9870 (порт 50070 в Hadoop 2.x) и подтвердите, что в сводке отображается один работающий узел.
  • Откройте интерфейс ResourceManager по адресу: http://localhost:8088 чтобы подтвердить, что YARN принял NodeManager.
  • Run hdfs dfsadmin -report для обеспечения достаточной емкости, наличия активных DataNodes и любых недореплицированных блоков.
  • Напишите что-нибудь: hdfs dfs -mkdir /test последующей hdfs dfs -ls / доказывает, что пространство имен принимает изменения.

Большинство неудачных попыток с первого раза попадают в одну из пяти категорий.

Симптом Вызывать фиксированный
Параметр JAVA_HOME не установлен и не найден. Переменная экспортируется в файле .bashrc, но не в файле hadoop-env.sh. Также укажите абсолютный путь к JDK в файле hadoop-env.sh.
Отказано в доступе (publickey, password) к ssh localhost Параметр authorized_keys отсутствует или имеет слишком разрешительные значения. Добавьте файл id_rsa.pub обратно, затем выполните команду chmod 600 для ~/.ssh/authorized_keys.
Соединение отклонено на порту 22 openssh-server не установлен или не запущен Установите openssh-server и запустите службу ssh.
После переформатирования в файле jps отсутствует DataNode. Cluster Несоответствие идентификаторов между отформатированным NameNode и старым каталогом DataNode. Очистите папку dfs.datanode.data.dir, затем выполните форматирование еще раз.
start-dfs.sh: команда не найдена В текущей оболочке переменные HADOOP_HOME и PATH никогда не подключались. Запустите .~/.bashrc или откройте новый терминал.

Часто задаваемые вопросы (FAQ)

Любая активно поддерживаемая Ubuntu Работает LTS-релиз, включая версии 22.04 и 24.04. Hadoop 3.x собран и протестирован на Java 8 и Java 11, поэтому установите один из этих JDK; более новые JDK не полностью поддерживаются, а более старые — нет. Java 7 вариантов сборки больше не актуальны.

Скрипты start-dfs.sh и start-yarn.sh запускают все демоны через SSH, даже если единственным хостом является localhost. Без ключа без пароля скрипты зависают на запросе пароля, и ни один демон не запускается.

hadoop.tmp.dir — это базовый путь для временных файлов, который Hadoop использует для определения других временных местоположений. dfs.datanode.data.dir — это место, где DataNode хранит реальные блочные файлы. Второй путь должен указывать на постоянное хранилище, никогда не на /tmp, иначе блоки исчезнут при перезагрузке.

Форматируйте один раз, перед первым запуском. Повторный запуск форматирования удалит пространство имен и оставит существующие каталоги DataNode с более старым идентификатором кластера, поэтому DataNode затем отказывается регистрироваться и исчезает из выходных данных jps.

Да хоть Windows Для работы требуются собственные исполняемые файлы winutils.exe и hadoop.dll для соответствующей версии. Большинство пользователей избегают этого, запуская ту же самую программу. Ubuntu шаг внутрь WSL 2, которая ведёт себя как обычный хост Linux.

Для обучения — да: предварительно собранный образ не требует создания пользователей, SSH-ключей и редактирования XML-файлов. Однако ручную установку все равно стоит выполнить один раз, поскольку она показывает, какой файл управляет каждой настройкой в ​​случае некорректной работы реального кластера.

Модели машинного обучения, использующие метрики NameNode и YARN, прогнозируют ограничения пропускной способности, выявляют неравномерное распределение задач и заблаговременно сигнализируют о сбоях дисков. Некоторые платформы также автоматически рекомендуют размеры контейнеров, заменяя большую часть ручной настройки этой конфигурации, которая ранее требовалась.

Copilot быстро создает блоки свойств core-site.xml и hdfs-site.xml и запоминает точное написание. Проверяйте каждое предложение по документации для вашей версии, поскольку часто предлагаются устаревшие свойства, такие как mapreduce.job.tracker.address или fs.default.name.

Подведем итог этой публикации следующим образом: