RHEL/CentOS 6.5-ൽ CDH4 ഉപയോഗിച്ച് ഹഡൂപ്പ് മൾട്ടിനോഡ് ക്ലസ്റ്റർ ഇൻസ്റ്റാൾ ചെയ്യുക
വലിയ ഡാറ്റ പ്രോസസ്സ് ചെയ്യുന്നതിനായി അപ്പാച്ചെ വികസിപ്പിച്ചെടുത്ത ഒരു ഓപ്പൺ സോഴ്സ് പ്രോഗ്രാമിംഗ് ചട്ടക്കൂടാണ് ഹഡൂപ്പ്. ക്ലസ്റ്ററിലെ എല്ലാ ഡാറ്റാനോഡുകളിലുമുള്ള ഡാറ്റ ഒരു ഡിസ്ട്രിബ്യൂട്ടീവ് രീതിയിൽ സംഭരിക്കാനും ഡാറ്റ പ്രോസസ്സ് ചെയ്യുന്നതിനുള്ള മോഡൽ മാപ്രഡ്യൂസ് ചെയ്യാനും ഇത് HDFS (ഹഡൂപ്പ് ഡിസ്ട്രിബ്യൂട്ടഡ് ഫയൽ സിസ്റ്റം) ഉപയോഗിക്കുന്നു.
നെയിംനോഡ് (NN) HDFS-നെ നിയന്ത്രിക്കുന്ന ഒരു മാസ്റ്റർ ഡെമൺ ആണ്, Mapreduce എഞ്ചിനുള്ള മാസ്റ്റർ ഡെമൺ ആണ് Jobtracker (JT).
ഈ ട്യൂട്ടോറിയലിൽ ഞാൻ രണ്ട് CentOS 6.3 VM 'മാസ്റ്റർ', 'നോഡ്' എന്നിവ ഉപയോഗിക്കുന്നു. (മാസ്റ്ററും നോഡും എന്റെ ഹോസ്റ്റ് നാമങ്ങളാണ്). ‘മാസ്റ്റർ’ ഐപി 172.21.17.175 ഉം നോഡ് ഐപി ‘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
നിങ്ങൾക്ക് DNS സജ്ജീകരിച്ചിട്ടില്ലെങ്കിൽ, എല്ലാ ക്ലസ്റ്റർ ഹോസ്റ്റുകളും '/etc/hosts' ഫയലിൽ (ഓരോ നോഡിലും) ഉണ്ടെന്ന് ആദ്യം ഉറപ്പാക്കുക.
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
CentOS-ൽ Hadoop മൾട്ടിനോഡ് ക്ലസ്റ്റർ ഇൻസ്റ്റാൾ ചെയ്യുന്നു
ഒരു ക്ലസ്റ്ററിലെ എല്ലാ ഹോസ്റ്റുകളിലും (മാസ്റ്ററും നോഡും) CDH4 ഇൻസ്റ്റാൾ ചെയ്യാൻ ഞങ്ങൾ ഔദ്യോഗിക CDH റിപ്പോസിറ്ററി ഉപയോഗിക്കുന്നു.
ഔദ്യോഗിക CDH ഡൗൺലോഡ് പേജിലേക്ക് പോയി CDH4 (അതായത് 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
ഹഡൂപ്പ് മൾട്ടിനോഡ് ക്ലസ്റ്റർ ഇൻസ്റ്റാൾ ചെയ്യുന്നതിനുമുമ്പ്, നിങ്ങളുടെ സിസ്റ്റം ആർക്കിടെക്ചർ അനുസരിച്ച് ഇനിപ്പറയുന്ന കമാൻഡുകളിലൊന്ന് പ്രവർത്തിപ്പിച്ച് ക്ലൗഡറ പബ്ലിക് ജിപിജി കീ നിങ്ങളുടെ റിപ്പോസിറ്ററിയിലേക്ക് ചേർക്കുക.
## 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
അടുത്തതായി, Master സെർവറിൽ JobTracker, NameNode എന്നിവ ഇൻസ്റ്റാൾ ചെയ്യാനും സജ്ജീകരിക്കാനും ഇനിപ്പറയുന്ന കമാൻഡ് പ്രവർത്തിപ്പിക്കുക.
yum clean all yum install hadoop-0.20-mapreduce-jobtracker
yum clean all yum install hadoop-hdfs-namenode
വീണ്ടും, സെക്കണ്ടറി നെയിം നോഡ് സജ്ജീകരിക്കുന്നതിന് മാസ്റ്റർ സെർവറിൽ ഇനിപ്പറയുന്ന കമാൻഡുകൾ പ്രവർത്തിപ്പിക്കുക.
yum clean all yum install hadoop-hdfs-secondarynam
അടുത്തതായി, ജോബ്ട്രാക്കർ, നെയിം നോഡ്, സെക്കൻഡറി (അല്ലെങ്കിൽ സ്റ്റാൻഡ്uബൈ) നെയിം നോഡ് ഹോസ്റ്റുകൾ എന്നിവ ഒഴികെയുള്ള എല്ലാ ക്ലസ്റ്റർ ഹോസ്റ്റുകളിലും (നോഡ്) ടാസ്uക്uട്രാക്കറും ഡാറ്റനോഡും സജ്ജീകരിക്കുക (ഈ സാഹചര്യത്തിൽ നോഡിൽ ).
yum clean all yum install hadoop-0.20-mapreduce-tasktracker hadoop-hdfs-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
ഇനിപ്പറയുന്ന രീതിയിൽ നിങ്ങളുടെ ഇഷ്uടാനുസൃത ഡയറക്uടറി സജ്ജീകരിക്കുന്നതിന് ഇതര കമാൻഡ് ഉപയോഗിക്കുക (ക്ലസ്റ്ററിലെ ഓരോ നോഡിലും).
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>
ക്ലസ്റ്ററിലെ ഓരോ നോഡിലും hdfs-site.xml-ൽ അടുത്തതായി “dfs.permissions.superusergroup” അപ്uഡേറ്റ് ചെയ്യുക.
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>
ശ്രദ്ധിക്കുക: മുകളിലുള്ള കോൺഫിഗറേഷൻ എല്ലാ നോഡുകളിലും ഉണ്ടെന്ന് ഉറപ്പാക്കുക (ഒരു നോഡിൽ ചെയ്യുക, ബാക്കിയുള്ള നോഡുകളിൽ പകർത്താൻ scp പ്രവർത്തിപ്പിക്കുക).
നെയിംനോഡിലെ (മാസ്റ്ററിലും നോഡിലും) 'hdfs-site.xml' എന്നതിൽ dfs.name.dir അല്ലെങ്കിൽ dfs.namenode.name.dir അപ്uഡേറ്റ് ചെയ്യുക. ഹൈലൈറ്റ് ചെയ്തതുപോലെ മൂല്യം മാറ്റുക.
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>
നെയിംനോഡ് (മാസ്റ്റർ), ഡാറ്റനോഡ് (നോഡ്) മെഷീനിൽ ഡയറക്uടറി ഘടന സൃഷ്uടിക്കുന്നതിനും ഉപയോക്തൃ അനുമതികൾ നിയന്ത്രിക്കുന്നതിനും താഴെയുള്ള കമാൻഡുകൾ എക്uസിക്യൂട്ട് ചെയ്യുക.
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
ഇനിപ്പറയുന്ന കമാൻഡ് നൽകി നെയിംനോഡ് ഫോർമാറ്റ് ചെയ്യുക (മാസ്റ്ററിൽ).
sudo -u hdfs hdfs namenode -format
ഇനിപ്പറയുന്ന പ്രോപ്പർട്ടി hdfs-site.xml ഫയലിലേക്ക് ചേർക്കുക, മാസ്റ്ററിൽ കാണിച്ചിരിക്കുന്നതുപോലെ മൂല്യം മാറ്റിസ്ഥാപിക്കുക.
<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>
ശ്രദ്ധിക്കുക: ഞങ്ങളുടെ കാര്യത്തിൽ മൂല്യം മാസ്റ്റർ വിഎമ്മിന്റെ ഐപി വിലാസമായിരിക്കണം.
ഇനി നമുക്ക് 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>
അടുത്തതായി, ഇനിപ്പറയുന്ന scp കമാൻഡ് ഉപയോഗിച്ച് 'mapred-site.xml' ഫയൽ നോഡ് മെഷീനിലേക്ക് പകർത്തുക.
scp /etc/hadoop/conf/mapred-site.xml node:/etc/hadoop/conf/ mapred-site.xml 100% 200 0.2KB/s 00:00
MRv1 ഡെമൺസ് ഉപയോഗിക്കുന്നതിനായി ഇപ്പോൾ ലോക്കൽ സ്റ്റോറേജ് ഡയറക്ടറികൾ കോൺഫിഗർ ചെയ്യുക. വീണ്ടും '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' ഫയലിൽ ഈ ഡയറക്uടറികൾ വ്യക്തമാക്കിയ ശേഷം, നിങ്ങൾ ഡയറക്ടറികൾ സൃഷ്uടിക്കുകയും നിങ്ങളുടെ ക്ലസ്റ്ററിലെ ഓരോ നോഡിലും അവയ്uക്ക് ശരിയായ ഫയൽ അനുമതികൾ നൽകുകയും വേണം.
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 ആരംഭിക്കാൻ താഴെ പറയുന്ന കമാൻഡ് പ്രവർത്തിപ്പിക്കുക.
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 ഫയൽ ഘടന പരിശോധിക്കുക.
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' സൃഷ്uടിച്ചതിന് ശേഷം, എന്നാൽ നിങ്ങൾ JobTracker ആരംഭിക്കുന്നതിന് മുമ്പ് ദയവായി 'mapred.system.dir' പാരാമീറ്റർ വ്യക്തമാക്കിയ HDFS ഡയറക്uടറി സൃഷ്uടിക്കുക (സ്വതവേ $ {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
അടുത്തതായി, ഓരോ ഹഡൂപ്പ് ഉപയോക്താവിനും ഒരു ഹോം ഡയറക്ടറി സൃഷ്ടിക്കുക. നിങ്ങൾ ഇത് 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
Namenode ആക്സസ് ചെയ്യുന്നതിന് നിങ്ങളുടെ ബ്രൗസർ തുറന്ന് url http://ip_address_of_namenode:50070 എന്ന് ടൈപ്പ് ചെയ്യുക.
JobTracker ആക്uസസ് ചെയ്യാൻ നിങ്ങളുടെ ബ്രൗസറിൽ മറ്റൊരു ടാബ് തുറന്ന് url http://ip_address_of_jobtracker:50030 എന്ന് ടൈപ്പ് ചെയ്യുക.
ഈ നടപടിക്രമം RHEL/CentOS 5.X/6.X-ൽ വിജയകരമായി പരീക്ഷിച്ചു. ഇൻസ്റ്റാളേഷനിൽ എന്തെങ്കിലും പ്രശ്നങ്ങൾ നേരിടുകയാണെങ്കിൽ താഴെ കമന്റ് ചെയ്യുക, പരിഹാരങ്ങൾക്കായി ഞാൻ നിങ്ങളെ സഹായിക്കും.