Įdiekite „Hadoop Multinode Cluster“ naudodami CDH4 RHEL/CentOS 6.5
Hadoop yra atvirojo kodo programavimo sistema, sukurta apache, skirta apdoroti didelius duomenis. Jis naudoja HDFS (Hadoop paskirstytoji failų sistema), kad duomenims saugoti visuose klasterio duomenų mazguose, o duomenims apdoroti - sumažinti modelį.
Namenode (NN) yra pagrindinis demonas, valdantis HDFS ir Jobtracker (JT). ) yra pagrindinis mapreduce variklio demonas.
Reikalavimai
Šioje mokymo programoje naudoju dvi CentOS 6.3 VM „pagrindinis“ ir „mazgas“, ty. (pagrindinis ir mazgas yra mano pagrindinio kompiuterio pavadinimai). Pagrindinis IP yra 172.21.17.175, o mazgo IP yra 172.21.17.188. Šios instrukcijos taip pat veikia RHEL/CentOS 6.x versijose.
Apie meistrą
[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
Ant mazgo
[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
Pirmiausia įsitikinkite, kad visos klasterio prieglobos yra faile „/etc/hosts“ (kiekviename mazge), jei nesate nustatę DNS.
Apie meistrą
[root@master ~]# cat /etc/hosts
172.21.17.175 master
172.21.17.188 node
Ant mazgo
[root@node ~]# cat /etc/hosts
172.21.17.197 qabox
172.21.17.176 ansible-ground
„Hadoop Multinode Cluster“ diegimas „CentOS“.
Naudojame oficialią CDH saugyklą, kad įdiegtume CDH4 visuose grupės pagrindiniuose kompiuteriuose (pagrindiniame ir mazge).
1 veiksmas: atsisiųskite diegimo CDH saugyklą
Eikite į oficialų CDH atsisiuntimo puslapį ir paimkite CDH4 (t. y. 4.6) versiją arba galite naudoti šią komandą wget, kad atsisiųstumėte saugyklą ir ją įdiegtumėte.
32 bitų RHEL/CentOS
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
RHEL/CentOS 64 bitų
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
Prieš diegdami Hadoop Multinode Cluster, pridėkite Cloudera viešąjį GPG raktą prie savo saugyklos vykdydami vieną iš šių komandų pagal savo sistemos architektūrą.
## 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
2 veiksmas: nustatykite „JobTracker“ ir „NameNode“.
Tada paleiskite šią komandą, kad įdiegtumėte ir nustatytumėte „JobTracker“ ir „NameNode“ pagrindiniame serveryje.
[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
3 veiksmas: nustatykite antrinio pavadinimo mazgą
Dar kartą paleiskite šias komandas pagrindiniame serveryje, kad nustatytumėte antrinio pavadinimo mazgą.
[root@master ~]# yum clean all
[root@master ~]# yum install hadoop-hdfs-secondarynam
4 veiksmas: nustatykite „Tasktracker“ ir „Datanode“.
Tada nustatykite užduočių sekimo priemonę ir duomenų mazgą visuose klasterio pagrindiniuose kompiuteriuose (mazgas), išskyrus JobTracker, NameNode ir antrinius (arba budėjimo) NameNode pagrindinius kompiuterius (šiuo atveju mazge).
[root@node ~]# yum clean all
[root@node ~]# yum install hadoop-0.20-mapreduce-tasktracker hadoop-hdfs-datanode
5 veiksmas: nustatykite „Hadoop“ klientą
„Hadoop“ klientą galite įdiegti atskirame kompiuteryje (šiuo atveju aš jį įdiegiau „datanode“, galite įdiegti bet kuriame kompiuteryje).
[root@node ~]# yum install hadoop-client
6 veiksmas: įdiekite HDFS mazguose
Dabar, jei atliksime aukščiau nurodytus veiksmus, pereikime prie hdfs diegimo (reikia atlikti visuose mazguose).
Nukopijuokite numatytąją konfigūraciją į /etc/hadoop katalogą ( kiekviename grupės mazge ).
[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
Naudokite komandą alternatives, kad nustatytumėte tinkintą katalogą, kaip nurodyta toliau ( kiekviename grupės mazge ).
[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
7 veiksmas: konfigūracijos failų tinkinimas
Dabar atidarykite failą core-site.xml ir atnaujinkite fs.defaultFS kiekviename grupės mazge.
[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>
Kitas atnaujinimas „dfs.permissions.superusergroup“, esantis hdfs-site.xml kiekviename grupės mazge.
[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>
Pastaba: įsitikinkite, kad pirmiau nurodyta konfigūracija yra visuose mazguose (atlikite viename mazge ir paleiskite scp, kad nukopijuotumėte mazgų).
8 veiksmas: vietinių saugyklų katalogų konfigūravimas
Atnaujinkite „dfs.name.dir“ arba „dfs.namenode.name.dir“ „hdfs-site.xml“ NameNode (pagrindiniame ir mazge). Pakeiskite reikšmę, kaip paryškinta.
[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>
9 veiksmas: sukurkite katalogus ir tvarkykite leidimus
Vykdykite toliau pateiktas komandas, kad sukurtumėte katalogų struktūrą ir valdytumėte vartotojo teises Namenode (Master) ir Datanode (Node) kompiuteryje.
[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
Suformatuokite Namenode (pagrindinėje programoje), išleisdami šią komandą.
[root@master conf]# sudo -u hdfs hdfs namenode -format
10 veiksmas: antrinio vardo mazgo konfigūravimas
Pridėkite šią ypatybę prie failo hdfs-site.xml ir pakeiskite vertę, kaip parodyta pagrindiniame puslapyje.
<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>
Pastaba: mūsų atveju vertė turėtų būti pagrindinės VM IP adresas.
Dabar įdiegkime MRv1 (Map-reduce 1 versija). Atidarykite failą mapred-site.xml, vadovaudamiesi reikšmėmis, kaip parodyta.
[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>
Tada nukopijuokite failą mapred-site.xml į mazgo įrenginį naudodami šią scp komandą.
[root@master conf]# scp /etc/hadoop/conf/mapred-site.xml node:/etc/hadoop/conf/
mapred-site.xml 100% 200 0.2KB/s 00:00
Dabar sukonfigūruokite vietinius saugojimo katalogus, kuriuos naudotų MRv1 demonai. Dar kartą atidarykite failą „mapred-site.xml“ ir atlikite kiekvieno „TaskTracker“ pakeitimus, kaip parodyta toliau.
<property>
 <name>mapred.local.dir</name>
 <value>/data/1/mapred/local,/data/2/mapred/local,/data/3/mapred/local</value>
</property>
Nurodę šiuos katalogus faile mapred-site.xml, turite sukurti katalogus ir kiekvienam grupės mazge priskirti jiems teisingus failų leidimus.
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
10 veiksmas: paleiskite HDFS
Dabar paleiskite šią komandą, kad paleistumėte HDFS kiekviename klasterio mazge.
[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
11 veiksmas: sukurkite HDFS /tmp ir MapReduce /var katalogus
Būtina sukurti /tmp su tinkamais leidimais, tiksliai kaip nurodyta toliau.
[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
Dabar patikrinkite HDFS failo struktūrą.
[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
Paleidę HDFS ir sukūrę „/tmp“, bet prieš paleisdami JobTracker sukurkite HDFS katalogą, nurodytą parametru „mapred.system.dir“ (pagal numatytuosius nustatymus $ {hadoop.tmp .dir}/mapred/system ir pakeiskite savininką į 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
12 veiksmas: paleiskite „MapReduce“.
Norėdami paleisti „MapReduce“: paleiskite TT ir JT paslaugas.
Kiekvienoje TaskTracker sistemoje
[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
„JobTracker“ sistemoje
[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
Tada sukurkite kiekvieno „hadoop“ vartotojo namų katalogą. rekomenduojama tai padaryti NameNode; pavyzdžiui.
[root@master conf]# sudo -u hdfs hadoop fs -mkdir /user/<user>
[root@master conf]# sudo -u hdfs hadoop fs -chown <user> /user/<user>
Pastaba: kur yra kiekvieno vartotojo Linux naudotojo vardas.
Arba galite sukurti namų katalogą taip.
[root@master conf]# sudo -u hdfs hadoop fs -mkdir /user/$USER
[root@master conf]# sudo -u hdfs hadoop fs -chown $USER /user/$USER
13 veiksmas: atidarykite JT, NN vartotojo sąsają iš naršyklės
Atidarykite naršyklę ir įveskite URL kaip http://ip_namenode:50070, kad pasiektumėte Namenode.
Atidarykite kitą naršyklės skirtuką ir įveskite URL kaip http://ip_jobtracker_address_address:50030, kad pasiektumėte JobTracker.
Ši procedūra sėkmingai išbandyta naudojant RHEL/CentOS 5.X/6.X. Komentuokite toliau, jei kyla problemų dėl diegimo, aš padėsiu jums išspręsti.