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.