Как установить кластер Hadoop с одним узлом (псевдоузел) на CentOS 7
Hadoop – это платформа с открытым исходным кодом, широко используемая для работы с большими данными. Большинство проектов Bigdata/Data Analytics строятся на базе эко-системы Hadoop. Он состоит из двух слоев: один предназначен для Хранения данных, а другой — для Обработки данных.
О Хранилище будет заботиться собственная файловая система под названием HDFS (Распределенная файловая система Hadoop), а Обработка будет осуществляться. заботой YARN (еще одного переговорщика по ресурсам). Mapreduce — это механизм обработки по умолчанию в экосистеме Hadoop.
В этой статье описан процесс установки псевдонода Hadoop, в котором будут использоваться все демоны (JVM). запуск кластера Один узел на CentOS 7.
Это в основном для новичков в изучении Hadoop. В режиме реального времени Hadoop будет установлен как многоузловой кластер, где данные будут распределяться между серверами в виде блоков, а задания будут выполняться параллельно.
Предварительные условия
- Минимальная установка сервера CentOS 7.
- Выпуск Java v1.8.
- Стабильная версия Hadoop 2.x.
На этой странице
- Как установить Java на CentOS 7
- Настройка входа без пароля на CentOS 7
- Как установить единый узел Hadoop в CentOS 7
- Как настроить Hadoop в CentOS 7
- Форматирование файловой системы HDFS через NameNode
Установка Java на CentOS 7
1. Hadoop — это экосистема, состоящая из Java. Для установки Hadoop в нашей системе обязательно должна быть установлена Java.
yum install java-1.8.0-openjdk
2. Затем проверьте установленную версию Java в системе.
java -version
Настройка входа без пароля в CentOS 7
Нам необходимо настроить ssh на нашей машине, Hadoop будет управлять узлами с помощью SSH. Главный узел использует соединение SSH для подключения своих подчиненных узлов и выполнения таких операций, как запуск и остановка.
Нам нужно настроить ssh без пароля, чтобы главный мог общаться с подчиненными, используя ssh без пароля. В противном случае для каждого установления соединения потребуется вводить пароль.
В этом единственном узле службы Главный (Namenode, Вторичный Namenode и Диспетчер ресурсов) и Подчиненный< Службы (Datanode и Nodemanager) будут работать как отдельные JVM. Несмотря на то, что это один узел, нам нужен ssh без пароля, чтобы Master мог обмениваться данными с Slave без аутентификации.
3. Настройте на сервере вход по SSH без пароля, используя следующие команды.
ssh-keygen
ssh-copy-id -i localhost
4. После того, как вы настроили вход по SSH без пароля, попробуйте войти еще раз, вы будете подключены без пароля.
ssh localhost
Установка Hadoop в CentOS 7
5. Перейдите на веб-сайт Apache Hadoop и загрузите стабильную версию Hadoop, используя следующую команду wget.
wget https://archive.apache.org/dist/hadoop/core/hadoop-2.10.1/hadoop-2.10.1.tar.gz
tar xvpzf hadoop-2.10.1.tar.gz
6. Затем добавьте переменные среды Hadoop в файл ~/.bashrc
, как показано.
HADOOP_PREFIX=/root/hadoop-2.10.1
PATH=$PATH:$HADOOP_PREFIX/bin
export PATH JAVA_HOME HADOOP_PREFIX
7. После добавления переменных среды в файл ~/.bashrc
найдите источник файла и проверьте Hadoop, выполнив следующие команды.
source ~/.bashrc
cd $HADOOP_PREFIX
bin/hadoop version
Настройка Hadoop в CentOS 7
Нам необходимо настроить указанные ниже файлы конфигурации Hadoop, чтобы они соответствовали вашему компьютеру. В Hadoop каждая служба имеет собственный номер порта и собственный каталог для хранения данных.
- Файлы конфигурации Hadoop — core-site.xml, hdfs-site.xml, Mapred-site.xml и Yarn-site.xml.
8. Сначала нам нужно обновить путь JAVA_HOME
и Hadoop в файле hadoop-env.sh, как показано ниже. .
cd $HADOOP_PREFIX/etc/hadoop
vi hadoop-env.sh
Введите следующую строку в начале файла.
export JAVA_HOME=/usr/lib/jvm/java-1.8.0/jre
export HADOOP_PREFIX=/root/hadoop-2.10.1
9. Затем измените файл core-site.xml
.
cd $HADOOP_PREFIX/etc/hadoop
vi core-site.xml
Вставьте следующее между тегами <configuration>
, как показано.
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
10. Создайте указанные ниже каталоги в домашнем каталоге пользователя tecmint
, который будет использоваться для хранения NN и DN.
mkdir -p /home/tecmint/hdata/
mkdir -p /home/tecmint/hdata/data
mkdir -p /home/tecmint/hdata/name
10. Затем измените файл hdfs-site.xml
.
cd $HADOOP_PREFIX/etc/hadoop
vi hdfs-site.xml
Вставьте следующее между тегами <configuration>
, как показано.
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/tecmint/hdata/name</value>
</property>
<property>
<name>dfs .datanode.data.dir</name>
<value>home/tecmint/hdata/data</value>
</property>
</configuration>
11. Снова измените файл mapred-site.xml
.
cd $HADOOP_PREFIX/etc/hadoop
cp mapred-site.xml.template mapred-site.xml
vi mapred-site.xml
Вставьте следующее между тегами <configuration>
, как показано.
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
12. Наконец, измените файл yarn-site.xml
.
cd $HADOOP_PREFIX/etc/hadoop
vi yarn-site.xml
Вставьте следующее между тегами <configuration>
, как показано.
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
Форматирование файловой системы HDFS через NameNode
13. Перед запуском Кластера нам необходимо отформатировать Hadoop NN в нашей локальной системе, где он был установлен. Обычно это делается на начальном этапе перед первым запуском кластера.
Форматирование NN приведет к потере данных в метахранилище NN, поэтому нам следует быть более осторожными: не следует форматировать NN во время работы кластера, если это не требуется намеренно.
cd $HADOOP_PREFIX
bin/hadoop namenode -format
14. Запустите демон NameNode и демон DataNode: (порт 50070).
cd $HADOOP_PREFIX
sbin/start-dfs.sh
15. Запустите демон ResourceManager и демон NodeManager: (порт 8088).
sbin/start-yarn.sh
16. Остановить все службы.
sbin/stop-dfs.sh
sbin/stop-dfs.sh
Краткое содержание
Резюме
В этой статье мы пошагово рассмотрели процесс настройки псевдонода Hadoop (одиночный узел) кластера. Если у вас есть базовые знания Linux и вы выполните следующие действия, кластер будет запущен через 40 минут.
Это может быть очень полезно новичку, чтобы начать изучать и практиковать Hadoop, или эту стандартную версию Hadoop можно использовать в целях разработки. Если мы хотим иметь кластер реального времени, нам нужно либо иметь как минимум 3 физических сервера, либо предоставить облако для наличия нескольких серверов.