{"id":15422,"date":"2019-03-03T15:22:41","date_gmt":"2019-03-03T14:22:41","guid":{"rendered":"https:\/\/scriptfactory.pl\/blog\/?p=15422"},"modified":"2022-02-17T10:08:09","modified_gmt":"2022-02-17T09:08:09","slug":"instalacja-apache-hadoop-w-chmurze","status":"publish","type":"post","link":"https:\/\/scriptfactory.pl\/blog\/apache-hadoop\/instalacja-apache-hadoop-w-chmurze\/","title":{"rendered":"Instalacja Apache Hadoop w Chmurze"},"content":{"rendered":"\n<h2 id=\"wprowadzenie\">Wprowadzenie:<\/h2>\n\n\n\n<p><a href=\"https:\/\/hadoop.apache.org\/\">Apache Hadoop<\/a> jest otwart\u0105 platform\u0105 programistyczn\u0105 stworzon\u0105 w j\u0119zyku Java. Platforma przeznaczona jest do przetwarzania du\u017cych ilo\u015bci danych w rozproszonym \u015brodowisku, skalowalnym i rozszerzalnym horyzontalnie.&nbsp; Hadoop sk\u0142ada si\u0119 z wielu komponent\u00f3w, kt\u00f3rych podstaw\u0105 jest <a href=\"https:\/\/hortonworks.com\/apache\/hdfs\/\">HDFS<\/a> (Hadoop Distributed File System), Hadoop Common (biblioteki u\u017cywane przez modu\u0142y), <a href=\"https:\/\/hortonworks.com\/apache\/yarn\/\">YARN<\/a> (Yet Another Resource Negotiator), <a href=\"https:\/\/hortonworks.com\/apache\/mapreduce\/\">MapReduce<\/a>.<\/p>\n\n\n\n<p>W ci\u0105gu wielu lat obecno\u015bci na rynku platforma zosta\u0142a rozszerzona o nowe funkcjonalno\u015bci, obecnie bardzo szeroko u\u017cywane, takie jak <a href=\"https:\/\/kafka.apache.org\/\">Apache Kafka<\/a>, <a href=\"https:\/\/hive.apache.org\/\">Apache Hive<\/a>, <a href=\"https:\/\/spark.apache.org\/\">Apache Spark<\/a>, <a href=\"https:\/\/flume.apache.org\/\">Apache Flume<\/a>, <a href=\"https:\/\/flink.apache.org\/\">Apache Flink<\/a>. W zwi\u0105zku ze zwi\u0119kszaj\u0105cym si\u0119 zapotrzebowaniem na skalowalne platformy. Platformy , kt\u00f3ra pozwala przetwarza\u0107 znaczne zbiory danych. Powsta\u0142y gotowe pakiety instalacyjne zawieraj\u0105ce kluczowe funkcjonalno\u015bci, dostarczaj\u0105 je takie firmy, jak <a href=\"https:\/\/hortonworks.com\/\">Hortonworks<\/a>, <a href=\"https:\/\/www.cloudera.com\/\">Cloudera<\/a>, <a href=\"https:\/\/mapr.com\/\">MapR<\/a>. W artykule skupimy si\u0119 na edycji Hortonworks. Poka\u017cemy proces instalacji i konfiguracji klastra sk\u0142adaj\u0105cego sie z 3 nod\u00f3w (serwer\u00f3w, w\u0119z\u0142\u00f3w) oraz jednego noda steruj\u0105cego.<\/p>\n\n\n\n<p>W zwi\u0105zku z tym, \u017ce platforma zostanie skonfigurowana w chmurze, pierwszym krokiem b\u0119dzie podj\u0119cie decyzji, kt\u00f3rej z nich u\u017cy\u0107. Mamy do dyspozycji du\u017cych \u201egraczy\u201d, takich jak <a href=\"https:\/\/aws.amazon.com\">AWS<\/a>, <a href=\"https:\/\/scriptfactory.pl\/blog\/category\/azure\/\">Azure<\/a>, <a href=\"https:\/\/cloud.google.com\/\">Google<\/a> oraz mniejsze \u015brodowiska, takie jak lokalni dostawcy. My zdecydowali\u015bmy si\u0119 na co\u015b po\u015bredniego, mianowicie <a href=\"https:\/\/m.do.co\/c\/41b0e67f5dc4\">DigitalOcean<\/a>.<\/p>\n\n\n\n<p>DigitalOcean oferuje przyjemne, proste i cenowo przyst\u0119pne \u015brodowisko konfiguracji maszyn wirtualnych. Zdecydowali\u015bmy si\u0119 na nast\u0119puj\u0105c\u0105 konfiguracj\u0119:<\/p>\n\n\n\n<ul><li>3 maszyny z <a href=\"http:\/\/releases.ubuntu.com\/16.04\/\">Ubuntu<\/a> 16.04 x64, 16GB Ram, 6 vCPU, 320GB za cen\u0119 80$, przeznaczone na nody (w\u0119z\u0142y klastra)<\/li><li>1 maszyna z Ubuntu 16.04 x64, 4GB Ram, 2 vCPU, 80GB za cen\u0119 20$, przeznaczona na komponent steruj\u0105cy \u015brodowiskiem Hadoop<\/li><\/ul>\n\n\n\n<p>Podsumowuj\u0105c, klaster Hadoop b\u0119dzie nas kosztowa\u0142 &nbsp;260 $ miesi\u0119cznie, co mo\u017cna uzna\u0107 za bardzo sensown\u0105 cen\u0119, bior\u0105c pod uwag\u0119, \u017ce zyskujemy spor\u0105 moc obliczeniow\u0105 oraz mo\u017cliwo\u015b\u0107 przechowywania znacznych ilo\u015bci danych w ramach us\u0142ugi HDFS.<\/p>\n\n\n\n<h2 id=\"przygotowanie-srodowiska\">Przygotowanie \u015brodowiska:<\/h2>\n\n\n\n<p>W pierwszej kolejno\u015bci nale\u017cy utworzy\u0107 maszyny wirtualne, kt\u00f3re w DigitalOcean nazywaj\u0105 si\u0119 \u201edroplets\u201d. Logujemy si\u0119 wi\u0119c do panelu sterowania i w prawym g\u00f3rnym rogu wybieramy <strong>Create \u2013&gt; Droplets<\/strong>, w <strong>Distributions <\/strong>wybieramy Ubuntu 16.04 x64 (na dzie\u0144 2019.03.03 edycja Hortonworks zawiera\u0142a b\u0142\u0119dy w repozytorium, dlatego nie zdecydowali\u015bmy si\u0119 na wersj\u0119 Ubuntu 18.04.2 x64). Wybieramy parametry serwer\u00f3w, kt\u00f3re nas interesuj\u0105, lokalizacj\u0119 <strong>datacenter region, <\/strong>w naszym przypadku <strong>Frankfurt, <\/strong>i wybieramy <strong>Create.<\/strong><\/p>\n\n\n\n<p>Przyk\u0142adowa konfiguracja poni\u017cej:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" width=\"300\" height=\"146\" src=\"https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/DigitalOcean_CreateDroplet_1-300x146.png\" alt=\"\" class=\"wp-image-15445\" srcset=\"https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/DigitalOcean_CreateDroplet_1-300x146.png 300w, https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/DigitalOcean_CreateDroplet_1-768x375.png 768w, https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/DigitalOcean_CreateDroplet_1-1024x500.png 1024w, https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/DigitalOcean_CreateDroplet_1.png 1510w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/figure><\/div>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" width=\"300\" height=\"92\" src=\"https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/DigitalOcean_CreateDroplet_2-300x92.png\" alt=\"\" class=\"wp-image-15446\" srcset=\"https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/DigitalOcean_CreateDroplet_2-300x92.png 300w, https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/DigitalOcean_CreateDroplet_2-768x234.png 768w, https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/DigitalOcean_CreateDroplet_2-1024x312.png 1024w, https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/DigitalOcean_CreateDroplet_2.png 1508w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/figure><\/div>\n\n\n\n<p class=\"has-text-align-center\"><\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" width=\"300\" height=\"82\" src=\"https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/DigitalOcean_CreateDroplet_3-300x82.png\" alt=\"\" class=\"wp-image-15447\" srcset=\"https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/DigitalOcean_CreateDroplet_3-300x82.png 300w, https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/DigitalOcean_CreateDroplet_3-768x211.png 768w, https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/DigitalOcean_CreateDroplet_3-1024x281.png 1024w, https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/DigitalOcean_CreateDroplet_3.png 1506w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/figure><\/div>\n\n\n\n<p>W panelu sterowania powini\u015bmy zobaczy\u0107 podobny obraz jak poni\u017cej:<\/p>\n\n\n\n<h3 id=\"dodatkowe-ustawienia\">Dodatkowe ustawienia:<\/h3>\n\n\n\n<p>Aby instalacja edycji Hortonworks przebieg\u0142a bez problem\u00f3w nale\u017cy skonfigurowa\u0107 serwery w taki spos\u00f3b, aby mia\u0142y pe\u0142n\u0105 nazw\u0119 domenow\u0105 FDQN, np. myhost.domain.com. W tym celu nale\u017cy zakupi\u0107 domen\u0119 w dowolnym serwisie, np. <a href=\"https:\/\/www.aftermarket.pl\">Aftermarket.pl<\/a> i przekierowa\u0107 DNS na serwery DigitalOcean \u2013 ns1.digitalocean.com, ns2.digitalocean.com, ns3.digitalocean.com. Po przekierowaniu ruchu z domeny do serwisu DigitalOcean nale\u017cy ustawi\u0107 w zak\u0142adce <strong>Networking\u2013&gt;Domains\u2013&gt;[nazwa domeny] <\/strong>rekordy DNS <strong>A, <\/strong>gdzie podajemy <strong>Hostname <\/strong>i wybieramy IP dropletu. Od tej chwili ruch zewn\u0119trzny dla nazwy, np. node1.domena.com, b\u0119dzie kierowany na node1 dropletu w serwisie DigitalOcean.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" width=\"300\" height=\"87\" src=\"https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/DigitalOcean_DNS-300x87.png\" alt=\"\" class=\"wp-image-15443\" srcset=\"https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/DigitalOcean_DNS-300x87.png 300w, https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/DigitalOcean_DNS-768x222.png 768w, https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/DigitalOcean_DNS-1024x296.png 1024w, https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/DigitalOcean_DNS.png 1482w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/figure><\/div>\n\n\n\n<p>Jak wida\u0107 z powy\u017cszego obrazu nasze maszyny nazywaj\u0105 si\u0119 odpowiednio:<\/p>\n\n\n\n<ul><li>nody hadoop: <strong>n1\u2013demo.hadoop\u2013sf.pl, n2\u2013demo.hadoop\u2013sf.pl, n3\u2013demo.hadoop\u2013sf.pl<\/strong><\/li><li>node steruj\u0105cy <strong>m\u2013demo.hadoop\u2013sf.pl<\/strong><\/li><\/ul>\n\n\n\n<p>Nale\u017cy si\u0119 teraz zalogowa\u0107 na utworzone droplety w celu:<\/p>\n\n\n\n<ul><li>zmiany has\u0142a dla u\u017cytkownika root (tymczasowe has\u0142o zostanie wys\u0142ane na maila wraz z adresem IP).  Has\u0142o mo\u017cna zmieni\u0107 po zalogowaniu si\u0119 do panelu administracyjnego DigitalOcean i wybraniu <strong>Access console<\/strong>, pierwsze logowanie wymaga zmiany has\u0142a tymczasowego z maila.<\/li><li>zmiany pliku <strong>\/etc\/hostname<\/strong> \u2013 ustawi\u0107 nazw\u0119 z rekord\u00f3w DNS dla odpowiedniego noda<\/li><\/ul>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" width=\"300\" height=\"78\" src=\"https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Console-Hostname-300x78.png\" alt=\"\" class=\"wp-image-15439\" srcset=\"https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Console-Hostname-300x78.png 300w, https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Console-Hostname.png 528w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/figure><\/div>\n\n\n\n<ul><li>zmiany pliku <strong>\/etc\/hosts<\/strong> \u2013 dodanie IP oraz nazw FDQN wszystkich droplet\u00f3w w klastrze, oczywi\u015bcie dla IP 127.0.0.1 nazwy na ka\u017cdym serwerze b\u0119d\u0105 inne, pozosta\u0142a cz\u0119\u015b\u0107 pozostaje jednak bez zmian.<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" width=\"300\" height=\"186\" src=\"https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Console-Hosts-300x186.png\" alt=\"\" class=\"wp-image-15440\" srcset=\"https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Console-Hosts-300x186.png 300w, https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Console-Hosts.png 637w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/figure>\n\n\n\n<p class=\"has-text-align-center\"><\/p>\n\n\n\n<p>Po wykonaniu powy\u017cszych operacji nale\u017cy zrobi\u0107 restart wszystkich droplet\u00f3w, na kt\u00f3rych zmieniono konfiguracj\u0119.<\/p>\n\n\n\n<p>Aby instalacja mog\u0142a przebiec automatycznie, droplety powinny m\u00f3c komunikowa\u0107 si\u0119 mi\u0119dzy sob\u0105 przez SSH, tak wi\u0119c na droplecie steruj\u0105cym klastrem nale\u017cy wygenerowa\u0107 klucz (lub dostarczy\u0107 go w inny spos\u00f3b) poprzez wykonanie komendy <strong>ssh\u2013keygen<\/strong>. Polecenie wygeneruje <strong>id_rsa.pub<\/strong> w lokalizacji <strong>\/root\/.ssh<\/strong>, plik nale\u017cy przenie\u015b\u0107 na wszystkie nody klastra do tej samej lokalizacji \u2013 mo\u017cna to zrobi\u0107 za pomoc\u0105 narz\u0119dzi, takich jak WinSCP. Ostatni krok przed przyst\u0105pieniem do instalacji to dodanie klucza publicznego do \/root\/.ssh\/autorized_key na wszystkich dropletach. W celu sprawdzenia poprawno\u015bci konfiguracji trzeba wykona\u0107 po\u0142\u0105czenie z noda steruj\u0105cego do pozostalych nod\u00f3w.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" width=\"300\" height=\"72\" src=\"https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Console-SSH-300x72.png\" alt=\"\" class=\"wp-image-15449\" srcset=\"https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Console-SSH-300x72.png 300w, https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Console-SSH-768x184.png 768w, https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Console-SSH.png 815w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/figure><\/div>\n\n\n\n<p class=\"has-text-align-center\"><\/p>\n\n\n\n<h2 id=\"krok-1\">Krok 1:<\/h2>\n\n\n\n<h5 id=\"instalacja-apache-ambari\">Instalacja Apache Ambari:<\/h5>\n\n\n\n<p>Czym jest <a href=\"https:\/\/ambari.apache.org\/\">Apache Ambari<\/a>? jest to serwis odpowiedzialny za monitorowanie klastra, pozwalaj\u0105cy modyfikowa\u0107 konfiguracj\u0119, dodawa\u0107 nowe nody z jednego centralnego punktu architektury. Ambari Agent sk\u0142ada si\u0119 z 2 komponent\u00f3w, s\u0105 to \u2013 Ambari Server, instalowany na nodzie steruj\u0105cym oraz Ambari Agent, instalowany na pozosta\u0142ych nodach.<\/p>\n\n\n\n<p>Aby zainstalowa\u0107 na Ubuntu 16.04 x64 Ambari Server\/Agent nale\u017cy wykona\u0107 na wszystkich nodach poni\u017csze polecenia:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">wget \u2013O \/etc\/apt\/sources.list.d\/ambari.list http:\/\/public\u2013repo\u20131.hortonworks.com\/ambari\/ubuntu16\/2.x\/updates\/2.7.3.0\/ambari.list\napt\u2013key adv \u2013\u2013recv\u2013keys \u2013\u2013keyserver keyserver.ubuntu.com B9733A7A07513CAD\napt\u2013get update\napt\u2013cache showpkg ambari\u2013server\napt\u2013cache showpkg ambari\u2013agent\napt\u2013cache showpkg ambari\u2013metrics\u2013assembly<\/code><\/pre>\n\n\n\n<p>Na serwerze steruj\u0105cym instalujemy Ambari Server, wykonuj\u0105c polecenia:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">apt\u2013get install ambari\u2013server\nambari\u2013server setup<\/code><\/pre>\n\n\n\n<p>Ostatnie polecenie uruchamia konfiguracj\u0119 serwera:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" width=\"300\" height=\"70\" src=\"https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Instalacja-Ambari-step1-300x70.png\" alt=\"\" class=\"wp-image-15453\" srcset=\"https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Instalacja-Ambari-step1-300x70.png 300w, https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Instalacja-Ambari-step1.png 648w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/figure><\/div>\n\n\n\n<p>Je\u017celi nie chcemy u\u017cywa\u0107 innych kont poza root na serwerze \u2013 wtedy powinni\u015bmy wybra\u0107 \u201en\u201d, w przeciwnym wypadku nale\u017cy stworzy\u0107 odpowiednie konta przed procesem instalacji.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" width=\"300\" height=\"69\" src=\"https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Instalacja-Ambari-step2-300x69.png\" alt=\"\" class=\"wp-image-15454\" srcset=\"https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Instalacja-Ambari-step2-300x69.png 300w, https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Instalacja-Ambari-step2.png 696w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/figure><\/div>\n\n\n\n<p>Jak wspomnieli\u015bmy Apache Hadoop bazuje na j\u0119zyku Java \u2013 razem z instalacj\u0105 nale\u017cy wi\u0119c zadba\u0107 o odpowiedni\u0105 wersj\u0119 JDK, domy\u015blnie jest to Oracle JDK 1.8, w tym miejscu mo\u017cna wskaza\u0107 r\u00f3wnie\u017c inn\u0105 wersj\u0119, wybieraj\u0105c \u201e2\u201d<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" width=\"300\" height=\"46\" src=\"https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Instalacja-Ambari-step3-300x46.png\" alt=\"\" class=\"wp-image-15455\" srcset=\"https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Instalacja-Ambari-step3-300x46.png 300w, https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Instalacja-Ambari-step3-768x119.png 768w, https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Instalacja-Ambari-step3.png 807w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/figure><\/div>\n\n\n\n<p>Nale\u017cy wyrazi\u0107 zgodn\u0119 na zapisy licencji Oracle \u2013 wybieramy \u201ey\u201d.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" width=\"300\" height=\"52\" src=\"https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Instalacja-Ambari-step4-300x52.png\" alt=\"\" class=\"wp-image-15456\" srcset=\"https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Instalacja-Ambari-step4-300x52.png 300w, https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Instalacja-Ambari-step4-768x134.png 768w, https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Instalacja-Ambari-step4.png 806w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/figure><\/div>\n\n\n\n<p>Trzeba r\u00f3wnie\u017c zaakceptowa\u0107 licencj\u0119 GPL \u2013 wybieramy \u201ey\u201d.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" width=\"300\" height=\"42\" src=\"https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Instalacja-Ambari-step5-300x42.png\" alt=\"\" class=\"wp-image-15458\" srcset=\"https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Instalacja-Ambari-step5-300x42.png 300w, https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Instalacja-Ambari-step5-768x108.png 768w, https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Instalacja-Ambari-step5.png 812w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/figure><\/div>\n\n\n\n<p>Apache Ambari mo\u017ce funkcjonowa\u0107 na r\u00f3\u017cnych bazach danych, domy\u015blnie jest to PostgreSQL na instacji localhost. Mo\u017cna wskaza\u0107 jednak inn\u0105 baz\u0119 i inn\u0105 lokalizacj\u0119 \u2013 wybieramy \u201en\u201d.<\/p>\n\n\n\n<p>Instalacja zako\u0144czona!<\/p>\n\n\n\n<h4 id=\"krok-2\">Krok 2:<\/h4>\n\n\n\n<p>Po konfiguracji uruchamiamy serwer<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">ambari\u2013server start<\/code><\/pre>\n\n\n\n<p>Na pozosta\u0142ych nodach wykonujemy polecenia<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">apt\u2013get install ambari\u2013agent\n<strong>ambari\u2013agent start<\/strong><\/code><\/pre>\n\n\n\n<p>Mamy ju\u017c zainstalowany g\u0142\u00f3wny komponent, pozwalaj\u0105cy nam na wszystkich nodach klastra zachowa\u0107 sp\u00f3jn\u0105 instalacj\u0119 i konfiguracj\u0119. Aby jednak odby\u0142a si\u0119 ona bez ingerencji, nale\u017cy zadba\u0107 jeszcze o dodatkowe komponenty, takie jak biblioteki JAR czy bazy danych. Podstawow\u0105 baz\u0105 danych, u\u017cywan\u0105 przez wi\u0119kszo\u015b\u0107 komponent\u00f3w Hadoop, jest <a href=\"https:\/\/www.mysql.com\/\">MySQL<\/a>.<\/p>\n\n\n\n<p>Instalujemy j\u0105 wi\u0119c na wszystkich nodach:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">sudo apt\u2013get install mysql\u2013server\nsystemctl status mysql<\/code><\/pre>\n\n\n\n<p>A na nodzie steruj\u0105cym instalujemy i konfigurujemy bibliotek\u0119 JAR dla MySQL<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">sudo apt\u2013get install libmysql\u2013java\nsudo ambari\u2013server setup \u2013\u2013jdbc\u2013db=mysql \u2013\u2013jdbc\u2013driver=\/usr\/share\/java\/mysql.jar<\/code><\/pre>\n\n\n\n<p>Aby dope\u0142ni\u0107 przygotowanie \u015brodowiska, musimy jeszcze zadba\u0107 o dwie rzeczy, pierwsz\u0105 z nich jest serwis NTP odpowiedzialny za synchronizacj\u0119 czas\u00f3w mi\u0119dzy serwerami \u2013 istotny komponent w przypadku rozproszonego \u015brodowiska, kt\u00f3rego nody regularnie komunikuj\u0105 si\u0119 mi\u0119dzy sob\u0105 po protokole TCP\/IP.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">apt\u2013get install ntp\nupdate\u2013rc.d ntp defaults\nservice ntp start<\/code><\/pre>\n\n\n\n<p>Ostatnia rzecz to mo\u017cliwo\u015b\u0107 komunikacji pomi\u0119dzy zainstalowanymi w przysz\u0142o\u015bci us\u0142ugami. Ka\u017cda us\u0142uga Hadoop komunikuje si\u0119 po 1 lub wielu portach. Na czas tej instalacji, aby unikn\u0105\u0107 listowania wszystkich port\u00f3w dla us\u0142ug, kt\u00f3re zainstalujemy. Firewall wy\u0142\u0105czony, aby zapewni\u0107 otwart\u0105 komunikacj\u0119 mi\u0119dzy nimi. Uwaga, w produkcyjnej instalacji nale\u017cy wylistowa\u0107 porty i zadecydowa\u0107 samemu. Na kt\u00f3rych z nich us\u0142ugi maj\u0105 dzia\u0142a\u0107, nie nale\u017cy pozostawia\u0107 nieaktywnych zabezpiecze\u0144).<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">sudo ufw disable\nsudo iptables \u2013X\nsudo iptables \u2013t nat \u2013F\nsudo iptables \u2013t nat \u2013X\nsudo iptables \u2013t mangle \u2013F\nsudo iptables \u2013t mangle \u2013X\nsudo iptables \u2013P INPUT ACCEPT\nsudo iptables \u2013P FORWARD ACCEPT\nsudo iptables \u2013P OUTPUT ACCEPT\n<\/code><\/pre>\n\n\n\n<h2 id=\"krok-3\"><span style=\"font-size: 1.2em; font-weight: 600;\">Krok 3:<\/span><\/h2>\n\n\n\n<p>Instalacja Apache Hadoop przy pomocy Apache Ambari:<\/p>\n\n\n\n<p>Aby zalogowa\u0107 si\u0119 do Apache Ambari, nale\u017cy wpisa\u0107 nazw\u0119 noda steruj\u0105cego (z zainstalowanym Apache Ambari Server) w przegl\u0105darce, serwer dzia\u0142a na porcie 8080<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">http:\/\/m\u2013demo.hadoop\u2013sf.pl:8080<\/code><\/pre>\n\n\n\n<p>U\u017cytkownik i has\u0142o domy\u015blne to: <strong>admin\/admin<\/strong><\/p>\n\n\n\n<p>Po zalogowaniu si\u0119 nale\u017cy uruchomi\u0107 Install Wizard<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" width=\"300\" height=\"116\" src=\"https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Install-Hadoop-step1-300x116.png\" alt=\"\" class=\"wp-image-15459\" srcset=\"https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Install-Hadoop-step1-300x116.png 300w, https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Install-Hadoop-step1-768x298.png 768w, https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Install-Hadoop-step1-1024x397.png 1024w, https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Install-Hadoop-step1.png 1488w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/figure><\/div>\n\n\n\n<p>Wybieramy nazw\u0119 naszego klastra<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" width=\"300\" height=\"132\" src=\"https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Install-Hadoop-step2-300x132.png\" alt=\"\" class=\"wp-image-15461\" srcset=\"https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Install-Hadoop-step2-300x132.png 300w, https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Install-Hadoop-step2.png 459w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/figure><\/div>\n\n\n\n<p>Na nast\u0119pnej stronie, po wybraniu <strong>Next, <\/strong>pojawi si\u0119 lista repozytori\u00f3w, z kt\u00f3rych b\u0119dziemy korzysta\u0107 podczas instalacji. Jest tak\u017ce mo\u017cliwo\u015b\u0107 wybrania edycji Hortonworks \u2013 wybieramy HDP 3.1 z <strong>Use Public Repository <\/strong><\/p>\n\n\n\n<p>Po wci\u015bnieciu <strong>Next <\/strong>mo\u017cemy wybra\u0107 nody wchodz\u0105ce w sk\u0142ad naszego klastra oraz wskaza\u0107 klucz publiczny. Przy pomocy kt\u00f3rego Apache Ambari b\u0119dzie \u0142\u0105czy\u0142 si\u0119 poprzez SSH do nod\u00f3w klastra z noda steruj\u0105cego.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" width=\"300\" height=\"235\" src=\"https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Install-Hadoop-step3-300x235.png\" alt=\"\" class=\"wp-image-15463\" srcset=\"https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Install-Hadoop-step3-300x235.png 300w, https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Install-Hadoop-step3-768x602.png 768w, https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Install-Hadoop-step3.png 1024w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/figure><\/div>\n\n\n\n<p>Na kolejnym ekranie wida\u0107 post\u0119p rejestracji Apache Ambari na nodach klastra. W przypadku wyst\u0105pienia problem\u00f3w z \u0142\u0105czno\u015bci\u0105 SSH lub otwarciem port\u00f3w na nodach otrzymamy komunikat oraz informacj\u0119 w logu na temat przyczyny b\u0142\u0119du.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" width=\"300\" height=\"95\" src=\"https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Install-Hadoop-step4-300x95.png\" alt=\"\" class=\"wp-image-15465\" srcset=\"https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Install-Hadoop-step4-300x95.png 300w, https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Install-Hadoop-step4-768x244.png 768w, https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Install-Hadoop-step4-1024x326.png 1024w, https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Install-Hadoop-step4.png 1528w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/figure><\/div>\n\n\n\n<p>Wybrali\u015bmy elementy, kt\u00f3re zostan\u0105 zainstalowane w ramach naszego klastra.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" width=\"300\" height=\"147\" src=\"https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Install-Hadoop-step5-300x147.png\" alt=\"\" class=\"wp-image-15466\" srcset=\"https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Install-Hadoop-step5-300x147.png 300w, https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Install-Hadoop-step5-768x377.png 768w, https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Install-Hadoop-step5-1024x502.png 1024w, https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Install-Hadoop-step5.png 1472w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/figure><\/div>\n\n\n\n<p>Nie wszystkie s\u0105 niezb\u0119dne, my zdecydowali\u015bmy si\u0119 na poni\u017csz\u0105 list\u0119:<\/p>\n\n\n\n<p>HDFS, YARN+MapReduce2, Tez, Hive, Spark2, HBase, Pig, Sqoop, Zookeeper, Ambari Metrics, Kafka, Zeppelin Notebook.<\/p>\n\n\n\n<h2 id=\"krok-4\">Krok 4:<\/h2>\n\n\n\n<p>Oczywi\u015bcie inne komponenty r\u00f3wnie\u017c mog\u0105 zosta\u0107 wybrane. W przypadku ich braku na li\u015bcie mo\u017cna p\u00f3\u017aniej je doinstalowa\u0107 z poziomu terminala b\u0105d\u017a znale\u017a\u0107 modu\u0142 rozszerzaj\u0105cy funkcjonalno\u015b\u0107 Apache Ambari o wspomniany komponent.<\/p>\n\n\n\n<p>Na nast\u0119pnym ekranie widzimy komponenty zainstalowane na nodach. Jest to do\u015b\u0107 istotny krok, poniewa\u017c dobre przemy\u015blenie architektury i lokalizacji komponent\u00f3w pozwoli nam na poprawn\u0105 optymalizacj\u0119 oraz r\u00f3wne obci\u0105\u017cenie nod\u00f3w.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" width=\"300\" height=\"148\" src=\"https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Install-Hadoop-step6-300x148.png\" alt=\"\" class=\"wp-image-15467\" srcset=\"https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Install-Hadoop-step6-300x148.png 300w, https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Install-Hadoop-step6-768x380.png 768w, https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Install-Hadoop-step6-1024x507.png 1024w, https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Install-Hadoop-step6.png 1518w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/figure><\/div>\n\n\n\n<p>W nast\u0119pnym kroku uzupe\u0142niamy powy\u017csz\u0105 list\u0119.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" width=\"300\" height=\"68\" src=\"https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Install-Hadoop-step7-300x68.png\" alt=\"\" class=\"wp-image-15469\" srcset=\"https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Install-Hadoop-step7-300x68.png 300w, https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Install-Hadoop-step7-768x175.png 768w, https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Install-Hadoop-step7-1024x233.png 1024w, https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Install-Hadoop-step7.png 1514w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/figure><\/div>\n\n\n\n<p>Istotne jest, aby wybra\u0107 jak najwi\u0119ksz\u0105 licz\u0119 nod\u00f3w z DataNode i NodeManager, gdy\u017c umo\u017cliwia to lepsze rozproszenie proces\u00f3w i danych w ramach naszego klastra.<\/p>\n\n\n\n<p>W kolejnym kroku ustawiamy uprawnienia u\u017cytkownik\u00f3w, z kt\u00f3rych b\u0119d\u0105 korzysta\u0107 us\u0142ugi w naszym klastrze.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" width=\"300\" height=\"87\" src=\"https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Install-Hadoop-step8-300x87.png\" alt=\"\" class=\"wp-image-15470\" srcset=\"https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Install-Hadoop-step8-300x87.png 300w, https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Install-Hadoop-step8-768x222.png 768w, https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Install-Hadoop-step8-1024x296.png 1024w, https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Install-Hadoop-step8.png 1534w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/figure><\/div>\n\n\n\n<p>Wpisujemy uprawnienia u\u017cytkownik\u00f3w do baz danych \u2013 dodam tutaj, \u017ce nale\u017cy stworzy\u0107 u\u017cytkownik\u00f3w i bazy danych w instacji MySQL (lub innych baz danych) przed wykonaniem instalacji Apache Ambari.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" width=\"300\" height=\"136\" src=\"https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Install-Hadoop-step9-300x136.png\" alt=\"\" class=\"wp-image-15472\" srcset=\"https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Install-Hadoop-step9-300x136.png 300w, https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Install-Hadoop-step9-768x349.png 768w, https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Install-Hadoop-step9-1024x465.png 1024w, https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Install-Hadoop-step9.png 1372w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/figure><\/div>\n\n\n\n<p>Katalogi, w kt\u00f3rych b\u0119d\u0105 zainstalowane komponenty Apache Hadoop pozostawiamy bez zmian, konta r\u00f3wnie\u017c. Ca\u0142o\u015b\u0107 konfiguracji ka\u017cdego z komponent\u00f3w mo\u017cna obejrze\u0107 w ostatniej zak\u0142adce \u2013 pozostawiamy je domy\u015blne.<\/p>\n\n\n\n<p>W kolejnym ekranie mamy podsumowanie naszych wybor\u00f3w wraz z mo\u017cliwo\u015bci\u0105 wygenerowania szablonu <strong>GENERATE BLUEPRINT <\/strong>w przypadku, kiedy nasza instalacja b\u0119dzie powtarzalna.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" width=\"300\" height=\"150\" src=\"https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Install-Hadoop-step10-300x150.png\" alt=\"\" class=\"wp-image-15474\" srcset=\"https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Install-Hadoop-step10-300x150.png 300w, https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Install-Hadoop-step10-768x385.png 768w, https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Install-Hadoop-step10-1024x514.png 1024w, https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Install-Hadoop-step10-1000x500.png 1000w, https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Install-Hadoop-step10.png 1545w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/figure><\/div>\n\n\n\n<p>Klikamy <strong>DEPLOY<\/strong> i obserwujemy proces instalacji. W razie wystapienia b\u0142\u0119d\u00f3w instalacja przerwie si\u0119 z odpowiednim komunikatem w logu, mo\u017cna j\u0105 jednak wznowi\u0107 po ich naprawieniu.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" width=\"300\" height=\"92\" src=\"https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Install-Hadoop-step11-300x92.png\" alt=\"\" class=\"wp-image-15476\" srcset=\"https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Install-Hadoop-step11-300x92.png 300w, https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Install-Hadoop-step11-768x235.png 768w, https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Install-Hadoop-step11-1024x313.png 1024w, https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Install-Hadoop-step11.png 1542w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/figure>\n\n\n\n<p class=\"has-text-align-center\"><\/p>\n\n\n\n<p>Instalacja zostaje zako\u0144czona, poni\u017cej panel administracyjny Apache Ambari po zako\u0144czeniu instalacji<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" width=\"300\" height=\"132\" src=\"https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Koniec-300x132.png\" alt=\"\" class=\"wp-image-15479\" srcset=\"https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Koniec-300x132.png 300w, https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Koniec-768x338.png 768w, https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Koniec-1024x451.png 1024w, https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/02\/Koniec.png 1913w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/figure><\/div>\n\n\n\n<p class=\"has-text-align-center\"><\/p>\n\n\n\n<h2 id=\"podsumowanie\">Podsumowanie:<\/h2>\n\n\n\n<p>Jak wida\u0107 proces instalacji nie jest trudny, nie wymaga specjalnych umiej\u0119tno\u015bci i przy u\u017cyciu gotowych edycji, takich jak np. Hortonworks mo\u017ce zosta\u0107 zako\u0144czony w ci\u0105gu 2\u20133 h w przypadku 3\u2013nodowego klastra z jednym nodem steruj\u0105cym. Trzeba jednak zaznaczy\u0107, \u017ce instalacja jest tylko jednym z element\u00f3w poprawnej konfiguracji Apache Hadoop. Ka\u017cda z us\u0142ug wymaga indywidualnego podej\u015bcia i wypracowania metodyki i optymalizacji. Nale\u017cy tak\u017ce poprawnie zaprojektowa\u0107 klaster. Jedn\u0105 z podstawowych zalet Apache Hadoop jest jego szeroka dost\u0119pno\u015b\u0107 i rozproszenie pracy na wiele nod\u00f3w. Aby jednak awaria jednego noda nie wp\u0142yne\u0142a na aktualnie wykonywane procesy \u2013 nale\u017cy odpowiednio propagowa\u0107 us\u0142ugi na dost\u0119pne nody. W kolejnych artyku\u0142ach postaramy si\u0119 opisa\u0107 nasze do\u015bwiadczenia w zakresie optymalizacji Hadoop w kontek\u015bcie u\u017cywania Hive i Spark.<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wprowadzenie: Apache Hadoop jest otwart\u0105 platform\u0105 programistyczn\u0105 stworzon\u0105 w j\u0119zyku Java. Platforma przeznaczona jest do przetwarzania du\u017cych ilo\u015bci danych w rozproszonym \u015brodowisku, skalowalnym i rozszerzalnym horyzontalnie.&nbsp; Hadoop sk\u0142ada si\u0119 z wielu komponent\u00f3w, kt\u00f3rych podstaw\u0105 jest HDFS (Hadoop Distributed File System), Hadoop Common (biblioteki u\u017cywane przez modu\u0142y), YARN (Yet Another Resource Negotiator), MapReduce. W ci\u0105gu wielu lat obecno\u015bci na rynku platforma zosta\u0142a rozszerzona o nowe funkcjonalno\u015bci, obecnie bardzo szeroko u\u017cywane, takie jak Apache Kafka, Apache Hive, Apache Spark, Apache Flume, Apache Flink. W zwi\u0105zku ze zwi\u0119kszaj\u0105cym si\u0119 zapotrzebowaniem na skalowalne platformy. Platformy , kt\u00f3ra pozwala przetwarza\u0107 znaczne zbiory danych. Powsta\u0142y gotowe pakiety instalacyjne zawieraj\u0105ce kluczowe funkcjonalno\u015bci, dostarczaj\u0105 je takie firmy, jak Hortonworks, Cloudera, MapR. W artykule skupimy si\u0119 na edycji Hortonworks. Poka\u017cemy proces instalacji i konfiguracji klastra sk\u0142adaj\u0105cego sie z 3 nod\u00f3w (serwer\u00f3w, w\u0119z\u0142\u00f3w) oraz jednego noda steruj\u0105cego. W zwi\u0105zku z tym, \u017ce platforma zostanie skonfigurowana w chmurze, pierwszym krokiem b\u0119dzie podj\u0119cie decyzji, kt\u00f3rej z nich u\u017cy\u0107. Mamy do dyspozycji du\u017cych \u201egraczy\u201d, takich jak AWS, Azure, Google oraz mniejsze \u015brodowiska, takie jak lokalni dostawcy. My zdecydowali\u015bmy si\u0119 na co\u015b po\u015bredniego, mianowicie DigitalOcean. DigitalOcean oferuje przyjemne, proste i cenowo przyst\u0119pne \u015brodowisko konfiguracji maszyn wirtualnych. Zdecydowali\u015bmy si\u0119 na nast\u0119puj\u0105c\u0105 konfiguracj\u0119: 3 maszyny z [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":15491,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[75,92,76],"tags":[79,78,77,80,81,86,83,84,82,85],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v18.1 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<meta name=\"description\" content=\"W artykule znajdziecie kr\u00f3tki i klarowny opis jak zainstalowa\u0107 klaster Apache Hadoop na infrastrukturze chmury DigitalOcean.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/scriptfactory.pl\/blog\/apache-hadoop\/instalacja-apache-hadoop-w-chmurze\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Instalacja Apache Hadoop w Chmurze - SCRIPT FACTORY | BI BLOG\" \/>\n<meta property=\"og:description\" content=\"W artykule znajdziecie kr\u00f3tki i klarowny opis jak zainstalowa\u0107 klaster Apache Hadoop na infrastrukturze chmury DigitalOcean.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/scriptfactory.pl\/blog\/apache-hadoop\/instalacja-apache-hadoop-w-chmurze\/\" \/>\n<meta property=\"og:site_name\" content=\"SCRIPT FACTORY | BI BLOG\" \/>\n<meta property=\"article:published_time\" content=\"2019-03-03T14:22:41+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-02-17T09:08:09+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/03\/Big-Data-Verteda-1024x724.jpeg\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"724\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Napisane przez\" \/>\n\t<meta name=\"twitter:data1\" content=\"Wojciech Zduniak\" \/>\n\t<meta name=\"twitter:label2\" content=\"Szacowany czas czytania\" \/>\n\t<meta name=\"twitter:data2\" content=\"15 minut\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"https:\/\/scriptfactory.pl\/blog\/#website\",\"url\":\"https:\/\/scriptfactory.pl\/blog\/\",\"name\":\"SCRIPT FACTORY | BI BLOG\",\"description\":\"Blog techniczny pokazuj\u0105cy jak poradzi\u0107 sobie z najwi\u0119kszymi problemami\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/scriptfactory.pl\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"pl-PL\"},{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/scriptfactory.pl\/blog\/apache-hadoop\/instalacja-apache-hadoop-w-chmurze\/#primaryimage\",\"inLanguage\":\"pl-PL\",\"url\":\"https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/03\/Big-Data-Verteda-1024x724.jpeg\",\"contentUrl\":\"https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/03\/Big-Data-Verteda-1024x724.jpeg\",\"width\":1024,\"height\":724},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/scriptfactory.pl\/blog\/apache-hadoop\/instalacja-apache-hadoop-w-chmurze\/#webpage\",\"url\":\"https:\/\/scriptfactory.pl\/blog\/apache-hadoop\/instalacja-apache-hadoop-w-chmurze\/\",\"name\":\"Instalacja Apache Hadoop w Chmurze - SCRIPT FACTORY | BI BLOG\",\"isPartOf\":{\"@id\":\"https:\/\/scriptfactory.pl\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/scriptfactory.pl\/blog\/apache-hadoop\/instalacja-apache-hadoop-w-chmurze\/#primaryimage\"},\"datePublished\":\"2019-03-03T14:22:41+00:00\",\"dateModified\":\"2022-02-17T09:08:09+00:00\",\"author\":{\"@id\":\"https:\/\/scriptfactory.pl\/blog\/#\/schema\/person\/e39ed2fd20838bb0d87220cc919e2f21\"},\"description\":\"W artykule znajdziecie kr\u00f3tki i klarowny opis jak zainstalowa\u0107 klaster Apache Hadoop na infrastrukturze chmury DigitalOcean.\",\"breadcrumb\":{\"@id\":\"https:\/\/scriptfactory.pl\/blog\/apache-hadoop\/instalacja-apache-hadoop-w-chmurze\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/scriptfactory.pl\/blog\/apache-hadoop\/instalacja-apache-hadoop-w-chmurze\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/scriptfactory.pl\/blog\/apache-hadoop\/instalacja-apache-hadoop-w-chmurze\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Strona g\u0142\u00f3wna\",\"item\":\"https:\/\/scriptfactory.pl\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Instalacja Apache Hadoop w Chmurze\"}]},{\"@type\":\"Person\",\"@id\":\"https:\/\/scriptfactory.pl\/blog\/#\/schema\/person\/e39ed2fd20838bb0d87220cc919e2f21\",\"name\":\"Wojciech Zduniak\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/scriptfactory.pl\/blog\/#personlogo\",\"inLanguage\":\"pl-PL\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/5d954513663b7b760bcae861966c5069?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/5d954513663b7b760bcae861966c5069?s=96&d=mm&r=g\",\"caption\":\"Wojciech Zduniak\"},\"description\":\"BI zajmuj\u0119 si\u0119 kilkana\u015bcie lat, od Microsoft po Teradat\u0119, od on-premise do cloud, od pojedy\u0144czych serwer\u00f3w po klastr\u00f3w obliczeniowych. Temat jest tak szeroki i ciekawy \u017ce postanowi\u0142em opisa\u0107 po kolei wszystko co wiem i z czym si\u0119 zetkn\u0105\u0142em. Mam nadzieje \u017ce b\u0119dzie Wam si\u0119 podoba\u0107 ta lektura :)\",\"url\":\"https:\/\/scriptfactory.pl\/blog\/author\/admin\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"description":"W artykule znajdziecie kr\u00f3tki i klarowny opis jak zainstalowa\u0107 klaster Apache Hadoop na infrastrukturze chmury DigitalOcean.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/scriptfactory.pl\/blog\/apache-hadoop\/instalacja-apache-hadoop-w-chmurze\/","og_locale":"pl_PL","og_type":"article","og_title":"Instalacja Apache Hadoop w Chmurze - SCRIPT FACTORY | BI BLOG","og_description":"W artykule znajdziecie kr\u00f3tki i klarowny opis jak zainstalowa\u0107 klaster Apache Hadoop na infrastrukturze chmury DigitalOcean.","og_url":"https:\/\/scriptfactory.pl\/blog\/apache-hadoop\/instalacja-apache-hadoop-w-chmurze\/","og_site_name":"SCRIPT FACTORY | BI BLOG","article_published_time":"2019-03-03T14:22:41+00:00","article_modified_time":"2022-02-17T09:08:09+00:00","og_image":[{"width":1024,"height":724,"url":"https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/03\/Big-Data-Verteda-1024x724.jpeg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_misc":{"Napisane przez":"Wojciech Zduniak","Szacowany czas czytania":"15 minut"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebSite","@id":"https:\/\/scriptfactory.pl\/blog\/#website","url":"https:\/\/scriptfactory.pl\/blog\/","name":"SCRIPT FACTORY | BI BLOG","description":"Blog techniczny pokazuj\u0105cy jak poradzi\u0107 sobie z najwi\u0119kszymi problemami","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/scriptfactory.pl\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"pl-PL"},{"@type":"ImageObject","@id":"https:\/\/scriptfactory.pl\/blog\/apache-hadoop\/instalacja-apache-hadoop-w-chmurze\/#primaryimage","inLanguage":"pl-PL","url":"https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/03\/Big-Data-Verteda-1024x724.jpeg","contentUrl":"https:\/\/scriptfactory.pl\/blog\/wp-content\/uploads\/2019\/03\/Big-Data-Verteda-1024x724.jpeg","width":1024,"height":724},{"@type":"WebPage","@id":"https:\/\/scriptfactory.pl\/blog\/apache-hadoop\/instalacja-apache-hadoop-w-chmurze\/#webpage","url":"https:\/\/scriptfactory.pl\/blog\/apache-hadoop\/instalacja-apache-hadoop-w-chmurze\/","name":"Instalacja Apache Hadoop w Chmurze - SCRIPT FACTORY | BI BLOG","isPartOf":{"@id":"https:\/\/scriptfactory.pl\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/scriptfactory.pl\/blog\/apache-hadoop\/instalacja-apache-hadoop-w-chmurze\/#primaryimage"},"datePublished":"2019-03-03T14:22:41+00:00","dateModified":"2022-02-17T09:08:09+00:00","author":{"@id":"https:\/\/scriptfactory.pl\/blog\/#\/schema\/person\/e39ed2fd20838bb0d87220cc919e2f21"},"description":"W artykule znajdziecie kr\u00f3tki i klarowny opis jak zainstalowa\u0107 klaster Apache Hadoop na infrastrukturze chmury DigitalOcean.","breadcrumb":{"@id":"https:\/\/scriptfactory.pl\/blog\/apache-hadoop\/instalacja-apache-hadoop-w-chmurze\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/scriptfactory.pl\/blog\/apache-hadoop\/instalacja-apache-hadoop-w-chmurze\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/scriptfactory.pl\/blog\/apache-hadoop\/instalacja-apache-hadoop-w-chmurze\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Strona g\u0142\u00f3wna","item":"https:\/\/scriptfactory.pl\/blog\/"},{"@type":"ListItem","position":2,"name":"Instalacja Apache Hadoop w Chmurze"}]},{"@type":"Person","@id":"https:\/\/scriptfactory.pl\/blog\/#\/schema\/person\/e39ed2fd20838bb0d87220cc919e2f21","name":"Wojciech Zduniak","image":{"@type":"ImageObject","@id":"https:\/\/scriptfactory.pl\/blog\/#personlogo","inLanguage":"pl-PL","url":"https:\/\/secure.gravatar.com\/avatar\/5d954513663b7b760bcae861966c5069?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5d954513663b7b760bcae861966c5069?s=96&d=mm&r=g","caption":"Wojciech Zduniak"},"description":"BI zajmuj\u0119 si\u0119 kilkana\u015bcie lat, od Microsoft po Teradat\u0119, od on-premise do cloud, od pojedy\u0144czych serwer\u00f3w po klastr\u00f3w obliczeniowych. Temat jest tak szeroki i ciekawy \u017ce postanowi\u0142em opisa\u0107 po kolei wszystko co wiem i z czym si\u0119 zetkn\u0105\u0142em. Mam nadzieje \u017ce b\u0119dzie Wam si\u0119 podoba\u0107 ta lektura :)","url":"https:\/\/scriptfactory.pl\/blog\/author\/admin\/"}]}},"_links":{"self":[{"href":"https:\/\/scriptfactory.pl\/blog\/wp-json\/wp\/v2\/posts\/15422"}],"collection":[{"href":"https:\/\/scriptfactory.pl\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/scriptfactory.pl\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/scriptfactory.pl\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/scriptfactory.pl\/blog\/wp-json\/wp\/v2\/comments?post=15422"}],"version-history":[{"count":50,"href":"https:\/\/scriptfactory.pl\/blog\/wp-json\/wp\/v2\/posts\/15422\/revisions"}],"predecessor-version":[{"id":15686,"href":"https:\/\/scriptfactory.pl\/blog\/wp-json\/wp\/v2\/posts\/15422\/revisions\/15686"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/scriptfactory.pl\/blog\/wp-json\/wp\/v2\/media\/15491"}],"wp:attachment":[{"href":"https:\/\/scriptfactory.pl\/blog\/wp-json\/wp\/v2\/media?parent=15422"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/scriptfactory.pl\/blog\/wp-json\/wp\/v2\/categories?post=15422"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/scriptfactory.pl\/blog\/wp-json\/wp\/v2\/tags?post=15422"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}