hadoop 集群安装及验证 – sducxh – ITeye技术网站

一、上传hadoop包到master机器/usr目录

版本:hadoop-1.2.1.tar.gz

解压:

 

Java代码  收藏代码
  1. tar -zxvf hadoop-1.2.1.tar.gz  

 当前目录产出hadoop-1.2.1目录,进去创建tmp目录备用:

 

 

Java代码  收藏代码
  1. [root@master hadoop-1.2.1]# mkdir tmp  

 返回usr目录,赋给hadoop用户hadoop-1.2.1读写权限

 

 

Java代码  收藏代码
  1. [root@master usr]# chown -R hadoop:hadoop hadoop-1.2.1/  

 插曲:在后面操作时,是赋完hadoop目录权限后,再建立的tmp目录,所以格式化namenode时,出现错误:

 

 

Java代码  收藏代码
  1. [hadoop@master conf]$ hadoop namenode -format  
  2. Warning: $HADOOP_HOME is deprecated.  
  3.   
  4. 13/09/08 00:33:06 INFO namenode.NameNode: STARTUP_MSG:   
  5. /************************************************************ 
  6. STARTUP_MSG: Starting NameNode 
  7. STARTUP_MSG:   host = master.hadoop/192.168.70.101 
  8. STARTUP_MSG:   args = [-format] 
  9. STARTUP_MSG:   version = 1.2.1 
  10. STARTUP_MSG:   build = https://svn.apache.org/repos/asf/hadoop/common/branches/branch-1.2 -r 1503152; compiled by ‘mattf’ on Mon Jul 22 15:23:09 PDT 2013 
  11. STARTUP_MSG:   java = 1.6.0_45 
  12. ************************************************************/  
  13. 13/09/08 00:33:06 INFO util.GSet: Computing capacity for map BlocksMap  
  14. 13/09/08 00:33:06 INFO util.GSet: VM type       = 32-bit  
  15. 13/09/08 00:33:06 INFO util.GSet: 2.0% max memory = 1013645312  
  16. 13/09/08 00:33:06 INFO util.GSet: capacity      = 2^22 = 4194304 entries  
  17. 13/09/08 00:33:06 INFO util.GSet: recommended=4194304, actual=4194304  
  18. 13/09/08 00:33:06 INFO namenode.FSNamesystem: fsOwner=hadoop  
  19. 13/09/08 00:33:06 INFO namenode.FSNamesystem: supergroup=supergroup  
  20. 13/09/08 00:33:06 INFO namenode.FSNamesystem: isPermissionEnabled=true  
  21. 13/09/08 00:33:06 INFO namenode.FSNamesystem: dfs.block.invalidate.limit=100  
  22. 13/09/08 00:33:06 INFO namenode.FSNamesystem: isAccessTokenEnabled=false accessKeyUpdateInterval=0 min(s), accessTokenLifetime=0 min(s)  
  23. 13/09/08 00:33:06 INFO namenode.FSEditLog: dfs.namenode.edits.toleration.length = 0  
  24. 13/09/08 00:33:06 INFO namenode.NameNode: Caching file names occuring more than 10 times   
  25. 13/09/08 00:33:07 ERROR namenode.NameNode: java.io.IOException: Cannot create directory /usr/hadoop-1.2.1/tmp/dfs/name/current  
  26.         at org.apache.hadoop.hdfs.server.common.Storage$StorageDirectory.clearDirectory(Storage.java:294)  
  27.         at org.apache.hadoop.hdfs.server.namenode.FSImage.format(FSImage.java:1337)  
  28.         at org.apache.hadoop.hdfs.server.namenode.FSImage.format(FSImage.java:1356)  
  29.         at org.apache.hadoop.hdfs.server.namenode.NameNode.format(NameNode.java:1261)  
  30.         at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1467)  
  31.         at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1488)  
  32.   
  33. 13/09/08 00:33:07 INFO namenode.NameNode: SHUTDOWN_MSG:   
  34. /************************************************************ 
  35. SHUTDOWN_MSG: Shutting down NameNode at master.hadoop/192.168.70.101 
  36. ************************************************************/  
  37. [hadoop@master conf]$   

 修正权限后解决。

 

二、配置hadoop环境变量(root) master slave都做:

 

Java代码  收藏代码
  1. [root@master conf]# vi /etc/profile  

 

 

Java代码  收藏代码
  1. HADOOP_HOME=/usr/hadoop-1.2.1  
  2. export HADOOP_HOME  
  3. PATH=$PATH:$HADOOP_HOME/bin  
  4. export PATH  

 加载环境变量:

 

 

Java代码  收藏代码
  1. [root@master conf]# source /etc/profile  

 测试环境变量:

 

 

Java代码  收藏代码
  1. [root@master conf]# hadoop  
  2. Warning: $HADOOP_HOME is deprecated.  
  3.   
  4. Usage: hadoop [–config confdir] COMMAND  
  5. where COMMAND is one of:  
  6.   namenode -format     format the DFS filesystem  
  7. ….  

 done

 

 

三、修改hadoop JAVA_HOME路径:

 

Java代码  收藏代码
  1. [root@slave01 conf]# vi hadoop-env.sh   

 

 

 

Java代码  收藏代码
  1. # The java implementation to use.  Required.  
  2.  export JAVA_HOME=/usr/jdk1.6.0_45  

 

 

四、修改core-site.xml配置

 

Java代码  收藏代码
  1. <configuration>  
  2.   
  3. <property>  
  4.         <name>hadoop.tmp.dir</name>  
  5.         <value>/usr/hadoop-1.2.1/tmp</value>  
  6. </property>  
  7.   
  8. <property>  
  9.         <name>fs.default.name</name>  
  10.         <value>hdfs://master.hadoop:9000</value>  
  11. </property>  
  12.   
  13. </configuration>  

 

 

五、修改hdfs-site.xml 

 

 

Java代码  收藏代码
  1. [hadoop@master conf]$ vi hdfs-site.xml   

 

 

 

Java代码  收藏代码
  1. <configuration>  
  2.   
  3.         <property>  
  4.                 <name>dfs.data.dir</name>  
  5.                 <value>/usr/hadoop-1.2.1/data</value>  
  6.         </property>  
  7.   
  8.         <property>  
  9.                 <name>dfs.replication</name>  
  10.                 <value>2</value>  
  11.         </property>  
  12.   
  13. </configuration>  

  

 

六、修改mapred-site.xml

 

Java代码  收藏代码
  1. [hadoop@master conf]$ vi mapred-site.xml   

 

 

 

Xml代码  收藏代码
  1. <configuration>  
  2.         <property>  
  3.                 <name>mapred.job.tracker</name>  
  4.                 <value>master.hadoop:9001</value>  
  5.         </property>  
  6. </configuration>  

 

七、修改 masters和slaves

 

Java代码  收藏代码
  1. [hadoop@master conf]$ vi masters   

 添加hostname或者IP

Java代码  收藏代码
  1. master.hadoop  

 

Java代码  收藏代码
  1. [hadoop@master conf]$ vi slaves   

 

Java代码  收藏代码
  1. slave01.hadoop  
  2. slave02.hadoop  

 八、将修改好的hadoop分发给slave,由于slave节点hadoop用户还没有usr目录下的写权限,所以目的主机用root,源主机无所谓

 

 

Java代码  收藏代码
  1. [root@master usr]#   
  2. [root@master usr]# scp -r hadoop-1.2.1/ root@slave01.hadoop:/usr  
  3. …  
  4. [root@master usr]#   
  5. [root@master usr]# scp -r hadoop-1.2.1/ root@slave02.hadoop:/usr  

 然后,slave修改hadoop-1.2.1目录权限

 

九、格式化HDFS文件系统

 

Java代码  收藏代码
  1. [hadoop@master usr]$   
  2. [hadoop@master usr]$ hadoop namenode -format  
  3. Warning: $HADOOP_HOME is deprecated.  
  4.   
  5. 14/10/22 07:26:09 INFO namenode.NameNode: STARTUP_MSG:   
  6. /************************************************************ 
  7. STARTUP_MSG: Starting NameNode 
  8. STARTUP_MSG:   host = master.hadoop/192.168.1.100 
  9. STARTUP_MSG:   args = [-format] 
  10. STARTUP_MSG:   version = 1.2.1 
  11. STARTUP_MSG:   build = https://svn.apache.org/repos/asf/hadoop/common/branches/branch-1.2 -r 1503152; compiled by ‘mattf’ on Mon Jul 22 15:23:09 PDT 2013 
  12. STARTUP_MSG:   java = 1.6.0_45 
  13. ************************************************************/  
  14. 14/10/22 07:26:09 INFO util.GSet: Computing capacity for map BlocksMap  
  15. 14/10/22 07:26:09 INFO util.GSet: VM type       = 32-bit  
  16. 14/10/22 07:26:09 INFO util.GSet: 2.0% max memory = 1013645312  
  17. 14/10/22 07:26:09 INFO util.GSet: capacity      = 2^22 = 4194304 entries  
  18. 14/10/22 07:26:09 INFO util.GSet: recommended=4194304, actual=4194304  
  19. 14/10/22 07:26:09 INFO namenode.FSNamesystem: fsOwner=hadoop  
  20. 14/10/22 07:26:09 INFO namenode.FSNamesystem: supergroup=supergroup  
  21. 14/10/22 07:26:09 INFO namenode.FSNamesystem: isPermissionEnabled=true  
  22. 14/10/22 07:26:09 INFO namenode.FSNamesystem: dfs.block.invalidate.limit=100  
  23. 14/10/22 07:26:09 INFO namenode.FSNamesystem: isAccessTokenEnabled=false accessKeyUpdateInterval=0 min(s), accessTokenLifetime=0 min(s)  
  24. 14/10/22 07:26:09 INFO namenode.FSEditLog: dfs.namenode.edits.toleration.length = 0  
  25. 14/10/22 07:26:09 INFO namenode.NameNode: Caching file names occuring more than 10 times   
  26. 14/10/22 07:26:09 INFO common.Storage: Image file /usr/hadoop/tmp/dfs/name/current/fsimage of size 112 bytes saved in 0 seconds.  
  27. 14/10/22 07:26:09 INFO namenode.FSEditLog: closing edit log: position=4, editlog=/usr/hadoop/tmp/dfs/name/current/edits  
  28. 14/10/22 07:26:09 INFO namenode.FSEditLog: close success: truncate to 4, editlog=/usr/hadoop/tmp/dfs/name/current/edits  
  29. 14/10/22 07:26:09 INFO common.Storage: Storage directory /usr/hadoop/tmp/dfs/name has been successfully formatted.  
  30. 14/10/22 07:26:09 INFO namenode.NameNode: SHUTDOWN_MSG:   
  31. /************************************************************ 
  32. SHUTDOWN_MSG: Shutting down NameNode at master.hadoop/192.168.1.100 
  33. ************************************************************/  
  34. [hadoop@master usr]$   

 

 出现…….successfully formatted 为成功,见第一步的插曲

 

 

十、启动hadoop

启动器,先关闭iptables(master、slave都要关闭),不然执行任务可能出错

 

Java代码  收藏代码
  1. [root@master usr]# service iptables stop  
  2. iptables: Flushing firewall rules: [  OK  ]  
  3. iptables: Setting chains to policy ACCEPT: filter [  OK  ]  
  4. iptables: Unloading modules: [  OK  ]  
  5. [root@master usr]#   

 

(slave忘记关闭防火墙)插曲:

Java代码  收藏代码
  1. [hadoop@master hadoop-1.2.1]$ hadoop jar hadoop-examples-1.2.1.jar pi 10 100  
  2. Warning: $HADOOP_HOME is deprecated.  
  3.   
  4. Number of Maps  = 10  
  5. Samples per Map = 100  
  6. 13/09/08 02:17:05 INFO hdfs.DFSClient: Exception in createBlockOutputStream 192.168.70.102:50010 java.net.NoRouteToHostException: No route to host  
  7. 13/09/08 02:17:05 INFO hdfs.DFSClient: Abandoning blk_9160013073143341141_4460  
  8. 13/09/08 02:17:05 INFO hdfs.DFSClient: Excluding datanode 192.168.70.102:50010  
  9. 13/09/08 02:17:05 INFO hdfs.DFSClient: Exception in createBlockOutputStream 192.168.70.103:50010 java.net.NoRouteToHostException: No route to host  
  10. 13/09/08 02:17:05 INFO hdfs.DFSClient: Abandoning blk_-1734085534405596274_4461  
  11. 13/09/08 02:17:05 INFO hdfs.DFSClient: Excluding datanode 192.168.70.103:50010  
  12. 13/09/08 02:17:05 WARN hdfs.DFSClient: DataStreamer Exception: org.apache.hadoop.ipc.RemoteException: java.io.IOException: File /user/hadoop/PiEstimator_TMP_3_141592654/in/part0 could only be replicated to 0 nodes, instead of 1  
  13.         at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getAdditionalBlock(FSNamesystem.java:1920)  
  14.         at org.apache.hadoop.hdfs.server.namenode.NameNode.addBlock(NameNode.java:783)  

 关闭后解决,另外,配置尽量用IP吧。

启动

 

Java代码  收藏代码
  1. [root@master usr]# su hadoop  
  2. [hadoop@master usr]$ start-all.sh   
  3. Warning: $HADOOP_HOME is deprecated.  
  4.   
  5. starting namenode, logging to /usr/hadoop-1.2.1/libexec/../logs/hadoop-hadoop-namenode-master.hadoop.out  
  6. slave01.hadoop: starting datanode, logging to /usr/hadoop-1.2.1/libexec/../logs/hadoop-hadoop-datanode-slave01.hadoop.out  
  7. slave02.hadoop: starting datanode, logging to /usr/hadoop-1.2.1/libexec/../logs/hadoop-hadoop-datanode-slave02.hadoop.out  
  8. The authenticity of host ‘master.hadoop (192.168.70.101)’ can’t be established.  
  9. RSA key fingerprint is 6c:e0:d7:22:92:80:85:fb:a6:d6:a4:8f:75:b0:96:7e.  
  10. Are you sure you want to continue connecting (yes/no)? yes  
  11. master.hadoop: Warning: Permanently added ‘master.hadoop,192.168.70.101’ (RSA) to the list of known hosts.  
  12. master.hadoop: starting secondarynamenode, logging to /usr/hadoop-1.2.1/libexec/../logs/hadoop-hadoop-secondarynamenode-master.hadoop.out  
  13. starting jobtracker, logging to /usr/hadoop-1.2.1/libexec/../logs/hadoop-hadoop-jobtracker-master.hadoop.out  
  14. slave02.hadoop: starting tasktracker, logging to /usr/hadoop-1.2.1/libexec/../logs/hadoop-hadoop-tasktracker-slave02.hadoop.out  
  15. slave01.hadoop: starting tasktracker, logging to /usr/hadoop-1.2.1/libexec/../logs/hadoop-hadoop-tasktracker-slave01.hadoop.out  
  16. [hadoop@master usr]$   

 从日志看出,启动过程:namenode(master)—-> datanode(slave01、slave02)—->secondarynamenode(master)—–> jobtracker(master)—–> 最后启动tasktracker(slave01、slave02)

 

十一、验证

查看hadoop进程,master、slave节点分别用jps

master:

 

Java代码  收藏代码
  1. [hadoop@master tmp]$ jps  
  2. 6009 Jps  
  3. 5560 SecondaryNameNode  
  4. 5393 NameNode  
  5. 5627 JobTracker  
  6. [hadoop@master tmp]$   

 slave01:

 

 

Java代码  收藏代码
  1. [hadoop@slave01 tmp]$ jps  
  2. 3855 Jps  
  3. 3698 TaskTracker  
  4. 3636 DataNode  

 slave02:

 

 

Java代码  收藏代码
  1. [root@slave02 tmp]# jps  
  2. 3628 TaskTracker  
  3. 3748 Jps  
  4. 3567 DataNode  
  5. [root@slave02 tmp]#   

 查看集群状态:hadoop dfsadmin -report

 

 

Java代码  收藏代码
  1. [hadoop@master tmp]$ hadoop dfsadmin -report  
  2. Warning: $HADOOP_HOME is deprecated.  
  3.   
  4. Configured Capacity: 14174945280 (13.2 GB)  
  5. Present Capacity: 7577288704 (7.06 GB)  
  6. DFS Remaining: 7577231360 (7.06 GB)  
  7. DFS Used: 57344 (56 KB)  
  8. DFS Used%: 0%  
  9. Under replicated blocks: 0  
  10. Blocks with corrupt replicas: 0  
  11. Missing blocks: 0  
  12.   
  13. ————————————————-  
  14. Datanodes available: 2 (2 total, 0 dead)  
  15.   
  16. Name: 192.168.70.103:50010  
  17. Decommission Status : Normal  
  18. Configured Capacity: 7087472640 (6.6 GB)  
  19. DFS Used: 28672 (28 KB)  
  20. Non DFS Used: 3298820096 (3.07 GB)  
  21. DFS Remaining: 3788623872(3.53 GB)  
  22. DFS Used%: 0%  
  23. DFS Remaining%: 53.46%  
  24. Last contact: Sun Sep 08 01:19:18 PDT 2013  
  25.   
  26.   
  27. Name: 192.168.70.102:50010  
  28. Decommission Status : Normal  
  29. Configured Capacity: 7087472640 (6.6 GB)  
  30. DFS Used: 28672 (28 KB)  
  31. Non DFS Used: 3298836480 (3.07 GB)  
  32. DFS Remaining: 3788607488(3.53 GB)  
  33. DFS Used%: 0%  
  34. DFS Remaining%: 53.45%  
  35. Last contact: Sun Sep 08 01:19:17 PDT 2013  
  36.   
  37. [hadoop@master tmp]$   

 集群管理页面:master IP

 

http://192.168.70.101:50030

http://192.168.70.101:50070/

 

十二、执行任务,算个圆周率

Java代码  收藏代码
  1. [hadoop@master hadoop-1.2.1]$ hadoop jar hadoop-examples-1.2.1.jar pi 10 100  

第一个参数10:表示运行10次map任务

第二个参数100:表示每个map取样的个数 

正常结果:

Java代码  收藏代码
  1. [hadoop@master hadoop-1.2.1]$ hadoop jar hadoop-examples-1.2.1.jar pi 10 100  
  2. Warning: $HADOOP_HOME is deprecated.  
  3.   
  4. Number of Maps  = 10  
  5. Samples per Map = 100  
  6. Wrote input for Map #0  
  7. Wrote input for Map #1  
  8. Wrote input for Map #2  
  9. Wrote input for Map #3  
  10. Wrote input for Map #4  
  11. Wrote input for Map #5  
  12. Wrote input for Map #6  
  13. Wrote input for Map #7  
  14. Wrote input for Map #8  
  15. Wrote input for Map #9  
  16. Starting Job  
  17. 13/09/08 02:21:50 INFO mapred.FileInputFormat: Total input paths to process : 10  
  18. 13/09/08 02:21:52 INFO mapred.JobClient: Running job: job_201309080221_0001  
  19. 13/09/08 02:21:53 INFO mapred.JobClient:  map 0% reduce 0%  
  20. 13/09/08 02:24:06 INFO mapred.JobClient:  map 10% reduce 0%  
  21. 13/09/08 02:24:07 INFO mapred.JobClient:  map 20% reduce 0%  
  22. 13/09/08 02:24:21 INFO mapred.JobClient:  map 30% reduce 0%  
  23. 13/09/08 02:24:28 INFO mapred.JobClient:  map 40% reduce 0%  
  24. 13/09/08 02:24:31 INFO mapred.JobClient:  map 50% reduce 0%  
  25. 13/09/08 02:24:32 INFO mapred.JobClient:  map 60% reduce 0%  
  26. 13/09/08 02:24:38 INFO mapred.JobClient:  map 70% reduce 0%  
  27. 13/09/08 02:24:41 INFO mapred.JobClient:  map 80% reduce 13%  
  28. 13/09/08 02:24:44 INFO mapred.JobClient:  map 80% reduce 23%  
  29. 13/09/08 02:24:45 INFO mapred.JobClient:  map 100% reduce 23%  
  30. 13/09/08 02:24:47 INFO mapred.JobClient:  map 100% reduce 26%  
  31. 13/09/08 02:24:53 INFO mapred.JobClient:  map 100% reduce 100%  
  32. 13/09/08 02:24:54 INFO mapred.JobClient: Job complete: job_201309080221_0001  
  33. 13/09/08 02:24:54 INFO mapred.JobClient: Counters: 30  
  34. 13/09/08 02:24:54 INFO mapred.JobClient:   Job Counters   
  35. 13/09/08 02:24:54 INFO mapred.JobClient:     Launched reduce tasks=1  
  36. 13/09/08 02:24:54 INFO mapred.JobClient:     SLOTS_MILLIS_MAPS=638017  
  37. 13/09/08 02:24:54 INFO mapred.JobClient:     Total time spent by all reduces waiting after reserving slots (ms)=0  
  38. 13/09/08 02:24:54 INFO mapred.JobClient:     Total time spent by all maps waiting after reserving slots (ms)=0  
  39. 13/09/08 02:24:54 INFO mapred.JobClient:     Launched map tasks=10  
  40. 13/09/08 02:24:54 INFO mapred.JobClient:     Data-local map tasks=10  
  41. 13/09/08 02:24:54 INFO mapred.JobClient:     SLOTS_MILLIS_REDUCES=44458  
  42. 13/09/08 02:24:54 INFO mapred.JobClient:   File Input Format Counters   
  43. 13/09/08 02:24:54 INFO mapred.JobClient:     Bytes Read=1180  
  44. 13/09/08 02:24:54 INFO mapred.JobClient:   File Output Format Counters   
  45. 13/09/08 02:24:54 INFO mapred.JobClient:     Bytes Written=97  
  46. 13/09/08 02:24:54 INFO mapred.JobClient:   FileSystemCounters  
  47. 13/09/08 02:24:54 INFO mapred.JobClient:     FILE_BYTES_READ=226  
  48. 13/09/08 02:24:54 INFO mapred.JobClient:     HDFS_BYTES_READ=2460  
  49. 13/09/08 02:24:54 INFO mapred.JobClient:     FILE_BYTES_WRITTEN=623419  
  50. 13/09/08 02:24:54 INFO mapred.JobClient:     HDFS_BYTES_WRITTEN=215  
  51. 13/09/08 02:24:54 INFO mapred.JobClient:   Map-Reduce Framework  
  52. 13/09/08 02:24:54 INFO mapred.JobClient:     Map output materialized bytes=280  
  53. 13/09/08 02:24:54 INFO mapred.JobClient:     Map input records=10  
  54. 13/09/08 02:24:54 INFO mapred.JobClient:     Reduce shuffle bytes=280  
  55. 13/09/08 02:24:54 INFO mapred.JobClient:     Spilled Records=40  
  56. 13/09/08 02:24:54 INFO mapred.JobClient:     Map output bytes=180  
  57. 13/09/08 02:24:54 INFO mapred.JobClient:     Total committed heap usage (bytes)=1414819840  
  58. 13/09/08 02:24:54 INFO mapred.JobClient:     CPU time spent (ms)=377130  
  59. 13/09/08 02:24:54 INFO mapred.JobClient:     Map input bytes=240  
  60. 13/09/08 02:24:54 INFO mapred.JobClient:     SPLIT_RAW_BYTES=1280  
  61. 13/09/08 02:24:54 INFO mapred.JobClient:     Combine input records=0  
  62. 13/09/08 02:24:54 INFO mapred.JobClient:     Reduce input records=20  
  63. 13/09/08 02:24:54 INFO mapred.JobClient:     Reduce input groups=20  
  64. 13/09/08 02:24:54 INFO mapred.JobClient:     Combine output records=0  
  65. 13/09/08 02:24:54 INFO mapred.JobClient:     Physical memory (bytes) snapshot=1473769472  
  66. 13/09/08 02:24:54 INFO mapred.JobClient:     Reduce output records=0  
  67. 13/09/08 02:24:54 INFO mapred.JobClient:     Virtual memory (bytes) snapshot=4130349056  
  68. 13/09/08 02:24:54 INFO mapred.JobClient:     Map output records=20  
  69. Job Finished in 184.973 seconds  
  70. Estimated value of Pi is 3.14800000000000000000  
  71. [hadoop@master hadoop-1.2.1]$   

 由于未关闭slave防火墙,见第十步插曲。

来源URL:http://sducxh.iteye.com/blog/1938782