ຕິດຕັ້ງ Hadoop Multinode Cluster ໂດຍໃຊ້ CDH4 ໃນ RHEL/CentOS 6.5
Hadoop ແມ່ນໂຄງຮ່າງການຂຽນໂປແກຼມເປີດທີ່ພັດທະນາໂດຍ apache ເພື່ອປະມວນຜົນຂໍ້ມູນໃຫຍ່. ມັນໃຊ້ HDFS (ລະບົບເອກະສານແຈກຢາຍແຈກຢາຍເອກະສານ Hadoop) ເພື່ອເກັບຂໍ້ມູນທົ່ວທຸກຂໍ້ມູນໃນກຸ່ມທີ່ເປັນຮູບແບບແຈກຢາຍແລະຮູບແບບ mapreduce ເພື່ອປະມວນຜົນຂໍ້ມູນ.
Namenode (NN) ແມ່ນ daemon ຕົ້ນສະບັບທີ່ຄວບຄຸມ HDFS ແລະ Jobtracker (JT) ແມ່ນ daemon ຕົ້ນສະບັບສໍາລັບເຄື່ອງຈັກ mapreduce.
ໃນບົດແນະ ນຳ ນີ້ຂ້ອຍໃຊ້ສອງ CentOS 6.3 VMs 'master' ແລະ 'node' viz. (ຕົ້ນສະບັບແລະ node ແມ່ນ hostnames ຂອງຂ້ອຍ). IP ຕົ້ນສະບັບແມ່ນ 172.21.17.175 ແລະ IP node ແມ່ນ '172.21.17.188'. ຄຳ ແນະ ນຳ ຕໍ່ໄປນີ້ຍັງເຮັດວຽກກ່ຽວກັບລຸ້ນ RHEL/CentOS 6.x.
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
ທຳ ອິດໃຫ້ແນ່ໃຈວ່າບັນດາກຸ່ມໂຮມທັງ ໝົດ ແມ່ນຢູ່ໃນເອກະສານ ‘/ etc/hosts’ (ຢູ່ໃນແຕ່ລະຂໍ້), ຖ້າທ່ານບໍ່ໄດ້ຕັ້ງ 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 Multinode ໃນ CentOS
ພວກເຮົາໃຊ້ຫໍສະ ໝຸດ CDH ຢ່າງເປັນທາງການເພື່ອຕິດຕັ້ງ CDH4 ໃນທຸກໂຮດ (Master ແລະ Node) ໃນກຸ່ມ.
ໄປທີ່ ໜ້າ ດາວໂຫລດ CDH ຢ່າງເປັນທາງການແລ້ວຈັບເອົາ CDH4 (i.e. 4.6) ຮຸ່ນຫຼືທ່ານສາມາດໃຊ້ ຄຳ ສັ່ງ wget ຕໍ່ໄປນີ້ເພື່ອດາວໂຫລດຫໍສະມຸດແລະຕິດຕັ້ງມັນ.
# 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
ກ່ອນທີ່ຈະຕິດຕັ້ງ Hadoop Multinode Cluster, ເພີ່ມ Cloudera Public GPG Key ໃສ່ບ່ອນເກັບຂໍ້ມູນຂອງທ່ານໂດຍການເຮັດວຽກ ໜຶ່ງ ໃນ ຄຳ ສັ່ງຕໍ່ໄປນີ້ອີງຕາມສະຖາປັດຕະຍະ ກຳ ຂອງລະບົບຂອງທ່ານ.
## 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
ຕໍ່ໄປ, ດຳ ເນີນການ ຄຳ ສັ່ງຕໍ່ໄປນີ້ເພື່ອຕິດຕັ້ງແລະຕັ້ງ JobTracker ແລະ NameNode ເທິງ Master server.
yum clean all yum install hadoop-0.20-mapreduce-jobtracker
yum clean all yum install hadoop-hdfs-namenode
ອີກເທື່ອຫນຶ່ງ, ດໍາເນີນການຄໍາສັ່ງຕໍ່ໄປນີ້ໃນເຄື່ອງແມ່ຂ່າຍ Master ເພື່ອຕັ້ງ node ຊື່ມັດທະຍົມ.
yum clean all yum install hadoop-hdfs-secondarynam
ຕໍ່ໄປ, ຕັ້ງຄ່າ tasktracker & datanode ໃສ່ທຸກໂຮດ cluster (Node) ຍົກເວັ້ນ JobTracker, NameNode, ແລະ Secondary (ຫຼື Standby) ຊື່ NameNode (ຢູ່ໃນ node ໃນກໍລະນີນີ້).
yum clean all yum install hadoop-0.20-mapreduce-tasktracker hadoop-hdfs-datanode
ທ່ານສາມາດຕິດຕັ້ງລູກຄ້າ Hadoop ໃນເຄື່ອງແຍກຕ່າງຫາກ (ໃນກໍລະນີນີ້ຂ້ອຍໄດ້ຕິດຕັ້ງມັນຢູ່ໃນ datanode ທ່ານສາມາດຕິດຕັ້ງມັນຢູ່ໃນເຄື່ອງໃດກໍ່ໄດ້).
yum install hadoop-client
ຕອນນີ້ຖ້າພວກເຮົາເຮັດກັບຂັ້ນຕອນຂ້າງເທິງນີ້ໃຫ້ກ້າວໄປຂ້າງ ໜ້າ ເພື່ອ ນຳ ໃຊ້ hdfs (ເພື່ອເຮັດທຸກຂໍ້).
ສຳ ເນົາການຕັ້ງຄ່າເລີ່ມຕົ້ນໃສ່ໃນລະບົບ /etc/hadoop (ໃນແຕ່ລະຂໍ້ໃນກຸ່ມ).
cp -r /etc/hadoop/conf.dist /etc/hadoop/conf.my_cluster
cp -r /etc/hadoop/conf.dist /etc/hadoop/conf.my_cluster
ໃຊ້ ຄຳ ສັ່ງທາງເລືອກເພື່ອ ກຳ ນົດໄດເລກະທໍລີທີ່ ກຳ ຫນົດເອງ, ດັ່ງຕໍ່ໄປນີ້ (ໃນແຕ່ລະ node ໃນ 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
ຕອນນີ້ເປີດ 'core-site.xml' ແຟ້ມແລະອັບເດດ“ 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>
ການປັບປຸງຕໍ່ໄປ“ dfs.permissions.superusergroup” ໃນ hdfs-site.xml ໃນແຕ່ລະຂໍ້ໃນກຸ່ມ.
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>
ໝາຍ ເຫດ: ກະລຸນາກວດສອບໃຫ້ແນ່ໃຈວ່າ, ການຕັ້ງຄ່າຂ້າງເທິງນີ້ແມ່ນມີຢູ່ເທິງທຸກໆ node (ເຮັດຢູ່ເທິງ node ດຽວແລະ run scp ເພື່ອ copy ໃສ່ສ່ວນທີ່ເຫຼືອຂອງ node).
ປັບປຸງ“ dfs.name.dir ຫຼື dfs.namenode.name.dir” ໃນ 'hdfs-site.xml' ໃນ NameNode (ໃນ Master ແລະ Node). ກະລຸນາປ່ຽນຄ່າຕາມທີ່ໄດ້ສະແດງ.
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>
ປະຕິບັດຄໍາສັ່ງຂ້າງລຸ່ມນີ້ເພື່ອສ້າງໂຄງສ້າງໄດເລກະທໍລີແລະຈັດການສິດຂອງຜູ້ໃຊ້ໃນເຄື່ອງ Namenode (Master) ແລະ 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
ຈັດຮູບແບບ Namenode (ຕາມ Master) ໂດຍອອກ ຄຳ ສັ່ງຕໍ່ໄປນີ້.
sudo -u hdfs hdfs namenode -format
ຕື່ມຄຸນສົມບັດດັ່ງຕໍ່ໄປນີ້ໃສ່ແຟ້ມ hdfs-site.xml ແລະປ່ຽນມູນຄ່າຕາມທີ່ສະແດງໃນ 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>
ຫມາຍເຫດ: ໃນກໍລະນີຂອງພວກເຮົາມູນຄ່າຄວນຈະເປັນທີ່ຢູ່ ip ຂອງແມ່ບົດ VM.
ດຽວນີ້ໃຫ້ ນຳ ໃຊ້ MRv1 (ແຜນທີ່ຫຼຸດລົງລຸ້ນ 1). ເປີດ 'mapred-site.xml' ແຟ້ມຄ່າຕາມຄ່າຕາມທີ່ສະແດງໄວ້.
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>
ຕໍ່ໄປ, ສຳ ເນົາເອກະສານ ‘mapred-site.xml’ ໃສ່ເຄື່ອງ node ໂດຍໃຊ້ ຄຳ ສັ່ງ scp ຕໍ່ໄປນີ້.
scp /etc/hadoop/conf/mapred-site.xml node:/etc/hadoop/conf/ mapred-site.xml 100% 200 0.2KB/s 00:00
ດຽວນີ້ ກຳ ນົດການ ນຳ ໃຊ້ບ່ອນເກັບຂໍ້ມູນໃນທ້ອງຖິ່ນເພື່ອໃຊ້ໂດຍ MRv1 Daemons. ເປີດເອກະສານ ‘mapred-site.xml’ ອີກຄັ້ງແລະປ່ຽນແປງຕາມທີ່ສະແດງຢູ່ດ້ານລຸ່ມ ສຳ ລັບແຕ່ລະ TaskTracker.
<property> Â <name>mapred.local.dir</name> Â <value>/data/1/mapred/local,/data/2/mapred/local,/data/3/mapred/local</value> </property>
ຫຼັງຈາກການ ກຳ ນົດທິດທາງເຫຼົ່ານີ້ໃນເອກະສານ ‘mapred-site.xml’, ທ່ານຕ້ອງສ້າງບັນດາໄດເລກະທໍລີແລະແຕ່ງຕັ້ງເອກະສານອະນຸຍາດທີ່ຖືກຕ້ອງໃຫ້ເຂົາເຈົ້າໃນແຕ່ລະ node ໃນກຸ່ມຂອງທ່ານ.
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
ຕອນນີ້ ດຳ ເນີນການ ຄຳ ສັ່ງຕໍ່ໄປນີ້ເພື່ອເລີ່ມຕົ້ນ HDFS ໃນທຸກໆ node ໃນ 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
ມັນຈໍາເປັນຕ້ອງສ້າງ/tmp ດ້ວຍສິດທີ່ຖືກຕ້ອງຕາມທີ່ໄດ້ກ່າວມາຂ້າງລຸ່ມນີ້.
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
ຕອນນີ້ພິສູດໂຄງສ້າງ 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
ຫຼັງຈາກທີ່ທ່ານເລີ່ມຕົ້ນ HDFS ແລະສ້າງ '/ tmp', ແຕ່ກ່ອນທີ່ທ່ານຈະເລີ່ມ JobTracker ກະລຸນາສ້າງໄດເລກະທໍລີ HDFS ທີ່ລະບຸໂດຍພາລາມິເຕີ 'mapred.system.dir' (ໂດຍຄ່າເລີ່ມຕົ້ນ & # 36 {hadoop.tmp.dir}/mapred/system ແລະປ່ຽນເຈົ້າຂອງໄປເປັນແຜນທີ່.
sudo -u hdfs hadoop fs -mkdir /tmp/mapred/system sudo -u hdfs hadoop fs -chown mapred:hadoop /tmp/mapred/system
ເພື່ອເລີ່ມຕົ້ນ MapReduce: ກະລຸນາເລີ່ມຕົ້ນການບໍລິການ TT ແລະ 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
ຕໍ່ໄປ, ສ້າງໄດເລກະທໍລີຢູ່ເຮືອນ ສຳ ລັບແຕ່ລະຄົນທີ່ໃຊ້ hadoop. ແນະ ນຳ ໃຫ້ທ່ານເຮັດໃນ NameNode; ຍົກຕົວຢ່າງ.
sudo -u hdfs hadoop fs -mkdir /user/<user> sudo -u hdfs hadoop fs -chown <user> /user/<user>
ໝາຍ ເຫດ: ບ່ອນທີ່ ແມ່ນຊື່ຜູ້ໃຊ້ Linux ຂອງແຕ່ລະຜູ້ໃຊ້.
ອີກທາງເລືອກ ໜຶ່ງ, ທ່ານສາມາດຮວບຮວມໄດເລກະທໍລີບ້ານດັ່ງຕໍ່ໄປນີ້.
sudo -u hdfs hadoop fs -mkdir /user/$USER sudo -u hdfs hadoop fs -chown $USER /user/$USER
ເປີດ browser ຂອງທ່ານແລະພິມ url ເປັນ http:// ip_address_of_namenode: 50070 ເພື່ອເຂົ້າຫາ Namenode.
ເປີດແທັບອື່ນໃນ browser ຂອງທ່ານແລະພິມ url ທີ່ http:// ip_address_of_jobtracker: 50030 ເພື່ອເຂົ້າຫາ JobTracker.
ຂັ້ນຕອນນີ້ໄດ້ຖືກທົດສອບຢ່າງ ສຳ ເລັດຜົນໃນ RHEL/CentOS 5.X/6.X. ກະລຸນາໃຫ້ ຄຳ ເຫັນຂ້າງລຸ່ມນີ້ຖ້າທ່ານປະສົບບັນຫາໃດໆກ່ຽວກັບການຕິດຕັ້ງ, ຂ້າພະເຈົ້າຈະຊ່ວຍທ່ານແກ້ໄຂບັນຫາ.