Installéiert Hadoop Multinode Cluster mat CDH4 an RHEL/CentOS 6.5
Hadoop ass en Open Source Programméiere Kader entwéckelt vun Apache fir grouss Daten ze veraarbecht. Et benotzt HDFS (Hadoop Distributed File System) fir d'Donnéeën iwwer all d'Datanoden am Cluster op eng distributiv Manéier ze späicheren an de Modell ze reduzéieren fir d'Donnéeën ze veraarbecht.
Namenode (NN) ass e Master Daemon deen HDFS kontrolléiert an Jobtracker (JT) ass Master Daemon fir Mapreduce Engine.
An dësem Tutorial benotzen ech zwee CentOS 6.3 VMs 'Master' an 'Node' nämlech. (Meeschter an Node si meng Hostnumm). De 'Master' IP ass 172.21.17.175 an den Node IP ass '172.21.17.188'. Déi folgend Instruktioune funktionnéieren och op RHEL/CentOS 6.x Versiounen.
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
Gitt als éischt sécher datt all Clusterhost do sinn an der '/etc/hosts' Datei (op all Node), wann Dir keen DNS ageriicht hutt.
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 Multinode Cluster an CentOS installéieren
Mir benotzen offiziell CDH Repository fir CDH4 op all Hosten (Master an Node) an engem Cluster z'installéieren.
Gitt op déi offiziell CDH Download Säit a gräift d'CDH4 (dh 4.6) Versioun oder Dir kënnt de folgende wget Kommando benotze fir de Repository erofzelueden an z'installéieren.
# 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
Ier Dir Hadoop Multinode Cluster installéiert, füügt de Cloudera Public GPG Key an Ärem Repository un andeems Dir ee vun de folgende Kommandoen laut Ärem Systemarchitektur ausféiert.
## 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
Als nächst, fuert de folgende Kommando fir JobTracker an NameNode op Master Server z'installéieren an ze konfiguréieren.
yum clean all yum install hadoop-0.20-mapreduce-jobtracker
yum clean all yum install hadoop-hdfs-namenode
Nach eng Kéier, lafen déi folgend Kommandoen um Master Server fir de Secondaire Numm Node opzestellen.
yum clean all yum install hadoop-hdfs-secondarynam
Als nächst, setup Tasktracker & Datanode op all Clusterhost (Node) ausser den JobTracker, NameNode, a Secondary (oder Standby) NameNode Hosts (op Node an dësem Fall).
yum clean all yum install hadoop-0.20-mapreduce-tasktracker hadoop-hdfs-datanode
Dir kënnt Hadoop Client op enger separater Maschinn installéieren (an dësem Fall hunn ech et op datanode installéiert, Dir kënnt et op all Maschinn installéieren).
yum install hadoop-client
Elo wa mir mat uewe Schrëtt fäerdeg sinn, loosst eis virgoen fir hdfs z'installéieren (op all Noden ze maachen).
Kopéiert d'Standardkonfiguratioun an den /etc/hadoop Verzeichnis (op all Node am Cluster).
cp -r /etc/hadoop/conf.dist /etc/hadoop/conf.my_cluster
cp -r /etc/hadoop/conf.dist /etc/hadoop/conf.my_cluster
Benotzt Alternativ Kommando fir Äre personaliséierte Verzeechnes ze setzen, wéi follegt (op all Node am 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
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
Elo öffnen 'core-site.xml' Datei an update fs.defaultFS op all Node am Cluster.
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ächst Update dfs.permissions.superusergroup an hdfs-site.xml op all Node am Cluster.
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>
Notiz: Gitt sécher datt déi uewe genannte Konfiguratioun op all Noden präsent ass (maacht op engem Node a lafen scp fir op de Rescht vun den Noden ze kopéieren).
Update dfs.name.dir oder dfs.namenode.name.dir an 'hdfs-site.xml' op der NameNode (op Master an Node). Ännert w.e.g. de Wäert wéi markéiert.
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>
Fëllt ënnen Kommandoen aus fir Verzeichnisstruktur ze kreéieren & Benotzerpermissiounen op Namenode (Master) an Datanode (Node) Maschinn ze managen.
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éiert den Namenode (op Master), andeems Dir de folgende Kommando ausgëtt.
sudo -u hdfs hdfs namenode -format
Füügt déi folgend Eegeschafte op d'hdfs-site.xml Datei an ersetzt de Wäert wéi op Master gewisen.
<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>
Notiz: An eisem Fall sollt de Wäert d'IP Adress vum Master VM sinn.
Loosst eis elo MRv1 ofsetzen (Kaart-reduzéieren Versioun 1). Open 'mapred-site.xml' Datei folgend Wäerter wéi gewisen.
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>
Nächst, kopéiert 'mapred-site.xml'Datei op Node Maschinn mat dem folgenden scp Kommando.
scp /etc/hadoop/conf/mapred-site.xml node:/etc/hadoop/conf/ mapred-site.xml 100% 200 0.2KB/s 00:00
Elo konfiguréieren lokal Späicherverzeichnisser fir vun MRv1 Daemons ze benotzen. Maacht erëm 'mapred-site.xml'Datei op a maacht Ännerungen wéi hei ënnendrënner fir all TaskTracker.
<property> Â <name>mapred.local.dir</name> Â <value>/data/1/mapred/local,/data/2/mapred/local,/data/3/mapred/local</value> </property>
Nodeems Dir dës Verzeichnisser an der 'mapred-site.xml' Datei spezifizéiert hutt, musst Dir d'Verzeichnisser erstellen an déi richteg Dateierrechter op all Node an Ärem Cluster zouginn.
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
Fuert elo de folgende Kommando fir HDFS op all Node am Cluster ze starten.
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
Et ass erfuerderlech fir/tmp mat passenden Permissiounen ze kreéieren genau wéi hei ënnendrënner.
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
Elo kontrolléiert d'HDFS Dateistruktur.
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
Nodeems Dir HDFS gestart hutt an '/tmp' erstellt, awer ier Dir den JobTracker ufänkt, erstellt w.e.g. den HDFS Verzeichnis, deen vum Parameter 'mapred.system.dir' spezifizéiert gëtt (par défaut $ {hadoop.tmp.dir}/mapred/system an änneren Besëtzer ze mapred.
sudo -u hdfs hadoop fs -mkdir /tmp/mapred/system sudo -u hdfs hadoop fs -chown mapred:hadoop /tmp/mapred/system
Fir MapReduce unzefänken: Start w.e.g. d'TT an JT Servicer.
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
Als nächst erstellt en Heemverzeechnes fir all hadoop Benotzer. et ass recommandéiert dat op NameNode ze maachen; zum Beispill.
sudo -u hdfs hadoop fs -mkdir /user/<user> sudo -u hdfs hadoop fs -chown <user> /user/<user>
Notiz: wou de Linux Benotzernumm vun all Benotzer ass.
Alternativ kënnt Dir den Heemverzeechnes erstellen wéi follegt.
sudo -u hdfs hadoop fs -mkdir /user/$USER sudo -u hdfs hadoop fs -chown $USER /user/$USER
Öffnen Äre Browser a gitt d'URL als http://ip_address_of_namenode:50070 fir Zougang zum Namenode.
Öffnen eng aner Tab an Ärem Browser a gitt d'URL als http://ip_address_of_jobtracker:50030 fir Zougang zu JobTracker.
Dës Prozedur gouf erfollegräich op RHEL/CentOS 5.X/6.X getest. Kommentéiert w.e.g. hei ënnen wann Dir Probleemer mat der Installatioun hutt, ech hëllefen Iech mat de Léisungen.