Big Data Passion

Big Data Passion

Strona tworzona przez pasjonatów i praktyków Big Data

Instalacja dystrybucji Hortonworks Data Platform za pomocą Apache Ambari

Instalacja HDP 2.6 za pomocą Ambari 2.5 na systemie Red Hat 7.5 lub CentOS 7.5

Radosław Szmit

Instrukcja instalacji dystrybucji Hortonworks Data Platform HDP-2.6 na maszynach z systemem Red Hat 7 lub CentOS 7.

Do instalacji zostanie użyte:

  • HDP-2.6.3.0
  • Apache Ambari w wersji 2.5.1.0.
  • CentOS 7.5.1804 (Minimal ISO)

Instalacja może być przeprowadzona tylko na jednej maszynie oraz w klastrze. W przypadku jednej maszyny należy w każdym miejscu konfiguracji wskazać jeden i ten sam host. Wszystko usługi, zarówno typu master jak i slave, będą zainstalowane na tym jednym komputerze.

W przypadku systemów produkcyjnych jedyną zalecaną opcją jest instalacja w klastrze kilku maszyn. Jedną maszynę możemy wykorzystywać do celów testowych i developerskich.

Przygotowanie maszyn

Taką instalację możemy przeprowadzić w dowolnym środowisku, np. z użyciem VirtualBoxa lub chmury AWS

Klaster ssh

Jeśli chcemy wykonywać wybrane polecenia jednocześnie na wszystkich maszynach możemy użyć polecenia cssh.

cssh root@hdp1 root@hdp2 root@hdp3

Jeśli wolimy klasyczne ssh, logujemy się na każdą maszynę oddzielnie:

ssh root@hdp1

UWAGA: Wszystkie dalsze polecenia wykonujemy zalogowani jako użytkownik root

Dostęp do internetu

Żeby instalować dodatkowe pakiety musimy mieć dostęp do internetu. Jeśli nie jest on dostępny, można spróbować włączyć DHCP.

Aby włączyć ręcznie DHCP należy wykonać:

dhclient -v

W celu skonfigurowania tego na stałe warto zmienić wartość (ONBOOT=yes) w pliku /etc/sysconfig/network-scripts/ifcfg-eth0

yum install -y vim
vim /etc/sysconfig/network-scripts/ifcfg-enp0s3

Włączamy logowanie root’a po haśle

Jeśli chcemy umożliwić logowanie użytkownika root po haśle ustawiamy parametr (PermitRootLogin yes) w pliku /etc/ssh/sshd_config

vim /etc/ssh/sshd_config

(UWAGA nigdy tego nie róbmy na produkcyjnych serwerach, NIGDY!)

Logowanie po SSH

Jeśli korzystamy z systemów Linux/Mac wygodnym rozwiązaniem może okazać się konfiguracja dostępu z swojego komputer i swojej konsoli. Żeby nie musieć podawać przy logowaniu ciągle hasła, warto wrzucić na maszynę wirtualną swój klucz publiczny by logować się bez hasła.

ssh-copy-id root@localhost -p 2222
ssh root@localhost -p 2222

Aktualizacja systemu

Żeby pracować na najnowszej wersji systemu należy go zaktualizować

yum -y update
yum -y upgrade

Instalacja epel release

CentOS:

yum install -y epel-release

Red Hat:

cd /tmp
yum install -y wget
wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum install -y epel-release-latest-7.noarch.rpm
yum repolist

Instalacja kolejnych przydatnych narzędzi

yum -y install wget vim htop ntp openssh-server openssh-clients nano bash-completion tree mc byobu ncdu

Zmieniamy hostname (opcjonalnie)

Uwaga, ustawiamy nowe wpisy hostname tylko i wyłącznie wtedy gdy chcemy je zmienić na własne. W wielu przypadkach możemy zostawić obecne hosty o ile są jakieś dostępne.

Na każdej z maszyn ustawiamy inny hostname, na przykład:

hostnamectl set-hostname hdp1.hortonworks.com --static
hostnamectl set-hostname hdp2.hortonworks.com --static
hostnamectl set-hostname hdp3.hortonworks.com --static

jeśli mamy jedną maszynę możemy ustawić:

hostnamectl set-hostname sandbox.hortonworks.com

Status możemy sprawdzić

hostnamectl status
hostname
hostname -f

Polecenie hostname i hostname -f powinny zwracać tą samą wartość.

Konfigurujemy hostów

Poniższe ustawienie jest nam niezbędne jeśli ustawiliśmy własne wpisy hostname (punkt wyżej) oraz nie mamy żadnego systemu DNS który mógłby informować nasze maszyny jaki hostname odpowiada jakiemu adresowi ip.

Żeby maszyny się “widziały” musimy każdej ustawić odpowiedni hostname:

192.168.172.201 hdp1 hdp1.hortonworks.com
192.168.172.202 hdp2 hdp2.hortonworks.com
192.168.172.203 hdp3 hdp3.hortonworks.com

Oczywiście lista zależy od liczby maszyn (w tym przypadku 3) oraz adresach ip które można sprawdzić za pomocą polecenia “ip a”. Trzeba także pamiętać że “swój” hostname dodaliśmy w korku poprzednim, więc musimy go pominąć.

Dla jednego serwera możemy użyć localhost/127.0.0.1:

127.0.0.1   sandbox sandbox.hortonworks.com
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

Konfigurujemy logowanie SSH bez hasła

Hadoop do działania wymaga by użytkownik systemowy mógł logować się do innych maszyn bez hasła za pomocą infrastruktury klucza prywatnego i publicznego, dlatego wykonujemy poniższe polecenia.

Na każdej maszynie generujemy zestaw kluczy:

ssh-keygen

Na maszynie hdp1 wyświetlamy sobie klucz publiczny:

cat .ssh/id_rsa.pub

Pobrany klucz maszyny hdp1 wklejamy na każdej maszynie (także hdp1) do pliku:

vim .ssh/authorized_keys

Jeśli wszystko poszło jak trzeba z maszyny hdp1 możemy teraz zalogować się po SSH do każdej innej maszyny:

ssh hdp3

Jeśli instalujemy to na jednej maszynie wystarczy wykonać:

ssh-keygen
ssh-copy-id sandbox.hortonworks.com
ssh sandbox.hortonworks.com

Wyłączamy selinux

Edytujemy plik /etc/sysconfig/selinux ustawiając SELINUX na disabled.

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

setenforce 0

sestatus

Wyłączamy Firewall’a

systemctl disable firewalld
systemctl stop firewalld
systemctl status firewalld

systemctl disable firewalld.service
systemctl stop firewalld.service
systemctl status firewalld.service

Włączamy serwer czasu NTP

yum install -y ntp

systemctl disable chrony.service

systemctl enable ntpd
systemctl start ntpd
systemctl status ntpd

systemctl enable ntpd.service
systemctl is-enabled ntpd.service
systemctl start ntpd.service
systemctl status ntpd.service

Umask

umask 022
echo umask 022 >> ~/.bash_profile
echo umask 022 >> /etc/profile

Restart maszyn

Teraz warto wykonać restart wszystkich maszyn poleceniem reboot

Instalacja Apache Ambari

UWAGA: Od teraz wszystkie operacje wykonujemy tylko na maszynie hdp1

wget -nv http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.6.1.3/ambari.repo -O /etc/yum.repos.d/ambari.repo

wget -nv http://public-repo-1.hortonworks.com/HDP/centos7/2.x/updates/2.6.4.0/hdp.repo -O /etc/yum.repos.d/hdp.repo

yum repolist
yum update

Instalujemy Ambari

yum install ambari-server -y

Konfigurujemy Ambari

(W każdym pytaniu wybieramy odpowiedź domyślną klikając klawisz Enter za każdrym razem)

ambari-server setup

W przypadku ambari-server setup upewniamy się, że nie ma żadnych ostrzeżeń, zaś na wszystkie pytania odpowiadamy wartościami domyślnymi klikając enter:

[root@hdp1 ~]# ambari-server setup
Using python  /usr/bin/python
Setup ambari-server
Checking SELinux...
SELinux status is 'disabled'
Customize user account for ambari-server daemon [y/n] (n)? 
Adjusting ambari-server permissions and ownership...
Checking firewall status...
Checking JDK...
[1] Oracle JDK 1.8 + Java Cryptography Extension (JCE) Policy Files 8
[2] Oracle JDK 1.7 + Java Cryptography Extension (JCE) Policy Files 7
[3] Custom JDK
==============================================================================
Enter choice (1): 
To download the Oracle JDK and the Java Cryptography Extension (JCE) Policy Files you must accept the license terms found at http://www.oracle.com/technetwork/java/javase/terms/license/index.html and not accepting will cancel the Ambari Server setup and you must install the JDK and JCE files manually.
Do you accept the Oracle Binary Code License Agreement [y/n] (y)? 
Downloading JDK from http://public-repo-1.hortonworks.com/ARTIFACTS/jdk-8u112-linux-x64.tar.gz to /var/lib/ambari-server/resources/jdk-8u112-linux-x64.tar.gz
jdk-8u112-linux-x64.tar.gz... 100% (174.7 MB of 174.7 MB)
Successfully downloaded JDK distribution to /var/lib/ambari-server/resources/jdk-8u112-linux-x64.tar.gz
Installing JDK to /usr/jdk64/
Successfully installed JDK to /usr/jdk64/
Downloading JCE Policy archive from http://public-repo-1.hortonworks.com/ARTIFACTS/jce_policy-8.zip to /var/lib/ambari-server/resources/jce_policy-8.zip

Successfully downloaded JCE Policy archive to /var/lib/ambari-server/resources/jce_policy-8.zip
Installing JCE policy...
Completing setup...
Configuring database...
Enter advanced database configuration [y/n] (n)? 
Configuring database...
Default properties detected. Using built-in database.
Configuring ambari database...
Checking PostgreSQL...
Running initdb: This may take up to a minute.
Initializing database ... OK


About to start PostgreSQL
Configuring local database...
Configuring PostgreSQL...
Restarting PostgreSQL
Creating schema and user...
done.
Creating tables...
done.
Extracting system views...
ambari-admin-2.5.0.3.7.jar
...........
Adjusting ambari-server permissions and ownership...
Ambari Server 'setup' completed successfully.

Uruchamiamy Ambari

ambari-server start

Konfiguracja klastra HDP

Następnie wchodzimy na adres: http://hdp1:8080 (lub inny wybrany hostname) i całą instalację kontynuujemy w trybie graficznym. Logujemy się jako admin / admin.

Następnie klikamy przycisk Launch Install Wizard

Ustawiamy nazwę naszego klastra

Wybieramy wersję dystrybucji którą chcemy zainstalować

W kolejnym ekranie w polu Target Hosts wskazujemy pełne adresy wybranych maszyn na których chcemy postawić dystrybucję

hdp1.hortonworks.com
hdp2.hortonworks.com
hdp3.hortonworks.com

lub dla jednej maszyny:

sandbox.hortonworks.com

oraz wklejamy zawartość pliku /root/.ssh/id_rsa maszyny na której zainstalowaliśmy Ambari

Po kliknięciu Register and Confirm Ambari przygotowuje nasze maszyny do instalacji

Po zakończonym procesie powinniśmy dostać informację o udanym przygotowaniu maszyn

Jeśli jednak mamy informację o ostrzeżeniach, należy przejrzeć ich listę i rozwiązać problemy

Następnie wybieramy narzędzia które chcemy zainstalować (ilość i rodzaj według uznania, np. HDFS, MapReduce2, Tez, Hive, Pig, HBase, Oozie, Flume, Ambari Metrics)

Wskazujemy na których maszynach mają być zainstalowane usługi zarządzające (Masters) (można zostawić na początek proponowane rozmieszczenie)

oraz usługi robocze (Slaves) (wybieramy wszystkie 3 maszyny dla każdej z usług)

Konfigurujemy nasze serwisy, pola wymagane są na czerwono (najczęściej konieczność ustawienia hasła do bazy danych), pozostałe ustawienia na ten moment możemy pozostawić w ich wartościach domyślnych

Akceptujemy ostrzeżenia i dostajemy podsumowanie instalacji

Na koniec Ambari zaczyna instalować wszystkie usługi zgodnie z naszymi wytycznymi

Po zakończonej instalacji możemy korzystać już w pełni wdrożonego klastra.

Gdyby w trakcie instalacji wystąpiły jakieś błędy podczas uruchamiania usług, możemy spróbować zatrzymać wszystkie serwisy a następnie ponownie je włączyć. W tym celu w lewym pasku serwisów w menu Actions wybieramy Stop All a następnie Start All.

Legenda

comments powered by Disqus

Ostatnie wpisy

Zobacz więcej

Kategorie

About