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.