Į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.