I-install ang Hadoop Multinode Cluster gamit ang CDH4 sa RHEL/CentOS 6.5
Ang Hadoop usa ka open source programing framework nga gihimo sa apache aron maproseso ang dagkong datos. Gigamit niini ang HDFS (Hadoop Distributed File System) aron tipigan ang datos sa tanang datanodes sa cluster sa distributive nga paagi ug mapreduce nga modelo aron maproseso ang datos.
Ang Namenode (NN) kay master daemon nga nagkontrol sa HDFS ug Jobtracker (JT) kay master daemon para sa mapreduce nga makina.
Sa kini nga panudlo gigamit nako ang duha nga CentOS 6.3 VMs 'master' ug 'node' viz. (master ug node ang akong mga hostname). Ang 'master' IP mao ang 172.21.17.175 ug ang node IP mao ang '172.21.17.188'. Ang mosunod nga mga instruksyon magamit usab sa RHEL/CentOS 6.x nga mga bersyon.
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
Siguruha una nga ang tanan nga mga cluster host naa sa '/etc/hosts' file (sa matag node), kung wala kay DNS set up.
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
Pag-instalar sa Hadoop Multinode Cluster sa CentOS
Gigamit namo ang opisyal nga CDH repository aron i-install ang CDH4 sa tanang mga host (Master ug Node) sa usa ka cluster.
Lakaw ngadto sa opisyal nga pahina sa pag-download sa CDH ug kuhaa ang bersyon sa CDH4 (ie 4.6) o mahimo nimong gamiton ang pagsunod sa wget command aron i-download ang repository ug i-install kini.
# 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
Sa dili pa i-install ang Hadoop Multinode Cluster, idugang ang Cloudera Public GPG Key sa imong repository pinaagi sa pagpadagan sa usa sa mosunod nga command sumala sa imong system architecture.
## 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
Sunod, padagana ang mosunod nga sugo aron i-install ug i-setup ang JobTracker ug NameNode sa Master server.
yum clean all yum install hadoop-0.20-mapreduce-jobtracker
yum clean all yum install hadoop-hdfs-namenode
Pag-usab, padagana ang mosunod nga mga sugo sa Master server aron ma-setup ang secondary name node.
yum clean all yum install hadoop-hdfs-secondarynam
Sunod, i-setup ang tasktracker & datanode sa tanang cluster hosts (Node) gawas sa JobTracker, NameNode, ug Secondary (o Standby) NameNode hosts (sa node niini nga kaso).
yum clean all yum install hadoop-0.20-mapreduce-tasktracker hadoop-hdfs-datanode
Mahimo nimong i-install ang kliyente sa Hadoop sa usa ka bulag nga makina (sa kini nga kaso gi-install ko kini sa datanode mahimo nimo kini i-install sa bisan unsang makina).
yum install hadoop-client
Karon kung nahuman na kita sa mga lakang sa ibabaw, magpadayon kita sa pag-deploy sa hdfs (nga buhaton sa tanan nga mga node).
Kopyaha ang default configuration ngadto sa /etc/hadoop directory ( sa matag node sa cluster ).
cp -r /etc/hadoop/conf.dist /etc/hadoop/conf.my_cluster
cp -r /etc/hadoop/conf.dist /etc/hadoop/conf.my_cluster
Gamita ang mga alternatibo nga sugo aron itakda ang imong custom nga direktoryo, sama sa mosunod (sa matag node sa 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
Karon ablihi ang 'core-site.xml' nga file ug i-update ang fs.defaultFS sa matag node sa 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>
Sunod nga update dfs.permissions.superusergroup sa hdfs-site.xml sa matag node sa 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>
Mubo nga sulat: Palihog siguroha nga, ang naa sa ibabaw nga configuration anaa sa tanang node (buhata sa usa ka node ug padagana ang scp aron kopyahon sa ubang mga node ).
I-update ang dfs.name.dir o dfs.namenode.name.dir sa 'hdfs-site.xml' sa NameNode (sa Master ug Node). Palihug usba ang bili ingon nga gipasiugda.
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>
Ipatuman ang mga sugo sa ubos aron makahimo og istruktura sa direktoryo ug pagdumala sa mga permiso sa user sa Namenode (Master) ug Datanode (Node) nga makina.
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
I-format ang Namenode (sa Master), pinaagi sa pag-isyu sa mosunod nga sugo.
sudo -u hdfs hdfs namenode -format
Idugang ang mosunod nga kabtangan sa hdfs-site.xml file ug ilisan ang bili sama sa gipakita sa Agalon.
<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>
Hinumdomi: Sa among kaso nga kantidad kinahanglan nga ip address sa master VM.
Karon atong i-deploy ang MRv1 ( Map-reduce version 1). Ablihi ang 'mapred-site.xml' file nga nagsunod sa mga kantidad sama sa gipakita.
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>
Sunod, kopyaha ang 'mapred-site.xml' nga file sa node machine gamit ang mosunod nga scp command.
scp /etc/hadoop/conf/mapred-site.xml node:/etc/hadoop/conf/ mapred-site.xml 100% 200 0.2KB/s 00:00
Karon i-configure ang lokal nga mga direktoryo sa pagtipig aron magamit sa MRv1 Daemons. Pag-abli pag-usab ang 'mapred-site.xml' nga file ug paghimo og mga pagbag-o sama sa gipakita sa ubos alang sa matag TaskTracker.
<property> Â <name>mapred.local.dir</name> Â <value>/data/1/mapred/local,/data/2/mapred/local,/data/3/mapred/local</value> </property>
Human sa pagpiho niini nga mga direktoryo sa 'mapred-site.xml' nga payl, kinahanglan nimong himoon ang mga direktoryo ug i-assign ang hustong permiso sa file ngadto kanila sa matag node sa imong cluster.
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
Karon padagana ang mosunod nga sugo aron masugdan ang HDFS sa matag node sa cluster.
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
Kinahanglan nga maghimo /tmp nga adunay husto nga pagtugot sama sa gihisgutan sa ubos.
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
Karon pamatud-i ang istruktura sa HDFS File.
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
Human nimo sugdan ang HDFS ug paghimo og '/tmp', apan sa dili ka pa magsugod sa JobTracker palihog paghimo sa direktoryo sa HDFS nga gipiho sa parameter nga 'mapred.system.dir' (sa default $ {hadoop.tmp.dir}/mapred/system ug ilisan ang tag-iya sa mapa.
sudo -u hdfs hadoop fs -mkdir /tmp/mapred/system sudo -u hdfs hadoop fs -chown mapred:hadoop /tmp/mapred/system
Sa pagsugod sa MapReduce : palihog sugdi ang mga serbisyo sa TT ug JT.
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
Sunod, paghimo usa ka direktoryo sa balay alang sa matag tiggamit sa hadoop. girekomendar nga buhaton nimo kini sa NameNode; pananglitan.
sudo -u hdfs hadoop fs -mkdir /user/<user> sudo -u hdfs hadoop fs -chown <user> /user/<user>
Pahinumdom: diin ang mao ang Linux username sa matag user.
Sa laing paagi, mahimo nimong buhaton ang direktoryo sa balay sama sa mosunod.
sudo -u hdfs hadoop fs -mkdir /user/$USER sudo -u hdfs hadoop fs -chown $USER /user/$USER
Ablihi ang imong browser ug i-type ang url nga http://ip_address_of_namenode:50070 para ma-access ang Namenode.
Ablihi ang laing tab sa imong browser ug i-type ang url nga http://ip_address_of_jobtracker:50030 para ma-access ang JobTracker.
Kini nga pamaagi malampuson nga gisulayan sa RHEL/CentOS 5.X/6.X. Palihug pagkomento sa ubos kung nag-atubang ka sa bisan unsang mga isyu sa pag-install, tabangan ko ikaw sa mga solusyon.