Wyszukiwanie w witrynie

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.