Instalirajte Hadoop Multinode Cluster koristeći CDH4 u RHEL/CentOS 6.5
Hadoop je programski okvir otvorenog koda koji je razvio apache za obradu velikih podataka. Koristi HDFS (Hadoop Distributed File System) za pohranjivanje podataka u svim podatkovnim čvorovima u klasteru na distributivni način i model mapreduce za obradu podataka.
Namenode (NN) je glavni demon koji kontrolira HDFS i Jobtracker (JT ) je glavni demon za mapreduce engine.
Zahtjevi
U ovom vodiču koristim dva CentOS 6.3 VM-a „master“ i „node“, tj. (master i čvor su moja imena hosta). "Master" IP je 172.21.17.175, a IP čvora je "172.21.17.188". Sljedeće upute također rade na verzijama RHEL/CentOS 6.x.
On Master
[root@master ~]# hostname
master
[root@master ~]# ifconfig|grep 'inet addr'|head -1
inet addr:172.21.17.175 Bcast:172.21.19.255 Mask:255.255.252.0
Na čvoru
[root@node ~]# hostname
node
[root@node ~]# ifconfig|grep 'inet addr'|head -1
inet addr:172.21.17.188 Bcast:172.21.19.255 Mask:255.255.252.0
Prvo se uvjerite da su svi hostovi klastera tu u datoteci ‘/etc/hosts‘ (na svakom čvoru), ako nemate podešen DNS.
On Master
[root@master ~]# cat /etc/hosts
172.21.17.175 master
172.21.17.188 node
Na čvoru
[root@node ~]# cat /etc/hosts
172.21.17.197 qabox
172.21.17.176 ansible-ground
Instaliranje Hadoop višenodnog klastera u CentOS
Koristimo službeno CDH spremište za instaliranje CDH4 na sve hostove (Master i Node) u klasteru.
Korak 1: Preuzmite Install CDH Repository
Idite na zvaničnu stranicu za preuzimanje CDH i uzmite CDH4 (tj. 4.6) verziju ili možete koristiti sljedeću naredbu wget da preuzmete spremište i instalirate ga.
Na RHEL/CentOS 32-bitnom
wget http://archive.cloudera.com/cdh4/one-click-install/redhat/6/i386/cloudera-cdh-4-0.i386.rpm
yum --nogpgcheck localinstall cloudera-cdh-4-0.i386.rpm
Na RHEL/CentOS 64-bitnom
wget http://archive.cloudera.com/cdh4/one-click-install/redhat/6/x86_64/cloudera-cdh-4-0.x86_64.rpm
yum --nogpgcheck localinstall cloudera-cdh-4-0.x86_64.rpm
Prije instaliranja Hadoop Multinode Cluster, dodajte Cloudera javni GPG ključ u svoje spremište tako što ćete pokrenuti jednu od sljedećih naredbi u skladu s arhitekturom vašeg sistema.
## on 32-bit System ##
rpm --import http://archive.cloudera.com/cdh4/redhat/6/i386/cdh/RPM-GPG-KEY-cloudera
## on 64-bit System ##
rpm --import http://archive.cloudera.com/cdh4/redhat/6/x86_64/cdh/RPM-GPG-KEY-cloudera
Korak 2: Postavite JobTracker & NameNode
Zatim pokrenite sljedeću naredbu da instalirate i postavite JobTracker i NameNode na glavnom serveru.
[root@master ~]# yum clean all
[root@master ~]# yum install hadoop-0.20-mapreduce-jobtracker
[root@master ~]# yum clean all
[root@master ~]# yum install hadoop-hdfs-namenode
Korak 3: Postavite sekundarni naziv čvora
Opet, pokrenite sljedeće komande na glavnom serveru da postavite sekundarni čvor imena.
[root@master ~]# yum clean all
[root@master ~]# yum install hadoop-hdfs-secondarynam
Korak 4: Postavite Tasktracker & Datanode
Zatim postavite tasktracker i datanode na svim hostovima klastera (čvor) osim JobTracker, NameNode i sekundarnim (ili pripravnim) NameNode hostovima (na čvoru u ovom slučaju).
[root@node ~]# yum clean all
[root@node ~]# yum install hadoop-0.20-mapreduce-tasktracker hadoop-hdfs-datanode
Korak 5: Postavite Hadoop klijenta
Možete instalirati Hadoop klijenta na zasebnoj mašini (u ovom slučaju sam ga instalirao na datanode, možete ga instalirati na bilo kojoj mašini).
[root@node ~]# yum install hadoop-client
Korak 6: Postavite HDFS na čvorove
Sada, ako smo završili s gornjim koracima, idemo naprijed na implementaciju hdfs-a (treba uraditi na svim čvorovima).
Kopirajte zadanu konfiguraciju u /etc/hadoop direktorij (na svakom čvoru u klasteru).
[root@master ~]# cp -r /etc/hadoop/conf.dist /etc/hadoop/conf.my_cluster
[root@node ~]# cp -r /etc/hadoop/conf.dist /etc/hadoop/conf.my_cluster
Koristite naredbu alternatives da postavite svoj prilagođeni direktorij, kako slijedi (na svakom čvoru u klasteru).
[root@master ~]# alternatives --verbose --install /etc/hadoop/conf hadoop-conf /etc/hadoop/conf.my_cluster 50
reading /var/lib/alternatives/hadoop-conf
[root@master ~]# alternatives --set hadoop-conf /etc/hadoop/conf.my_cluster
[root@node ~]# alternatives --verbose --install /etc/hadoop/conf hadoop-conf /etc/hadoop/conf.my_cluster 50
reading /var/lib/alternatives/hadoop-conf
[root@node ~]# alternatives --set hadoop-conf /etc/hadoop/conf.my_cluster
Korak 7: Prilagođavanje konfiguracijskih datoteka
Sada otvorite datoteku „core-site.xml“ i ažurirajte „fs.defaultFS” na svakom čvoru u klasteru.
[root@master conf]# cat /etc/hadoop/conf/core-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master/</value>
</property>
</configuration>
[root@node conf]# cat /etc/hadoop/conf/core-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master/</value>
</property>
</configuration>
Sljedeće ažuriranje “dfs.permissions.superusergroup” u hdfs-site.xml na svakom čvoru u klasteru.
[root@master conf]# cat /etc/hadoop/conf/hdfs-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>dfs.name.dir</name>
<value>/var/lib/hadoop-hdfs/cache/hdfs/dfs/name</value>
</property>
<property>
<name>dfs.permissions.superusergroup</name>
<value>hadoop</value>
</property>
</configuration>
[root@node conf]# cat /etc/hadoop/conf/hdfs-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>dfs.name.dir</name>
<value>/var/lib/hadoop-hdfs/cache/hdfs/dfs/name</value>
</property>
<property>
<name>dfs.permissions.superusergroup</name>
<value>hadoop</value>
</property>
</configuration>
Napomena: Uvjerite se da je gornja konfiguracija prisutna na svim čvorovima (uradite na jednom čvoru i pokrenite scp da kopirate na ostatak čvorova).
Korak 8: Konfiguriranje lokalnih direktorija za pohranu
Ažurirajte "dfs.name.dir ili dfs.namenode.name.dir" u "hdfs-site.xml" na NameNode (na Master i Node). Molimo promijenite vrijednost kao što je istaknuto.
[root@master conf]# cat /etc/hadoop/conf/hdfs-site.xml
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///data/1/dfs/nn,/nfsmount/dfs/nn</value>
</property>
[root@node conf]# cat /etc/hadoop/conf/hdfs-site.xml
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///data/1/dfs/dn,/data/2/dfs/dn,/data/3/dfs/dn</value>
</property>
Korak 9: Kreirajte direktorije i upravljajte dozvolama
Izvršite naredbe ispod da kreirate strukturu direktorija i upravljate korisničkim dozvolama na Namenode (Master) i Datanode (Node) mašini.
[root@master]# mkdir -p /data/1/dfs/nn /nfsmount/dfs/nn
[root@master]# chmod 700 /data/1/dfs/nn /nfsmount/dfs/nn
[root@node]# mkdir -p /data/1/dfs/dn /data/2/dfs/dn /data/3/dfs/dn /data/4/dfs/dn
[root@node]# chown -R hdfs:hdfs /data/1/dfs/nn /nfsmount/dfs/nn /data/1/dfs/dn /data/2/dfs/dn /data/3/dfs/dn /data/4/dfs/dn
Formatirajte Imenode (na Masteru) izdavanjem sljedeće naredbe.
[root@master conf]# sudo -u hdfs hdfs namenode -format
Korak 10: Konfiguriranje sekundarnog imenskog čvora
Dodajte sljedeće svojstvo u datoteku hdfs-site.xml i zamijenite vrijednost kao što je prikazano na Master.
<property>
<name>dfs.namenode.http-address</name>
<value>172.21.17.175:50070</value>
<description>
The address and port on which the NameNode UI will listen.
</description>
</property>
Napomena: U našem slučaju vrijednost bi trebala biti ip adresa glavnog VM-a.
Sada implementirajmo MRv1 (Map-reduce verzija 1). Otvorite „mapred-site.xml“ datoteku sa vrijednostima kao što je prikazano.
[root@master conf]# cp hdfs-site.xml mapred-site.xml
[root@master conf]# vi mapred-site.xml
[root@master conf]# cat mapred-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>master:8021</value>
</property>
</configuration>
Zatim kopirajte datoteku „mapred-site.xml“ na čvorni stroj koristeći sljedeću scp naredbu.
[root@master conf]# scp /etc/hadoop/conf/mapred-site.xml node:/etc/hadoop/conf/
mapred-site.xml 100% 200 0.2KB/s 00:00
Sada konfigurirajte lokalne direktorije za pohranu koje će koristiti MRv1 Daemoni. Ponovo otvorite datoteku „mapred-site.xml“ i izvršite izmjene kao što je prikazano ispod za svaki TaskTracker.
<property>
 <name>mapred.local.dir</name>
 <value>/data/1/mapred/local,/data/2/mapred/local,/data/3/mapred/local</value>
</property>
Nakon što navedete ove direktorije u datoteci 'mapred-site.xml', morate kreirati direktorije i dodijeliti im ispravne dozvole datoteke na svakom čvoru u vašem klasteru.
mkdir -p /data/1/mapred/local /data/2/mapred/local /data/3/mapred/local /data/4/mapred/local
chown -R mapred:hadoop /data/1/mapred/local /data/2/mapred/local /data/3/mapred/local /data/4/mapred/local
Korak 10: Pokrenite HDFS
Sada pokrenite sljedeću naredbu da pokrenete HDFS na svakom čvoru u klasteru.
[root@master conf]# for x in `cd /etc/init.d ; ls hadoop-hdfs-*` ; do sudo service $x start ; done
[root@node conf]# for x in `cd /etc/init.d ; ls hadoop-hdfs-*` ; do sudo service $x start ; done
Korak 11: Kreirajte HDFS /tmp i MapReduce /var direktorije
Potrebno je kreirati /tmp sa odgovarajućim dozvolama tačno kao što je navedeno u nastavku.
[root@master conf]# sudo -u hdfs hadoop fs -mkdir /tmp
[root@master conf]# sudo -u hdfs hadoop fs -chmod -R 1777 /tmp
[root@master conf]# sudo -u hdfs hadoop fs -mkdir -p /var/lib/hadoop-hdfs/cache/mapred/mapred/staging
[root@master conf]# sudo -u hdfs hadoop fs -chmod 1777 /var/lib/hadoop-hdfs/cache/mapred/mapred/staging
[root@master conf]# sudo -u hdfs hadoop fs -chown -R mapred /var/lib/hadoop-hdfs/cache/mapred
Sada provjerite strukturu HDFS datoteke.
[root@node conf]# sudo -u hdfs hadoop fs -ls -R /
drwxrwxrwt - hdfs hadoop 0 2014-05-29 09:58 /tmp
drwxr-xr-x - hdfs hadoop 0 2014-05-29 09:59 /var
drwxr-xr-x - hdfs hadoop 0 2014-05-29 09:59 /var/lib
drwxr-xr-x - hdfs hadoop 0 2014-05-29 09:59 /var/lib/hadoop-hdfs
drwxr-xr-x - hdfs hadoop 0 2014-05-29 09:59 /var/lib/hadoop-hdfs/cache
drwxr-xr-x - mapred hadoop 0 2014-05-29 09:59 /var/lib/hadoop-hdfs/cache/mapred
drwxr-xr-x - mapred hadoop 0 2014-05-29 09:59 /var/lib/hadoop-hdfs/cache/mapred/mapred
drwxrwxrwt - mapred hadoop 0 2014-05-29 09:59 /var/lib/hadoop-hdfs/cache/mapred/mapred/staging
Nakon što pokrenete HDFS i kreirate '/tmp', ali prije nego što pokrenete JobTracker, molimo kreirajte HDFS direktorij naveden parametrom 'mapred.system.dir' (podrazumevano $ {hadoop.tmp .dir}/mapred/system i promijenite vlasnika u mapred.
[root@master conf]# sudo -u hdfs hadoop fs -mkdir /tmp/mapred/system
[root@master conf]# sudo -u hdfs hadoop fs -chown mapred:hadoop /tmp/mapred/system
Korak 12: Pokrenite MapReduce
Za pokretanje MapReduce : pokrenite TT i JT usluge.
Na svakom TaskTracker sistemu
[root@node conf]# service hadoop-0.20-mapreduce-tasktracker start
Starting Tasktracker: [ OK ]
starting tasktracker, logging to /var/log/hadoop-0.20-mapreduce/hadoop-hadoop-tasktracker-node.out
Na JobTracker sistemu
[root@master conf]# service hadoop-0.20-mapreduce-jobtracker start
Starting Jobtracker: [ OK ]
starting jobtracker, logging to /var/log/hadoop-0.20-mapreduce/hadoop-hadoop-jobtracker-master.out
Zatim kreirajte kućni direktorij za svakog korisnika hadoop-a. preporučuje se da to uradite na NameNode; na primjer.
[root@master conf]# sudo -u hdfs hadoop fs -mkdir /user/<user>
[root@master conf]# sudo -u hdfs hadoop fs -chown <user> /user/<user>
Napomena: gdje je Linux korisničko ime svakog korisnika.
Alternativno, možete kreirati početni direktorij na sljedeći način.
[root@master conf]# sudo -u hdfs hadoop fs -mkdir /user/$USER
[root@master conf]# sudo -u hdfs hadoop fs -chown $USER /user/$USER
Korak 13: Otvorite JT, NN UI iz pretraživača
Otvorite svoj pretraživač i upišite url kao http://ip_address_of_namenode:50070 za pristup Namenode.
Otvorite drugu karticu u svom pretraživaču i upišite url kao http://ip_address_of_jobtracker:50030 da pristupite JobTrackeru.
Ova procedura je uspješno testirana na RHEL/CentOS 5.X/6.X. Molimo komentirajte ispod ako se suočite s bilo kakvim problemima s instalacijom, pomoći ću vam s rješenjima.