Clădirea Clusterului Hadoop este un proces pas cu pas în care procesul începe de la achiziționarea serverelor necesare, montarea în rack, cablare etc. și plasarea în Datacentre. Apoi, trebuie să instalăm sistemul de operare, se poate face folosind kickstart în mediul în timp real, dacă dimensiunea clusterului este mare. După instalarea sistemului de operare, trebuie să pregătim serverul pentru instalarea Hadoop și trebuie să pregătim serverele în conformitate cu politicile de securitate ale organizației.
În acest articol, vom trece prin cerințele preliminare la nivel de sistem de operare recomandate de Cloudera. De asemenea, am evidențiat câteva sfaturi importante pentru întărirea securității în conformitate cu Benchmark CSI pentru servere de producție. Aceste întăriri de securitate pot fi diferite în funcție de cerințe.
Aici vom discuta despre cerințele prealabile la nivel de sistem de operare recomandate de Cloudera.
În mod implicit, Pagină imensă transparentă (THP) este activat pe mașinile Linux cu care interacționează slab Hadoop încărcările de lucru și degradează performanța generală a Clusterului. Deci, trebuie să dezactivăm acest lucru pentru a obține performanțe optime folosind următoarele comanda ecou.
# echo never> / sys / kernel / mm / transparent_hugepage / enabled # echo never> / sys / kernel / mm / transparent_hugepage / defrag
În mod implicit, vm.swappiness valoarea este 30 sau 60 pentru majoritatea mașinilor Linux.
# sysctl vm.swappiness.
Având o valoare mai mare de swappiness nu este recomandat pentru Hadoop pentru că poate provoca pauze lungi de colectare a gunoiului. Și, cu valoarea swappiness mai mare, datele pot fi memorate în cache pentru a schimba memoria, chiar dacă avem suficientă memorie. Scăderea valorii swappiness poate face ca memoria fizică să conțină mai multe pagini de memorie.
# sysctl vm.swappiness = 1.
Sau puteți deschide fișierul /etc/sysctl.conf si adauga „vm.swappiness = 1”
la sfarsit.
vm.swappiness = 1.
Fiecare server Hadoop va avea propria responsabilitate cu mai multe servicii (demoni) alergând pe asta. Toate serverele vor comunica între ele într-un mod frecvent în diferite scopuri.
De exemplu, Datanode va trimite o bătăi de inimă lui Namenode la fiecare 3 secunde, astfel încât Namenode se va asigura că Datanode este in viata.
Dacă toată comunicarea se întâmplă între demoni pe diferite servere prin firewall, va fi o povară suplimentară pentru Hadoop. Deci, este cea mai bună practică să dezactivați paravanul de protecție pe serverele individuale din Cluster.
# iptables-save> ~ / firewall.rules. # systemctl stop firewalld. # systemctl dezactivează firewall-ul.
Dacă păstrăm SELinux activat, va provoca probleme în timpul instalării Hadoop. La fel de Hadoop este un cluster de calcul, Manager Cloudera va ajunge la toate serverele din cluster pentru a instala Hadoop și serviciile sale și va crea directoare de servicii necesare ori de câte ori este necesar.
Dacă SELinux este activat, nu va permite Cloudera Manager să conducă instalarea așa cum dorește. Deci, activarea SELinux va fi un obstacol în calea Hadoop și va cauza probleme de performanță.
Puteți verifica starea SELinux folosind comanda de mai jos.
# sestatus.
Acum, deschideți fișierul /etc/selinux/config fișier și dezactivați SELINUX așa cum se arată.
SELinux = dezactivat.
După dezactivarea SELinux, trebuie să reporniți sistemul pentru al activa.
# reporniți.
În Clusterul Hadoop, toate serverele ar trebui să fie Timp sincronizat pentru a evita erorile de compensare a ceasului. RHEL / CentOS 7 are chronyd încorporat pentru sincronizarea rețelei ceas / oră, dar Cloudera recomandă utilizarea NTP.
Trebuie să instalăm NTP și configurați-l. Odată instalat, opriți „chronyd‘Și dezactivează. Pentru că, dacă un server are ambele ntpd și chronyd rulează, Cloudera Manager va lua în considerare chronyd pentru sincronizarea timpului, atunci va arunca o eroare chiar dacă avem timp sincronizat prin ntp.
# yum -y install ntp. # systemctl start ntpd. # systemctl activează ntpd. # systemctl status ntpd.
După cum am menționat mai sus, nu avem nevoie chronyd activ pe măsură ce îl folosim ntpd. Verificați starea chronyd, dacă rulează oprește și dezactivează. În mod implicit, chronyd este oprit decât dacă îl pornim după instalarea sistemului de operare, trebuie doar să dezactivăm pentru o parte mai sigură.
# systemctl status chronyd. # systemctl dezactivează chronyd.
Trebuie să setăm numele gazdei cu FQDN (Numele de domeniu complet calificat). Fiecare server ar trebui să aibă un nume Canonical unic. Pentru a rezolva numele gazdei, fie trebuie să configurăm DNS, fie /etc/hosts. Aici, vom configura /etc/hosts.
Trebuie introduse adresa IP și FQDN pentru fiecare server /etc/hosts dintre toate serverele. Doar atunci Manager Cloudera poate comunica toate serverele cu numele său de gazdă.
# hostnamectl set-hostname master1.tecmint.com.
Apoi, configurați /etc/hosts fişier. De exemplu: - Dacă avem 5 noduri cluster cu 2 master și 3 lucrători, putem configura /etc/hosts ca mai jos.
La fel de Hadoop este făcut din Java, toate gazdele ar trebui să aibă Java instalat cu versiunea corespunzătoare. Aici vom avea OpenJDK. În mod implicit, Manager Cloudera va instala OracleJDK dar, Cloudera recomandă să aveți OpenJDK.
# yum -y install java-1.8.0-openjdk-devel. # java -versiune.
În această secțiune, vom merge la securitatea mediului Harden Hadoop ...
Montare automată „autof„Permite montarea automată a dispozitivelor fizice precum USB, CD / DVD. Utilizatorul cu acces fizic își poate atașa USB-ul sau orice mediu de stocare pentru a accesa datele inserate. Utilizați comenzile de mai jos pentru a verifica dacă este dezactivată sau nu, dacă nu, dezactivați-o.
# systemctl dezactivează autofs. # systemctl este activat autofs.
grub fișierul de configurare conține informații critice despre setările de pornire și acreditări pentru a debloca opțiunile de pornire. Fișierul de configurare grub „grub.cfg' situat la /boot/grub2 și a fost legat ca /etc/grub2.conf și asigură grub.cfg este deținut de utilizatorul root.
# cd / boot / grub2.
Folosiți comanda de mai jos pentru a verifica Uid și Gid sunt ambele 0 / rădăcină și 'grup'Sau'alte'Nu ar trebui să aibă nicio permisiune.
# stat /boot/grub2/grub.cfg.
Utilizați comanda de mai jos pentru a elimina permisiunile din alte grupuri.
# chmod og-rwx /boot/grub2/grub.cfg.
Această setare evită alte reporniri neautorizate ale serverului. adică necesită o parolă pentru a reporni serverul. Dacă nu este setat, utilizatorii neautorizați pot porni serverul și pot face modificări la partițiile de pornire.
Utilizați comanda de mai jos pentru a seta parola.
# grub2-mkpasswd-pbkdf2.
Adăugați parola creată mai sus în /etc/grub.d/01_users fişier.
Apoi, re-generați fișierul de configurare grub.
# grub2-mkconfig> /boot/grub2/grub.cfg.
Prelink este un program software care poate crește vulnerabilitatea pe un server dacă utilizatorii rău intenționați pot compromite bibliotecile obișnuite, cum ar fi libc.
Utilizați comanda de mai jos pentru a o elimina.
# yum eliminați prelink.
Ar trebui să luăm în considerare dezactivarea unor servicii / protocoale pentru a evita potențialele atacuri.
# systemctl dezactivează
Am trecut prin pregătirea serverului care constă din Cloudera Hadoop Cerințe preliminare și o oarecare întărire a securității. Cerințele la nivel de sistem de operare definite de Cloudera sunt obligatorii pentru instalarea fără probleme a Hadoop. De obicei, un script de întărire va fi pregătit cu utilizarea fișierului Benchmark CSI și utilizate pentru a verifica și remedia neconformitatea în timp real.
Într-o instalare minimă de CentOS / RHEL 7, sunt instalate doar funcționalități / software de bază, astfel se vor evita riscurile și vulnerabilitățile nedorite. Chiar dacă este o instalare minimă, se vor face mai multe iterații de audit de securitate instalarea Hadoop, chiar și după construirea clusterului, înainte de a muta clusterul în Funcționare / producție.