Jak zainstalować klaster pojedynczego węzła Hadoop (pseudonod) w CentOS 7
Hadoop to platforma typu open source, która jest powszechnie stosowana do obsługi Bigdata. Większość projektów Bigdata/Analiza danych opiera się na ekosystemie Hadoop. Składa się z dwóch warstw, jedna przeznaczona jest do przechowywania danych, a druga do przetwarzania danych.
Przechowywaniem zajmie się własny system plików o nazwie HDFS (rozproszony system plików Hadoop), a przetwarzanie będzie wykonywane opieką YARN (Yet Another Resource Negotiator). Mapreduce to domyślny silnik przetwarzania Ekosystemu Hadoop.
W tym artykule opisano proces instalacji pseudonodowej instalacji Hadoopa, w której zostaną zainstalowane wszystkie demony (JVM) z uruchomionym klastrem Single Node w CentOS 7.
Jest to przeznaczone głównie dla początkujących, którzy chcą nauczyć się Hadoopa. W czasie rzeczywistym Hadoop zostanie zainstalowany jako klaster wielowęzłowy, w którym dane będą dystrybuowane pomiędzy serwerami w postaci bloków, a zadanie będzie wykonywane równolegle.
Warunki wstępne
- Minimalna instalacja serwera CentOS 7.
- Wersja Java v1.8.
- Wersja stabilna Hadoop 2.x.
Na tej stronie
- Jak zainstalować Javę na CentOS 7
- Skonfiguruj logowanie bez hasła w CentOS 7
- Jak zainstalować pojedynczy węzeł Hadoop w CentOS 7
- Jak skonfigurować Hadoop w CentOS 7
- Formatowanie systemu plików HDFS za pomocą NameNode
Instalowanie Javy na CentOS 7
1. Hadoop to ekosystem składający się z Javy. Aby zainstalować Hadoop, w naszym systemie obowiązkowo musimy zainstalować Java.
yum install java-1.8.0-openjdk
2. Następnie sprawdź zainstalowaną wersję Java w systemie.
java -version
Skonfiguruj logowanie bez hasła w CentOS 7
Musimy mieć skonfigurowany ssh na naszym komputerze, Hadoop będzie zarządzał węzłami za pomocą SSH. Węzeł główny wykorzystuje połączenie SSH do łączenia węzłów podrzędnych i wykonywania operacji takich jak uruchamianie i zatrzymywanie.
Musimy skonfigurować ssh bez hasła, aby master mógł komunikować się z urządzeniami slave za pomocą ssh bez hasła. W przeciwnym razie przy każdym nawiązaniu połączenia należy wprowadzić hasło.
W tym pojedynczym węźle usługi Master (Namenode, Dodatkowy węzeł nazwy i Menedżer zasobów) oraz Slave< usługi (Datanode i Nodemanager) będą działać jako oddzielne JVM. Mimo że jest to pojedynczy węzeł, musimy mieć ssh bez hasła, aby Master mógł komunikować się z Slave bez uwierzytelniania.
3. Skonfiguruj logowanie SSH bez hasła, używając następujących poleceń na serwerze.
ssh-keygen
ssh-copy-id -i localhost
4. Po skonfigurowaniu logowania SSH bez hasła, spróbuj zalogować się ponownie, zostaniesz połączony bez hasła.
ssh localhost
Instalowanie Hadoopa w CentOS 7
5. Przejdź do witryny Apache Hadoop i pobierz stabilną wersję Hadoop, używając następującego polecenia 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. Następnie dodaj zmienne środowiskowe Hadoop w pliku ~/.bashrc
, jak pokazano.
HADOOP_PREFIX=/root/hadoop-2.10.1
PATH=$PATH:$HADOOP_PREFIX/bin
export PATH JAVA_HOME HADOOP_PREFIX
7. Po dodaniu zmiennych środowiskowych do pliku ~/.bashrc
pobierz plik źródłowy i sprawdź Hadoop, uruchamiając następujące polecenia.
source ~/.bashrc
cd $HADOOP_PREFIX
bin/hadoop version
Konfigurowanie Hadoopa w CentOS 7
Musimy skonfigurować poniższe pliki konfiguracyjne Hadoop, aby zmieściły się na Twoim komputerze. W Hadoop każda usługa ma swój własny numer portu i własny katalog do przechowywania danych.
- Pliki konfiguracyjne Hadoop – core-site.xml, hdfs-site.xml, mapred-site.xml i przędza-site.xml
8. Najpierw musimy zaktualizować ścieżkę JAVA_HOME
i Hadoop w pliku hadoop-env.sh, jak pokazano .
cd $HADOOP_PREFIX/etc/hadoop
vi hadoop-env.sh
Wprowadź następujący wiersz na początku pliku.
export JAVA_HOME=/usr/lib/jvm/java-1.8.0/jre
export HADOOP_PREFIX=/root/hadoop-2.10.1
9. Następnie zmodyfikuj plik core-site.xml
.
cd $HADOOP_PREFIX/etc/hadoop
vi core-site.xml
Wklej następujące znaczniki pomiędzy tagami <configuration>
, jak pokazano.
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
10. Utwórz poniższe katalogi w katalogu domowym użytkownika tecmint
, który będzie używany do przechowywania danych NN i DN.
mkdir -p /home/tecmint/hdata/
mkdir -p /home/tecmint/hdata/data
mkdir -p /home/tecmint/hdata/name
10. Następnie zmodyfikuj plik hdfs-site.xml
.
cd $HADOOP_PREFIX/etc/hadoop
vi hdfs-site.xml
Wklej następujące znaczniki pomiędzy tagami <configuration>
, jak pokazano.
<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. Ponownie zmodyfikuj plik mapred-site.xml
.
cd $HADOOP_PREFIX/etc/hadoop
cp mapred-site.xml.template mapred-site.xml
vi mapred-site.xml
Wklej następujące znaczniki pomiędzy tagami <configuration>
, jak pokazano.
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
12. Na koniec zmodyfikuj plik yarn-site.xml
.
cd $HADOOP_PREFIX/etc/hadoop
vi yarn-site.xml
Wklej następujące znaczniki pomiędzy tagami <configuration>
, jak pokazano.
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
Formatowanie systemu plików HDFS za pomocą NameNode
13. Przed uruchomieniem Klastra musimy sformatować Hadoop NN w naszym systemie lokalnym, w którym został zainstalowany. Zwykle będzie to zrobione na etapie początkowym, przed pierwszym uruchomieniem klastra.
Formatowanie NN spowoduje utratę danych w metastore NN, dlatego musimy zachować większą ostrożność, nie powinniśmy formatować NN podczas działania klastra, chyba że jest to celowo wymagane.
cd $HADOOP_PREFIX
bin/hadoop namenode -format
14. Uruchom demona NameNode i demona DataNode: (port 50070).
cd $HADOOP_PREFIX
sbin/start-dfs.sh
15. Uruchom demona ResourceManager i demona NodeManager: (port 8088).
sbin/start-yarn.sh
16. Aby zatrzymać wszystkie usługi.
sbin/stop-dfs.sh
sbin/stop-dfs.sh
Streszczenie
Podsumowanie
W tym artykule omówiliśmy krok po kroku proces konfigurowania pseudonodu Hadoop (pojedynczy węzeł) klastra. Jeśli masz podstawową wiedzę o Linuksie i wykonasz poniższe kroki, klaster będzie gotowy za 40 minut.
Może to być bardzo przydatne dla początkujących, aby rozpocząć naukę i ćwiczyć Hadoop lub tę podstawową wersję Hadoop można wykorzystać do celów programistycznych. Jeśli chcemy mieć klaster czasu rzeczywistego, potrzebujemy co najmniej 3 serwerów fizycznych pod ręką lub musimy udostępnić chmurę w celu posiadania wielu serwerów.