Instalējiet Hadoop Multinode Cluster, izmantojot CDH4, RHEL/CentOS 6.5


Hadoop ir atvērtā koda programmēšanas sistēma, kuru apache izstrādājusi, lai apstrādātu lielos datus. Tas izmanto HDFS (Hadoop Distributed File System), lai izplatīšanas veidā uzglabātu datus visos klastera datanodos un kartētu datu modeli datu apstrādei.

Namenode (NN) ir galvenais dēmons, kas kontrolē HDFS, un Jobtracker (JT) ir galvenais dēmons mapreduce dzinējam.

Šajā apmācībā es izmantoju divus CentOS 6.3 VM ‘master’ un ‘mezglu’, ti. (galvenais un mezgls ir mani resursdatora vārdi). ‘Master’ IP ir 172.21.17.175 un mezgla IP ir ‘172.21.17.188’. Šīs instrukcijas darbojas arī RHEL/CentOS 6.x versijās.

 hostname

master
 ifconfig|grep 'inet addr'|head -1

inet addr:172.21.17.175  Bcast:172.21.19.255  Mask:255.255.252.0
 hostname

node
 ifconfig|grep 'inet addr'|head -1

inet addr:172.21.17.188  Bcast:172.21.19.255  Mask:255.255.252.0

Vispirms pārliecinieties, vai visi klastera resursdatori atrodas failā ‘/ etc/hosts’ (katrā mezglā), ja neesat iestatījis DNS.

 cat /etc/hosts

172.21.17.175 master
172.21.17.188 node
 cat /etc/hosts

172.21.17.197 qabox
172.21.17.176 ansible-ground

Hadoop daudzkodu klastera instalēšana CentOS

Mēs izmantojam oficiālo CDH repozitoriju, lai CDH4 instalētu visos klastera resursdatoros (Master un Node).

Dodieties uz oficiālo CDH lejupielādes lapu un paņemiet CDH4 (t.i., 4.6) versiju, vai arī varat izmantot šo komandu wget, lai lejupielādētu krātuvi un instalētu to.

# 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
# 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

Pirms Hadoop daudzkodu klastera instalēšanas pievienojiet Cloudera publisko GPG atslēgu savai krātuvei, izpildot vienu no šīm komandām atbilstoši jūsu sistēmas arhitektūrai.

## 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

Pēc tam palaidiet šo komandu, lai MasterTerver instalētu un iestatītu JobTracker un NameNode.

 yum clean all 
 yum install hadoop-0.20-mapreduce-jobtracker
 yum clean all
 yum install hadoop-hdfs-namenode

Atkal izpildiet šīs komandas galvenajā serverī, lai iestatītu sekundārā nosaukuma mezglu.

 yum clean all 
 yum install hadoop-hdfs-secondarynam

Pēc tam iestatiet tasktracker un datanodu visos klastera resursdatoros (mezglā), izņemot JobTracker, NameNode un Secondary (vai Standby) NameNode resursdatorus (šajā gadījumā mezglā).

 yum clean all
 yum install hadoop-0.20-mapreduce-tasktracker hadoop-hdfs-datanode

Jūs varat instalēt Hadoop klientu atsevišķā mašīnā (šajā gadījumā es to esmu instalējis datanode, jūs varat to instalēt jebkurā mašīnā).

 yum install hadoop-client

Tagad, kad mēs esam paveikuši iepriekš minētās darbības, ejiet uz priekšu, lai izvietotu hdfs (jāveic visos mezglos).

Nokopējiet noklusējuma konfigurāciju direktorijā /etc/hadoop (katrā klastera mezglā).

 cp -r /etc/hadoop/conf.dist /etc/hadoop/conf.my_cluster
 cp -r /etc/hadoop/conf.dist /etc/hadoop/conf.my_cluster

Izmantojiet komandu alternatīvas, lai iestatītu pielāgoto direktoriju šādi (katrā klastera mezglā).

 alternatives --verbose --install /etc/hadoop/conf hadoop-conf /etc/hadoop/conf.my_cluster 50
reading /var/lib/alternatives/hadoop-conf

 alternatives --set hadoop-conf /etc/hadoop/conf.my_cluster
 alternatives --verbose --install /etc/hadoop/conf hadoop-conf /etc/hadoop/conf.my_cluster 50
reading /var/lib/alternatives/hadoop-conf

 alternatives --set hadoop-conf /etc/hadoop/conf.my_cluster

Tagad atveriet failu “core-site.xml” un katrā klastera mezglā atjauniniet “fs.defaultFS”.

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

Nākamais atjauninājums “dfs.permissions.superusergroup” hdfs-site.xml katrā klastera mezglā.

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

Piezīme. Lūdzu, pārliecinieties, vai iepriekšminētā konfigurācija ir pieejama visos mezglos (veiciet vienā mezglā un palaidiet scp, lai kopētu pārējos mezglos).

Atjauniniet “dfs.name.dir vai dfs.namenode.name.dir” sadaļā “hdfs-site.xml” NameNode (uz Master un Node). Lūdzu, mainiet vērtību, kā norādīts.

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

Izpildiet tālāk norādītās komandas, lai izveidotu direktoriju struktūru un pārvaldītu lietotāju atļaujas mašīnā Namenode (Master) un Datanode (Node).

 mkdir -p /data/1/dfs/nn /nfsmount/dfs/nn
 chmod 700 /data/1/dfs/nn /nfsmount/dfs/nn
  mkdir -p /data/1/dfs/dn /data/2/dfs/dn /data/3/dfs/dn /data/4/dfs/dn
  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

Formatējiet Namenode (Master), izdodot šādu komandu.

 sudo -u hdfs hdfs namenode -format

Pievienojiet šo rekvizītu failam hdfs-site.xml un aizstājiet vērtību, kā parādīts 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>

Piezīme: Mūsu gadījumā vērtībai vajadzētu būt galvenā VM ip adresei.

Tagad izvietosim MRv1 (1. kartes samazināšanas versija). Atveriet failu mapred-site.xml pēc šīm vērtībām, kā parādīts.

 cp hdfs-site.xml mapred-site.xml
 vi mapred-site.xml
 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>

Pēc tam nokopējiet failu mapred-site.xml uz mezglu mašīnu, izmantojot šādu komandu scp.

 scp /etc/hadoop/conf/mapred-site.xml node:/etc/hadoop/conf/
mapred-site.xml                                                                      100%  200     0.2KB/s   00:00

Tagad konfigurējiet vietējos krātuves direktorijus lietošanai MRv1 Daemons. Atkal atveriet failu mapred-site.xml un katram TaskTracker veiciet izmaiņas, kā parādīts zemāk.

<property>
 <name>mapred.local.dir</name>
 <value>/data/1/mapred/local,/data/2/mapred/local,/data/3/mapred/local</value>
</property>

Pēc šo direktoriju norādīšanas failā ‘mapred-site.xml’ jums jāizveido direktoriji un jāpiešķir tiem pareizās faila atļaujas katrā klastera mezglā.

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

Tagad palaidiet šo komandu, lai palaistu HDFS visos klastera mezglos.

 for x in `cd /etc/init.d ; ls hadoop-hdfs-*` ; do sudo service $x start ; done
 for x in `cd /etc/init.d ; ls hadoop-hdfs-*` ; do sudo service $x start ; done

Ir nepieciešams izveidot/tmp ar atbilstošām atļaujām tieši tā, kā minēts tālāk.

 sudo -u hdfs hadoop fs -mkdir /tmp
 sudo -u hdfs hadoop fs -chmod -R 1777 /tmp
 sudo -u hdfs hadoop fs -mkdir -p /var/lib/hadoop-hdfs/cache/mapred/mapred/staging
 sudo -u hdfs hadoop fs -chmod 1777 /var/lib/hadoop-hdfs/cache/mapred/mapred/staging
 sudo -u hdfs hadoop fs -chown -R mapred /var/lib/hadoop-hdfs/cache/mapred

Tagad pārbaudiet HDFS faila struktūru.

 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

Pēc HDFS palaišanas un “/ tmp” izveides, bet pirms JobTracker startēšanas, lūdzu, izveidojiet HDFS direktoriju, kas norādīta ar parametru “mapred.system.dir” (pēc noklusējuma & # 36 {hadoop.tmp.dir}/mapred/system un mainīt īpašnieku uz mapred.

 sudo -u hdfs hadoop fs -mkdir /tmp/mapred/system
 sudo -u hdfs hadoop fs -chown mapred:hadoop /tmp/mapred/system

Lai sāktu MapReduce: lūdzu, sāciet TT un JT pakalpojumus.

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

Pēc tam katram hadoop lietotājam izveidojiet mājas direktoriju. ieteicams to izdarīt vietnē NameNode; piemēram.

 sudo -u hdfs hadoop fs -mkdir  /user/<user>
 sudo -u hdfs hadoop fs -chown <user> /user/<user>

Piezīme: kur ir katra lietotāja Linux lietotājvārds.

Varat arī izveidot mājas direktoriju šādi.

 sudo -u hdfs hadoop fs -mkdir /user/$USER
 sudo -u hdfs hadoop fs -chown $USER /user/$USER

Atveriet pārlūkprogrammu un ierakstiet URL kā http:// ip_address_of_namenode: 50070, lai piekļūtu Namenode.

Pārlūkprogrammā atveriet citu cilni un ierakstiet URL kā http:// ip_address_of_jobtracker: 50030, lai piekļūtu JobTracker.

Šī procedūra ir veiksmīgi pārbaudīta RHEL/CentOS 5.X/6.X. Lūdzu, komentējiet tālāk, ja jums rodas kādas problēmas ar instalēšanu, es jums palīdzēsim risinājumus.