Wyszukiwanie w witrynie

Jak zainstalować i skonfigurować Cloudera Manager na CentOS/RHEL 7 — część 3


W tym artykule opisaliśmy krok po kroku proces instalacji Cloudera Manager zgodnie z praktykami branżowymi. W części 2 przeszliśmy już przez wymagania wstępne Cloudera, upewnij się, że wszystkie serwery są doskonale przygotowane.

Wymagania

  • Najlepsze praktyki dotyczące wdrażania serwera Hadoop w CentOS/RHEL 7 – część 1
  • Konfigurowanie wymagań wstępnych Hadoop i zwiększanie zabezpieczeń — część 2

Tutaj będziemy mieli klaster z 5 węzłami, w którym będzie 2 mistrzów i 3 pracowników. Do zademonstrowania procedury instalacji użyłem 5 instancji AWS EC2. Nazwałem te 5 serwerów jak poniżej.

master1.linux-console.net
master2.linux-console.net
worker1.linux-console.net
worker2.linux-console.net
worker3.linux-console.net

Cloudera Manager to narzędzie administracyjne i monitorujące dla całego CDH. Administratorzy zwykle nazywają to narzędziem do zarządzania Cloudera Hadoop. Za pomocą tego narzędzia możemy wdrażać, monitorować, kontrolować i wprowadzać zmiany w konfiguracji. Jest to bardzo istotne do zarządzania całym klastrem.

Poniżej znajdują się ważne zastosowania Cloudera Manager.

  • Wdrażaj i konfiguruj klastry Hadoop w sposób zautomatyzowany.
  • Monitoruj kondycję klastra
  • Skonfiguruj alerty
  • Rozwiązywanie problemów
  • Raportowanie
  • Sporządzanie raportu wykorzystania klastra
  • Dynamiczna konfiguracja zasobów

Krok 1: Instalowanie serwera WWW Apache na CentOS

Będziemy używać master1 jako serwera WWW dla repozytoriów Cloudera. Ponadto Cloudera Manager to WebUI, dlatego musimy mieć zainstalowany Apache. Wykonaj poniższe kroki, aby zainstalować serwer WWW Apache.

yum -y install httpd

Po zainstalowaniu httpd uruchom go i włącz, aby uruchamiał się podczas rozruchu.

systemctl start httpd
systemctl enable httpd

Po uruchomieniu httpd sprawdź status.

systemctl status httpd

Po uruchomieniu httpd otwórz przeglądarkę w swoim systemie lokalnym i wklej adres IP master1 w pasku wyszukiwania. Powinieneś otrzymać tę stronę testową, aby upewnić się, że httpd działa poprawnie.

Krok 2: Skonfiguruj lokalny DNS, aby rozpoznać adres IP i nazwę hosta

Musimy mieć serwer DNS lub skonfigurować /etc/hosts, aby rozpoznawać adres IP i nazwę hosta. Tutaj konfigurujemy /etc/hosts, ale w czasie rzeczywistym dostępny będzie dedykowany serwer DNS dla środowiska produkcyjnego.

Wykonaj poniższe kroki, aby utworzyć wpis dla wszystkich swoich serwerów w /etc/hosts.

vi /etc/hosts

Należy to skonfigurować na wszystkich serwerach.

13.235.27.144   master1.linux-console.net     master1
13.235.135.170  master2.linux-console.net     master2
15.206.167.94   worker1.linux-console.net     worker1
13.232.173.158  worker2.linux-console.net     worker2
65.0.182.222    worker3.linux-console.net     worker3

Krok 3: Skonfiguruj logowanie SSH bez hasła

W tej demonstracji Cloudera Manager jest instalowany na master1. Musimy skonfigurować ssh bez hasła z master1 do wszystkich pozostałych węzłów. Ponieważ Menedżer Cloudera użyje ssh do komunikacji ze wszystkimi innymi węzłami w celu zainstalowania pakietów.

Wykonaj poniższe kroki, aby skonfigurować ssh bez hasła z master1 na wszystkie pozostałe serwery. Będziemy mieć użytkownika „tecmint”, aby kontynuować.

Utwórz użytkownika „tecmint” na wszystkich 4 serwerach za pomocą polecenia useradd, jak pokazano.

useradd -m tecmint

Aby nadać uprawnienia roota użytkownikowi „tecmint”, dodaj poniższą linię do pliku /etc/sudoers. Możesz dodać tę linię w katalogu głównym, jak pokazano na zrzucie ekranu.

tecmint   ALL=(ALL)    ALL

Przełącz się na użytkownika „tecmint” i utwórz klucz ssh w master1 za pomocą poniższego polecenia.

sudo su tecmint
ssh-keygen

Teraz skopiuj utworzony klucz na wszystkie 4 serwery za pomocą polecenia ssh-copy-id, jak pokazano.

ssh-copy-id -i ~/.ssh/id_rsa.pub [email 
ssh-copy-id -i ~/.ssh/id_rsa.pub [email 
ssh-copy-id -i ~/.ssh/id_rsa.pub [email  
ssh-copy-id -i ~/.ssh/id_rsa.pub [email 

Teraz powinno być możliwe połączenie ssh z master1 na pozostałe wszystkie serwery bez hasła, jak pokazano.

ssh master2
ssh worker1
ssh worker2
ssh worker3

Krok 4: Instalacja i konfiguracja Cloudera Manager

Możemy skorzystać z repozytorium dostawcy (Cloudera), aby zainstalować wszystkie pakiety za pomocą narzędzi do zarządzania pakietami w RHEL/CentOS. W czasie rzeczywistym tworzenie własnego repozytorium jest najlepszą praktyką, ponieważ na serwerach produkcyjnych możemy nie mieć dostępu do Internetu.

Tutaj zainstalujemy wersję Cloudera Manager 6.3.1. Ponieważ będziemy używać master1 jako serwera repo, pobieramy pakiety w podanej poniżej ścieżce.

Utwórz poniższe katalogi na serwerze master1.

sudo mkdir -p /var/www/html/cloudera-repos/cm6

Możemy użyć narzędzia wget do pobrania pakietów przez http. Zainstaluj więc wget, używając poniższego polecenia.

sudo yum -y install wget

Następnie pobierz plik tar Cloudera Manager za pomocą następującego polecenia wget.

wget https://archive.cloudera.com/cm6/6.3.1/repo-as-tarball/cm6.3.1-redhat7.tar.gz

Wyodrębnij plik tar do /var/www/html/cloudera-repos/cm6, już uczyniliśmy master1 jako serwer WWW, instalując http i testowaliśmy w przeglądarce.

sudo tar xvfz cm6.3.1-redhat7.tar.gz -C /var/www/html/cloudera-repos/cm6 --strip-components=1

Teraz sprawdź, czy wszystkie pliki RPM Cloudera znajdują się w katalogu /var/www/html/cloudera-repos/cm6/RPMS/x86_64.

cd /var/www/html/cloudera-repos/cm6
ll

Utwórz pliki /etc/yum.repos.d/cloudera-manager.repo na wszystkich serwerach w hostach klastra z następującą zawartością, tutaj master1 (65.0.101.148) to serwer WWW.

[cloudera-repo]
name=cloudera-manager
baseurl=http:///cloudera-repos/cm6/
enabled=1
gpgcheck=0

Po dodaniu repozytorium uruchom poniższe polecenie, aby wyświetlić włączone repozytoria.

yum repolist

Uruchom poniższe polecenie, aby wyświetlić wszystkie dostępne pakiety związane z Cloudera w repozytorium.

yum list available | grep cloudera*

Zainstaluj cloudera-manager-server, cloudera-manager-agent, cloudera-manager-daemons cloudera-manager-server-db-2.

sudo yum install cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server cloudera-manager-server-db-2

Uruchom poniższe polecenie, aby wyświetlić wszystkie zainstalowane pakiety Cloudera.

yum list installed | grep cloudera*

Uruchom poniższe polecenie, aby uruchomić cloudera-scm-server-db, która jest podstawową bazą danych do przechowywania metadanych Cloudera Manager i innych usług.

Domyślnie Cloudera udostępnia postgre-sql, który jest osadzony w Menedżerze Cloudera. Instalujemy wersję osadzoną, w zewnętrznej bazie danych czasu rzeczywistego, z której można korzystać. Może to być Oracle, MySQL lub PostgreSQL.

sudo systemctl start cloudera-scm-server-db

Uruchom poniższe polecenie, aby sprawdzić status bazy danych.

sudo systemctl status cloudera-scm-server-db

Skonfiguruj db.properties dla serwera Cloudera Manager.

vi /etc/cloudera-scm-server/db.properties

Skonfiguruj poniższą wartość jako EMBEDDED, aby Cloudera Manager korzystał z Osadzonej bazy danych.

com.cloudera.cmf.db.setupType=EMBEDDED

Uruchom poniższe polecenie, aby uruchomić serwer Cloudera Manager.

sudo systemctl start cloudera-scm-server

Uruchom poniższe polecenie, aby sprawdzić status serwera Cloudera Manager.

sudo systemctl status cloudera-scm-server

Uruchom poniższe polecenie, aby uruchomić i sprawdzić status agenta Cloudera Manager.

sudo systemctl start cloudera-scm-agent
sudo systemctl status cloudera-scm-agent

Po pomyślnym uruchomieniu Cloudera Manager Server możesz wyświetlić WebUI (stronę logowania) w przeglądarce, używając adresu IP i numeru portu 7180, który jest numerem portu Menedżer Cloudera.

https://65.0.101.148:7180

Streszczenie

W tym artykule widzieliśmy krok po kroku proces instalacji Cloudera Manager na CentOS 7. CDH i inne instalacje serwisowe omówimy w następnym artykule.