Hadoop i Ganglia |
Pretpostavimo da, ako vam je potrebna pomoć pri instalaciji Hadoop-a, da ste upoznati sa funkcionalnošću i upotrebom istog. Takođe vodimo se pretpostavkom da poznajete način rada MapReduce aplikacija, tako da na to nećemo trošiti slova objašnjavajući. Mnogo toga možete naći na zvaničnom web sajtu, kao i na Wikipedia-i.
Sistem:
Preporučujem statičko podešavanje svih ip adresa u mreži(master čvora obavezno). Na slici gore imate primjer statičkog podešavanja ip adrese za jedan od vaših računara u klasteru. U ovom primjeru koristićemo dve virtuelne mašine sa ip adresama 192.168.0.130 i 192.168.0.131. Nakon podešavanja provjerite međusobnu komunikaciju kompjutera pingajući konekciju .
Pre nego li uopšte započnemo instalaciju hadoop-a, kao dobra praksa se pokazala kreiranje novog korisnika koji će da pokreće hadoop naredbe. Korisnika možete kreirati kroz konzolu ili preko GUI-a. U navedenom primjeru, korisnik pod imenom “hadoop” i šifrom “hadoop” je kreiran kao Administrator. Posebna pažnja se mora obratiti na omogućavanje korišćenja Ethernet-a.
Provjerite da li je Java instalirana na sistem. Pošto kompletan hadoop sistem funkcioniše na JVM, pobrinite se da je Java korektno instalirana i da su environment varijable podešene. U ovom primjeru, javu nismo imali instaliranu. Najlakši način instaliranja pomoću kojeg se i environment varijable automatski podešavaju je instalacijom iz Add/Remove podmenija, Applications menija.
Selektujte OpenJavaJDK 6 Runtime , a zatim instalirajte paket.
Instalacija
Većinu narednih paketa ćemo kompajlirati iz preuzetog source koda. I većinu posla oko hadoop instalacije radimo samo na jednoj mašini. Recimo da će to biti master mašina. Hadoop paket možete preuzeti sa ove web lokacije: http://www.apache.org/dyn/closer.cgi/hadoop/core/
Prethodne komande smo izvršavali kao “hadoop” korisnik. U home/hadoop/ direktorijumu smo ekstraktovali hadoop-0.20.2.tar.gz arhivu. Sada dolazimo do koraka kada je potrebno editovati hadoop fajlove kako bismo ih prilagodili mreži na kojoj pokrećemo sistem. Ti fajlovi se nalaze u raspakovanoj hadoop arhivi u “conf” folderu, a zovu se core-site.xml, mapred-site.xml, hdfs.site.xml, hadoop-env.sh. A editujemo ih na sljedeći način:
Defaultni core-site.xml fajl je poprilično prazan, sa dva tag-a. Između pomenutih tagova, potrebno je ubaciti sadržaj sljedćeg sastava, prilagođavajući podatke svojoj mreži.
U navedenom primjeru, hdfs://192.168.0.130:9000 predstavlja adresu master čvora u tj. adresu mašine u klasteru koja će da bude master čvor za HDFS i MapReduce. /home/hadoop/hadoopfilesystem predstavlja folder u kojem će se praktično nalaziti svi fajlovi koji pripadaju HDFS-u. U primjeru je označena putanja do tmp foldera. Snimite izmjene sa CTRL+O, stisnite ENTER, a zatim se vratite u konzolu sa CTRL+X. Sljedeći fajl koji editujemo je mapred-site.xml:
Kao u prethodnom pimjeru, navedena ip adresa predstavlja ip adresu master čvora. Primjetite razliku da se u ovom slučaju za port bira 9001. Broj porta koji smo birali je proizvoljan. Ja sam za HDFS uzeo 9000 port (core-site.xml), a za MapReduce 9001 port (mapred.site.xml). Snimite promjene i zatvorite. Sljedeći fajl na redu je hadoop-env.sh Ovde je potrebno da sistemu kažemo JAVA_HOME putanju, kako bi znao gdje mu se nalaze instalirani java fajlovi.
Ispred selektovanog stringa na slici potrebno je izbrisati znak # i dopisati tačnu java putanju. Snimite promjene i zatvorite. Poslednji fajl koji je potrebno editovati je hdfs-site.xml
Broj “2” na slici ukazuje na broj blokova koji će biti replicirani prilikom kreiranja fajla unutar HDFS-a. Što veći broj, to ćete više memorijskog prostora trošiti, ali ćete imati manju vjerovatnoću gubitka podataka usljed kvara nekog od čvorova, a i MapReduce aplikacije će brže raditi jer će više čvorova biti kandidati za dodjelu posla, jer više čvorova ima , lokalno, trenutno potrebne podatke. Ukoliko je broj replikacija blokova veći od broja čvorova, unos u ovom fajlu će biti ignorisan i kao replikacija blokova će se koristiti vrijednost broja datanode-ova u mreži. Kasnije, kod korišćenja Ganglia Monitoring Sistema, trebaće nam hostname-i čvorova u mreži. Zbog toga ćemo editovati i /etc/hosts fajl i unijeti podatke shodno podacima naše mreže. Izmjenu ovog fajla radimo na svim mašinama.
Da bi hadoop sistem uopšte znao ko je master, a ko su slave čvorovi, te podatke unosimo u masters i slaves fajlove u istom folderu (conf) tako što u pomenute fajlove unosimo ip adrese odgovarajućih mašina. Napomena: mašina namjenjena master čvoru, može takođe da bude i slave čvor. U realnom pokretanju aplikacije, tako nešto ne želite, jer je master mašina ta koja trpi najviše posla, naročito sa većim brojem slave čvorova. Zato ne želimo da je opteretimo i sa slave poslom.
masters Isključimo firewall.
Da ne zaboravimo. Pošto smo izabrali hadoopfilesystem za folder gdje će nam se svi hadoop podaci smještati, taj folder je potrebno i kreirati. mkdir /home/hadoop/hadoopfilesystem Da bi se komunikacija između čvorova nesmetano odvijala, potrebno je prosljediti ssh ključeve master čvora svim ostalim čvorovima u mreži. Potrebno je instalirati biblioteku openssh-server, a zatim izvršiti operacije kao na sljedećoj slici:
Na slici su primjetne tri linije koje počinju sa Enter file, Enter passphrase, Enter same passphrase. Kod sve tri linije potrebno je samo stisnuti ENTER. U tom slučaju ne postavljamo šifru i pri komunikaciji sa čvorom nećemo biti pitani za šifru. U suprotnom, svaka hadoop operacija bi zahtjevala unošenje šifre od strane korisnika, što je besmisleno … Navedene operacije uraditi na svim čvorovima. Naredni korak vrši samo master čvor, a radnja koja se vrši je kopiranje ssh ključa svim ostalim čvorovima u mreži.
Prethodnu operaciju kopiranja je potrebno uraditi za svaki čvor ponaosob, mijenjajući destinacionu ip adresu shodno čvoru na koji se kopira ssh ključ. Kada ste upitani za (yes/no), ukucajte yes i pritisnite ENTER, a sifra je “hadoop”(pod uslovom da ste tu šifru izabrali za svakog hadoop korisnika na svakom čvoru). Pošto smo prethodnom operacijom kopirali ssh ključ master čvora svim ostalim mašinama, sada je potrebno na svim tim mašinama unijeti taj ključ u listu autorizovanih ključeva.
Editovanje hadoop fajlova se ne razlikuje za master i slave čvorove. Podešavanja koja smo izvršili na master čvoru nam važe i za slave čvorove. Zato ćemo kopirati hadoop-0.20.2 folder svim ostalim čvorovima. Napomena: Pretpostavljamo da je “hadoop” korisnik kreiran na svim ostalim čvorovima. scp –r /home/hadoop/hadoop-0.20.2 192.168.0.131:/home/hadoop gdje se ip adresa mijenja za svaki čvor. Nakon što ste izvršili kopiranje foldera na sve čvorove, možemo pristupiti formatiranju HDFS-a na sljedeći način:
Magična poruka : .. has been successfully formated !!!Funkcionalnost hadoop-a ćemo pokazati nešto kasnije …
Ganglia Monitornig System
Ganglia monitoring sistem (GMS) je vrlo jednostavan za korišćenje i vrlo koristan za nadgledanje performansi kompletne konfiguracije grida, klastera u gridu u svakog čvora u klasteru posebno.
Instalacija Ganglia-e nam je posebno zadavala glavobolje, sa paketima koji nedostaju. Trenutno poslednja verzija GMS-a je 3.1.7, koju nismo uspješno kompajllirali i instalirali. I u ovom slučaju i u slučaju sa realnim mašinama, vezija 3.1.2 se pokazala donekle stabilnom. GMS source code paket možete preuzeti sa ovog linka: http://sourceforge.net/projects/ganglia/files/ganglia%20monitoring%20core/
Verzija koju smo mi instalirali je 3.1.2. Pre svega, potrebno je instalirati nekoliko paketa koji su preduslov za kompajliranje. Naredbe su navedene ispod.
sudo apt-get install gmetad
Potrebno je preuzeti Apache sa ovog linka http://httpd.apache.org/download.cgi i instalirati na sistem. Paket koji smo mi instalirali je verzije 2.2.15. Snimimo paket na Desktop i ekstraktujmo arhivu. U konzoli se dovedimo na putanju foldera koji je nastao ekstraktovanjem prethodne arhive (httpd-2.2.15).. Pokrenimo kompajliranje tako što ćemo u konzoli ukucati ./configure naredbu. primeuser@primeuser-desktop:~Desktop/httpd-2.2.15$ ./configure Nakon toga sljedeće dve naredbe: primeuser@primeuser-desktop:~Desktop/httpd-2.2.15$ sudo make Ono što je loša strana i komplikacija kod ove instalacije je što sve ove radnje morate izvršiti na svim čvorovima, što može da bude problem ako imate veliki broj čvorova. Zato je dobra opcija napraviti jednu virtuelnu mašinu, potpuno podešenu, sa direktnim pristupom hard disku (ne kreirati virtuelni hard disk), a zatim tuVM kopirate na druge čvorove i imate sistem spreman za upotebu. Instaliranje Apache-a ne bi trebalo da bude popraćeno problemima. Vratimo se sada ganglia paketu. Nakon što preuzmete paket, ekstraktujte ga i promjenite svoju poziciju u konzoli na folder koji je nastao ekstrakcijom ganglia paketa (ganglia-3.1.2) Pokrenimo sljedeću naredbu: primeuser@primeuser-desktop:~Desktop/ ganglia-3.1.2$ Nakon izvršene gornje operacije, u konzoli bi se nakon silnih ispisa trebao pojaviti natpis kao na sljedećoj slici:
Ukoliko to nije slučaj, onda imate neželjenih problema sa instaliranjem. Provjerite poruke koje vam se ispišu na kraju izvršenja operacije. Nakon ovoga je potrebno izvršiti .. primeuser@primeuser-desktop:~Desktop/ ganglia-3.1.2$ sudo make Moguće je da će se pojaviti dve ili tri greške prilikom izvršavanja ove naredbe. Te greške jednostavno ignorišite. Mi smo ih ignorisali, a sistem i dalje savršeno radi . Zatim izvršite i sljedeće naredbe. primeuser@primeuser-desktop:~Desktop/ ganglia-3.1.2$ sudo make install Takođe je potrebno (zbog lakšeg pokretanja sistema) izmjeniti fajl koji se nalazi na putanji /etc/apache2/sites-enabled/000-default izvršavanjem naredne naredbe. primeuser@primeuser-desktop:~Desktop/ ganglia-3.1.2$
Snimite fajl i zatvorite ga. Sadržaj koji smo dodali u fajl će nas prilikom pokretanja sistema automatski redirektovati na Ganglia Monitornig Sistem. Na posljetku je potebno restartovati apache. primeuser@primeuser-desktop:~Desktop/ ganglia-3.1.2$ sudo apache2ctl restart sudo nano /etc/gmond.conf
# The name of the cluster this node is a part of
sudo nano /etc/gmetad.conf
# data_source "my cluster" 10 localhost my.machine.edu:8649 1.2.3.5:8655
data_source "MY CLUSTER" localhost
sudo /etc/init.d/ganglia-monitor restart
sudo /etc/init.d/gmetad start I time smo završili instalaciju i podešavanja.
Upotreba
Otvorite vaš browser i u address bar ukucajte localhost. Primjetićete da se lokacija u address bar-u promijenila na localhost/ganglia a izgled ekrana koji možete da dobijete, može izgledati kao na sljedećoj slici.
Primjetićete da je naziv klastera “MY CLUSTER” ekivalentan podacima koje smo unijeli u gmond.conf i gmetad.conf fajlove. Ispod ćete primjetiti čvor master obojen u crveno (boja predstavlja opterećenje). drugi čvor se ne vidi u GMS-u jer nije pokrenut ganglia monitor na njemu. E sad idemo pokrenuti Hadoop. U konzoli se kao “hadoop“ korisnik dovedimo na poziciju foldera hadoop-0.20.2 i unesimo sljedeću naredbu. hadoop@primeuser-desktop:~/hadoop-0.20.2$ ./bin/start-all.sh
Ukoliko pokrećete hadoop po prvi put,moguće je da budete upitani “yes/no” . Ukucajte yes i pustite da se upali sistem. Ispis pokazuje čvor koji se “pali” i servis (da li je to “datanode” ili “tasktracker”). U vašem browseru, posjećivanjem u address bar ukucajte localhost:50070 Dobićete izgled ekrana sličan slici ispod.
Slika prikazuje pristup HDFS-u. Primjetićete da je podebljana poruka na slici “Safe mode is ON”.Hadoop se nalazi u Safe Mode-u prilikom startovanja, jer svaki čvor mora da odgovori master čvoru da li se upalio ili ne. Dok god se svi čvorovi ne jave master čvoru sa pozitivnom ili negativnom potvrdom, nikakve operacije nad HDFS-om se ne mogu vršiti. Vrijeme koje je potrebno za izlazak iz Safe Mode-a se razlikuje od klastera do klastera. Nakon što se “podigne” hadoop, recimo da želimo da iskopiramo neki fajl (u ovom slučaju video fajl od 3 GB) u HDFS. Replikacija blokova je namještena na vrijednost 2. Blokovi su veličine 64 MB (po default-u). Znači da ćemo na HDFS-u imati duplu veličinu fajla koji će zauzimati 6 GB, sa blokovima koji se nalaze na oba čvora. Obratite pažnju kako je otkucana sljedeća naredba.
Navedena naredba kopira When.We.Left.Earth.Part.1-CtrlHD.mkv sa lokalnog harddiska na HDFS, pod imenom WhenWeLeftEarth1.mkv Za vrijeme kopiranja, u Ganglia Monitoring Systemu možemo vidjeti zauzeće svakog čvora posebno, kao i brzinu kojom se kopira fajl na osnovu zauzetosti mreže klastera. (slika ispod)
Nakon kopiranja fajla, na sljedećim slikama možemo vidjeti status sistema na pomenutim linkovima..
Pošto smo samo jedan fajl kopirali i replicirali 2 puta, vidimo da je zauzeće memorije 6 GB, kao što je i očekivano.
Na gornjoj slici imamo dio postojećih blokova na koje je fajl izdjeljen prilikom kopiranja. Obratite pažnju da se blokovi nalaze i na čvoru sa 192.168.0.130 adresom i sa 192.168.0.131 adresom. Pošto je vrijednost replikacije blokova jednak broju čvorova, svaki blok se nalazi na oba računara. U slučaju manje vrijednosti replikacije od broja čvorova, to neće biti slučaj. Isto tako , stanje fajlova možete saznati i kroz konzolu kucanjem “ekvivalentnih” naredbi, npr. izlistavanje:
A isto to možemo vidjeti i u browser-u kliknuvši na Browse the filesystem. MapReduce aplikacije je vrlo teško napraviti, stoga ćemo preskočiti dio koji objašnjava pokretanje takvih aplikacija. Stanje o tim aplikacijama i njihovom izvršavanju možete takođe vidjeti kroz browser: localhost:50030 Na kraju želimo da zaustavimo hadoop:
Udruženje Linux korisnika – Banja Luka © |
Pratite nas na tviteru
utorak, 24 april 2012 via Tweet Button • 1 retweet
Retweeted ponedeljak, 23 april 2012 via web • 5 retweets
Distrowatch
-
Development Release: LuninuX OS 12.00 Beta 2
Development Release: LuninuX OS 12.00 Beta 2
The second beta release of LuninuX OS 12.00, an Ubuntu-based distribution with GNOME Shell instead of Unity, is now available for testing: "The decision to bring pure GNOME to LuninuX OS in the second release Beta has proved beneficial -[…]
Source: DistroWatch.com: News
Created on: 20 May 2012 | 5:09 am
DistroWatch.com: News | 20 May 2012 | 5:09 am -
Distribution Release: Dream Studio 12.04
Distribution Release: Dream Studio 12.04
Dick MacInnis has announced the release of Dream Studio 12.04, an Ubuntu-based distribution with a goal of helping users to create graphics, videos, music and websites: "DickMacInnis.com is pleased to announce the immediate availability of Dream Studio 12.04, the latest[…]
Source: DistroWatch.com: News
Created on: 19 May 2012 | 6:58 pm
DistroWatch.com: News | 19 May 2012 | 6:58 pm -
Distribution Release: ExTiX 10
Distribution Release: ExTiX 10
Arne Exton has announced the release of ExTiX 10, an Ubuntu-based Linux distribution for 64-bit computers featuring the GNOME 3 and Razor-qt desktops: "ExTiX 10 64-bit is a remastered build of Ubuntu 12.04. The original system includes the Unity 5.8[…]
Source: DistroWatch.com: News
Created on: 19 May 2012 | 11:05 am
DistroWatch.com: News | 19 May 2012 | 11:05 am -
Development Release: Zorin OS 6 RC
Development Release: Zorin OS 6 RC
Artyom Zorin has announced the availability of the release candidate for Zorin OS 6, a user-friendly desktop Linux distribution based on Ubuntu 12.04: "The Zorin OS team is very proud to release the Zorin OS 6 Core release candidate, the[…]
Source: DistroWatch.com: News
Created on: 19 May 2012 | 4:03 am
DistroWatch.com: News | 19 May 2012 | 4:03 am -
Development Release: Linux Mint 13 RC
Development Release: Linux Mint 13 RC
Clement Lefebvre has announced the availability of the release candidate for Linux Mint 13 - in MATE and Cinnamon flavours: "The team is proud to announce the release of Linux Mint 13 RC 'Maya'. Available in two editions, Linux Mint[…]
Source: DistroWatch.com: News
Created on: 16 May 2012 | 11:20 pm
DistroWatch.com: News | 16 May 2012 | 11:20 pm
ULK mailing lista
| Prijavite se na mailing listu GNU/Linuks udruženja Republike Srpske |
| Е-пошта: |




































unknown unkno
UNITED STATES