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

12 set 2022 7 min di lettura
Как установить и настроить Hadoop в Ubuntu 20.04 LTS
Indice dei contenuti

Введение

Hadoop — это бесплатная программная среда с открытым исходным кодом на основе Java, используемая для хранения и обработки больших наборов данных в кластерах машин. Он использует HDFS для хранения своих данных и обработки их с помощью MapReduce.

Hadoop — это экосистема инструментов для обработки больших данных, используемых в основном для интеллектуального анализа данных и машинного обучения.

Apache Hadoop 3.3 содержит значительные улучшения и множество исправлений ошибок по сравнению с предыдущими версиями. Он состоит из четырех основных компонентов, таких как Hadoop Common, HDFS, YARN и MapReduce.

В этом руководстве рассказывается, как установить и настроить Apache Hadoop на Ubuntu 20.04 LTS Focal Fossa.

Если вы хотите установить Hadoop на удаленный сервер, продолжайте чтение, в противном случае пропустите первый абзац «Подключение к серверу» и читайте следующий.

Подключение к серверу

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

ssh root@IP_DEL_SERVER

Далее вам нужно будет ввести пароль пользователя root.

Если вы не используете пользователя root, вы можете войти в систему с другим именем пользователя, используя ту же команду, а затем изменить root на свое имя пользователя:

ssh nome_utente@IP_DEL_SERVER

Затем вам будет предложено ввести пароль пользователя.

Стандартный порт для подключения по ssh — 22, если ваш сервер использует другой порт, вам нужно будет указать его с помощью параметра -p, затем введите следующую команду:

ssh nome_utente@IP_DEL_SERVER -p PORTA

Установить Java

Hadoop написан на Java и поддерживает только Java версии 8. Hadoop версии 3.3 и последняя также поддерживают среду выполнения Java 11 и Java 8.

Вы можете установить OpenJDK 8 из репозиториев apt по умолчанию:

sudo apt update
sudo apt install openjdk-8-jdk

После установки проверьте установленную версию Java с помощью следующей команды:

java -version

Вы должны получить следующий результат:

openjdk version "1.8.0_275"
 OpenJDK Runtime Environment (build 1.8.0_275-8u275-b01-0ubuntu1~20.04-b01)
 OpenJDK 64-Bit Server VM (build 25.275-b01, mixed mode)

Создайте пользователя Hadoop

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

Выполните следующую команду, чтобы создать нового пользователя с именем hadoop:

sudo adduser hadoop

Введите и подтвердите новый пароль, как показано ниже:

Adding user `hadoop'...
 Adding new group `hadoop' (1000)...
 Adding new user `hadoop' (1000) with group `hadoop'...
 The home directory `/home/hadoop' already exists. Not copying from `/etc/skel'.
 New password:
 Retype new password:
 passwd: password updated successfully
 Changing the user information for hadoop
 Enter the new value, or press ENTER for the default
 Full Name []:
 Room Number []:
 Work Phone []:
 Home Phone []:
 Other []:
 Is the information correct? [Y/n]

Настройка аутентификации на основе ключей SSH

Далее вам нужно будет настроить SSH-аутентификацию без пароля для локальной системы.

Во-первых, войдите в систему под пользователем hadoop с помощью команды su:

su - hadoop

Затем выполните следующую команду, чтобы сгенерировать пары открытого и закрытого ключей:

ssh-keygen -t rsa

Вам будет предложено ввести имя файла. Просто нажмите Enter, чтобы завершить процесс:

Generating public/private rsa key pair.
 Enter file in which to save the key (/home/hadoop/.ssh/id_rsa):
 Enter passphrase (empty for no passphrase):
 Enter same passphrase again:
 Your identification has been saved in /home/hadoop/.ssh/id_rsa
 Your public key has been saved in /home/hadoop/.ssh/id_rsa.pub
 The key fingerprint is:
 SHA256:pfEaF19DFMxXeS1M3mWYPwcn2/GRb6Drv14mVNuPKow hadoop@TEST-SERVER-1
 The key's randomart image is:
 +---[RSA 3072]----+
 | *=+O|
 | o@B*|
 |. o.+@O|
 | = o...+X|
 | S o...o+|
 | +....|
 |.o. o +|
 | E o.. + |
 |..o+. |
 +----[SHA256]-----+

Затем добавьте открытые ключи, сгенерированные id_rsa.pub, в authorized_keys и установите соответствующее разрешение:

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 640 ~/.ssh/authorized_keys

Затем проверьте аутентификацию SSH без пароля с помощью следующей команды:

ssh localhost

Вам будет предложено аутентифицировать хосты, добавив ключи RSA к известным хостам. Введите yes и нажмите Invio, чтобы аутентифицировать локальный хост:

The authenticity of host 'localhost (127.0.0.1)' can't be established.
 ECDSA key fingerprint is SHA256:CoGsEfZLQ4ELMBhVTnCASQ4DmNdmjcke/D35mmFvF9o.
 Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
 Warning: Permanently added 'localhost' (ECDSA) to the list of known hosts.
 Welcome to Ubuntu 20.04.1 LTS (GNU/Linux 5.4.0-52-generic x86_64)

 * Documentation: https://help.ubuntu.com
 * Management: https://landscape.canonical.com
 * Support: https://ubuntu.com/advantage

Установить Хадуп

Во-первых, убедитесь, что вы вошли в систему с пользователем hadoop с помощью следующей команды:

su - hadoop

Затем загрузите последнюю версию Hadoop с помощью команды wget:

wget https://downloads.apache.org/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz

После загрузки извлеките загруженный файл с помощью команды tar:

tar -xvzf hadoop-3.3.0.tar.gz

Затем переименуйте извлеченный каталог в hadoop:

mv hadoop-3.3.0 hadoop

Далее вам нужно будет настроить переменные среды Hadoop и Java в вашей системе.

Откройте файл ~/.bashrc в вашем любимом текстовом редакторе, здесь мы используем nano:

nano ~/.bashrc

Добавьте следующие строки:

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64/export HADOOP_HOME=/home/hadoop/hadoop
 export HADOOP_INSTALL=$HADOOP_HOME
 export HADOOP_MAPRED_HOME=$HADOOP_HOME
 export HADOOP_COMMON_HOME=$HADOOP_HOME
 export HADOOP_HDFS_HOME=$HADOOP_HOME
 export HADOOP_YARN_HOME=$HADOOP_HOME
 export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
 export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
 export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native"

Сохраните и закройте файл. Затем активируйте переменные среды с помощью следующей команды:

source ~/.bashrc

Затем откройте файл переменной среды Hadoop:

nano $HADOOP_HOME/etc/hadoop/hadoop-env.sh

Раскомментируйте и измените переменную JAVA_HOME в соответствии с путем установки Java:

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64/

Сохраните и закройте файл, когда закончите.

Настроить Hadoop

Во-первых, вам нужно будет создать namenode и datanode внутри домашнего каталога Hadoop:

Выполните следующую команду, чтобы создать оба каталога:

mkdir -p ~/hadoopdata/hdfs/namenode
mkdir -p ~/hadoopdata/hdfs/datanode

Затем отредактируйте файл core-site.xml и обновите его, указав имя хоста вашей системы:

nano $HADOOP_HOME/etc/hadoop/core-site.xml

Отредактируйте следующий файл в соответствии с именем хоста системы:

<configuration>
 <property>
 <name>fs.defaultFS</name>
 <value>hdfs://TUO_DOMINIO.com:9000</value>
 </property>
 </configuration>

Сохраните и закройте файл. Затем отредактируйте файл hdfs-site.xml:

nano $HADOOP_HOME/etc/hadoop/hdfs-site.xml

Измените путь к каталогу NameNode и DataNode, как показано ниже:

<configuration>

 <property>
 <name>dfs.replication</name>
 <value>1</value>
 </property>

 <property>
 <name>dfs.name.dir</name>
 <value>file:///home/hadoop/hadoopdata/hdfs/namenode</value>
 </property>

 <property>
 <name>dfs.data.dir</name>
 <value>file:///home/hadoop/hadoopdata/hdfs/datanode</value>
 </property>
 </configuration>

Сохраните и закройте файл. Затем отредактируйте файл mapred-site.xml:

nano $HADOOP_HOME/etc/hadoop/mapred-site.xml

Внесите следующие изменения:

<configuration>
 <property>
 <name>mapreduce.framework.name</name>
 <value>yarn</value>
 </property>
 </configuration>

Сохраните и закройте файл. Затем отредактируйте файл arn-site.xml:

nano $HADOOP_HOME/etc/hadoop/yarn-site.xml

Внесите следующие изменения:

<configuration>
 <property>
 <name>yarn.nodemanager.aux-services</name>
 <value>mapreduce_shuffle</value>
 </property>
 </configuration>

Сохраните и закройте файл, когда закончите.

Запустить кластер Hadoop

Перед запуском кластера Hadoop. Вам нужно будет отформатировать Namenode как пользователя hadoop.

Выполните следующую команду, чтобы отформатировать Hadoop Namenode:

hdfs namenode -format

Вы должны получить следующий результат:

...
 2020-11-23 22:59:13,290 INFO namenode.FSImage: Allocated new BlockPoolId: BP-650323875-127.0.1.1-1606168753269
 2020-11-23 22:59:13,320 INFO common.Storage: Storage directory /home/hadoop/hadoopdata/hdfs/namenode has been successfully formatted.
 2020-11-23 22:59:13,403 INFO namenode.FSImageFormatProtobuf: Saving image file /home/hadoop/hadoopdata/hdfs/namenode/current/fsimage.ckpt_0000000000000000000 using no compression
 2020-11-23 22:59:13,595 INFO namenode.FSImageFormatProtobuf: Image file /home/hadoop/hadoopdata/hdfs/namenode/current/fsimage.ckpt_0000000000000000000 of size 401 bytes saved in 0 seconds.
 2020-11-23 22:59:13,605 INFO namenode.NNStorageRetentionManager: Going to retain 1 images with txid >= 0
 2020-11-23 22:59:13,610 INFO namenode.FSImage: FSImageSaver clean checkpoint: txid=0 when meet shutdown.
 2020-11-23 22:59:13,611 INFO namenode.NameNode: SHUTDOWN_MSG:
 /************************************************************
 SHUTDOWN_MSG: Shutting down NameNode at TUO_HOSTNAME/127.0.1.1
 ************************************************************/

После форматирования Namenode выполните следующую команду, чтобы запустить кластер hadoop:

start-dfs.sh

После успешной загрузки HDFS вы должны получить следующий вывод:

Starting namenodes on [TUO_DOMINIO.com]
 Starting datanodes
 Starting secondary namenodes [TUO_DOMINIO.com]
 TUO_DOMINIO.com: Warning: Permanently added 'TUO_DOMINIO.com' (ECDSA) to the list of known hosts.

Затем запустите службу YARN, как показано ниже:

start-yarn.sh

Вы должны получить следующий результат:

Starting resourcemanager
 Starting nodemanagers

Теперь вы можете проверить состояние всех служб Hadoop с помощью команды jps:

jps

Вы должны увидеть все запущенные службы в следующем выводе:

2129 NodeManager
 1827 SecondaryNameNode
 2452 Jps
 1701 DataNode
 2024 ResourceManager

Настроить брандмауэр

Теперь Hadoop работает и прослушивает порты 9870 и 8088.

Если у вас включен брандмауэр UFW, вам нужно будет разрешить этим портам проходить через брандмауэр.

Выполните следующие команды от имени пользователя root, чтобы разрешить подключения Hadoop через брандмауэр:

ufw allow 9870/tcp
ufw allow 8088/tcp

Войдите в Hadoop Namenode и диспетчер ресурсов

Чтобы получить доступ к Namenode, откройте веб-браузер и перейдите по URL-адресу http://tuo_dominio.com:9870. Вы должны увидеть экран сводки службы.

Чтобы получить доступ к управлению ресурсами, откройте веб-браузер и перейдите по URL-адресу http://tuo_dominio.com:8088. Вы должны увидеть экран управления Hadoop.

Проверить кластер Hadoop

На этом этапе кластер Hadoop установлен и настроен. Далее мы создадим несколько каталогов в файловой системе HDFS для тестирования Hadoop.

Убедитесь, что вы вошли в систему с пользователем hadoop:

su - hadoop

Давайте создадим каталог в файловой системе HDFS, используя следующую команду:

hdfs dfs -mkdir /test1
hdfs dfs -mkdir /logs

Затем выполните следующую команду, чтобы просмотреть каталог выше:

hdfs dfs -ls /

Вы должны получить следующий результат:

Found 3 items
 drwxr-xr-x - hadoop supergroup 0 2020-11-23 23:46 /logs
 drwxr-xr-x - hadoop supergroup 0 2020-11-23 23:41 /test1

Кроме того, поместите несколько файлов в файловую систему Hadoop. Например, добавьте файлы журналов с хост-компьютера в файловую систему hadoop.

hdfs dfs -put /var/log/* /logs/

Вы также можете проверить вышеуказанные файлы и каталог в веб-интерфейсе Hadoop Namenode.

Заходим в веб-интерфейс Namenode, нажимаем Utilities->Browse the file system. Вы должны увидеть свои каталоги, которые вы создали ранее.

Остановить кластер Hadoop

Вы также можете остановить службу Hadoop Namenode и Yarn в любое время, запустив сценарии stop-dfs.sh и stop-yarn.sh от имени пользователя Hadoop.

Чтобы остановить службу Hadoop Namenode, выполните следующую команду от имени пользователя hadoop:

stop-dfs.sh

Чтобы остановить службу диспетчера ресурсов Hadoop, выполните следующую команду:

stop-yarn.sh

Вывод

В этом руководстве шаг за шагом рассказывается, как установить и настроить Hadoop в системе Linux Ubuntu 20.04 LTS Focal Fossa.

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.