在centos虛擬機中安裝hadoop(僞分佈式模式)

原文來自 http://zhans52.iteye.com/blog/1102649,忘情遊天下的CentOS 安裝 hadoop(僞分佈模式)。我的第一個hadoop測試環境,就是參考這篇文檔搭建的。在搭建過程中,對原文一些SSH設置不太詳細的地方做一些補充。感謝忘情遊天下提供的好文章。
      我裝的CentOS 6 虛擬機,
      軟件準備:jdk 1.6 U29
      hadoop:hadoop-0.20.205.tar.gz

ava安裝文件和後續的hadoop安裝文件都可以先下載到windows機器上,然後把windows的目錄設置爲共享。在centos虛擬機中執行
類似下面這樣的命令,mount Windows機器中共享的目錄
     mount -t cifs -o username=******,password=****** //server/share /local/dir


第一步:ssh檢查配置(補充authorized_keys文件權限的修改,並且用的是非root用戶)

1)首先切換到要後續用來運行hadoop的用戶,本文中用戶名爲dev

[root@localhost ~]# su dev

2)執行下面腳本,對應屏幕的提示直接回車

[dev@localhost lib]$ ssh-keygen -t  rsa  
Generating public/private rsa key pair.
Enter file in which to save the key (/home/dev/.ssh/id_rsa): 直接回車
Enter passphrase (empty for no passphrase): 直接回車
Enter same passphrase again: 直接回車
Your identification has been saved in /home/dev/.ssh/id_rsa.
Your public key has been saved in /home/dev/.ssh/id_rsa.pub.
The key fingerprint is:
21:f8:47:01:e0:44:7c:d2:1d:4f:73:87:c4:c8:76:3f [email protected]
The key's randomart image is:
+--[ RSA 2048]----+
|   o+o.oooo+o..  |
|   oo.o .++o+.   |
|    oo. o... .   |
|     . o .    E  |
|      . S      . |
|       .         |
|                 |
|                 |
|                 |
+-----------------+

3)進入用戶在/home下對應目錄

[dev@localhost lib]$ cd /home/dev/.ssh

4)生成文件authorized_keys文件

[dev@localhost .ssh]$ cat id_rsa.pub > authorized_keys

5)修改文件authorized_keys屬性(這個地方也是查了很久的網上資料才找到,呵呵)

[dev@localhost .ssh]$ chmod 600 authorized_keys
6)驗證方法(輸入ssh localhost,不再提示輸入密碼即說明設置成功)

[dev@localhost .ssh]$ ssh localhost
Last login: Tue Dec  6 17:23:13 2011 from localhost.localdomain
[dev@localhost ~]$ exit


第二步:安裝jdk(可參考)

 注意點:

  1)選擇java的版本,64位操作系統,請選擇x64後綴的bin

jdk-6u29-linux-i586.bin
jdk-6u29-linux-x64.bin

 2)選擇好Java的安裝目錄

執行類似下面的命令(紅字部分和選擇的版本有關係)

[root@localhost java]# chmod +x jdk-6u26-linux-i586.bin  
[root@localhost java]# ./jdk-6u26-linux-i586.bin  
......  
......  
......  
For more information on what data Registration collects and   
how it is managed and used, see:  
http://java.sun.com/javase/registration/JDKRegistrationPrivacy.html  
  
Press Enter to continue.....     
Done. 
 
  安裝完成後生成文件夾:jdk1.6.0_26


第三步:配置環境變量(紅字部分和版本,安裝後的具體目錄相關)

[root@localhost java]# vi /etc/profile  
#添加如下信息  
# set java environment  
export JAVA_HOME=/usr/java/jdk1.6.0_29  
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib  
export PATH=$JAVA_HOME/lib:$JAVA_HOME/jre/bin:$PATH:$HOME/bin  
export HADOOP_HOME=/usr/local/hadoop/hadoop-0.20.205  
export PATH=$PATH:$HADOOP_HOME/bin  
  
[root@localhost java]# chmod +x  /etc/profile  
[root@localhost java]# source  /etc/profile  
[root@localhost java]#   
[root@localhost java]# java -version  
java version "1.6.0_29"  
Java(TM) SE Runtime Environment (build 1.6.0_26-b03)  
Java HotSpot(TM) Client VM (build 20.1-b02, mixed mode, sharing)  
[root@localhost java]# 


第四步:修改HOST文件

  1. [root@localhost conf]# vi /etc/hosts  
  2. # Do not remove the following line, or various programs  
  3. # that require network functionality will fail.  
  4. 127.0.0.1               localhost.localdomain localhost  
  5. ::1             localhost6.localdomain6 localhost6  
  6. 127.0.0.1       namenode datanode01 

第五步:解壓縮並安裝hadoop

  1. [root@localhost hadoop]# tar zxvf hadoop-0.20.203.tar.gz  
  2. ......  
  3. ......  
  4. ......  
  5. hadoop-0.20.203.0/src/contrib/ec2/bin/image/create-hadoop-image-remote  
  6. hadoop-0.20.203.0/src/contrib/ec2/bin/image/ec2-run-user-data  
  7. hadoop-0.20.203.0/src/contrib/ec2/bin/launch-hadoop-cluster  
  8. hadoop-0.20.203.0/src/contrib/ec2/bin/launch-hadoop-master  
  9. hadoop-0.20.203.0/src/contrib/ec2/bin/launch-hadoop-slaves  
  10. hadoop-0.20.203.0/src/contrib/ec2/bin/list-hadoop-clusters  
  11. hadoop-0.20.203.0/src/contrib/ec2/bin/terminate-hadoop-cluster  
  12. [root@localhost hadoop]#   


第六步:進入hadoop的conf目錄修改配置文件(配置文件中具體設置的目錄和hadoop安裝目錄相關)

  1. ####################################  
  2. [root@localhost conf]# vi hadoop-env.sh  
  3. # 添加代碼  
  4. # set java environment  
  5.   export JAVA_HOME=/usr/java/jdk1.6.0_26  
  6.   
  7. #####################################  
  8. [root@localhost conf]# vi core-site.xml  
  9. <?xml version="1.0"?>  
  10. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>  
  11. <!-- Put site-specific property overrides in this file. -->  
  12. <configuration>  
  13.    <property>  
  14.      <name>fs.default.name</name>  
  15.      <value>hdfs://namenode:9000/</value>  
  16.    </property>  
  17.    <property>  
  18.      <name>hadoop.tmp.dir</name>  
  19.      <value>/usr/local/hadoop/hadooptmp</value>  
  20.    </property>  
  21. </configuration>  
  22.   
  23. #######################################  
  24. [root@localhost conf]# vi hdfs-site.xml   
  25. <?xml version="1.0"?>  
  26. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>  
  27. <!-- Put site-specific property overrides in this file. -->  
  28. <configuration>  
  29. <property>  
  30.      <name>dfs.name.dir</name>  
  31.      <value>/usr/local/hadoop/hdfs/name</value>  
  32.   </property>  
  33.   <property>  
  34.      <name>dfs.data.dir</name>  
  35.      <value>/usr/local/hadoop/hdfs/data</value>  
  36.   </property>  
  37.   <property>  
  38.      <name>dfs.replication</name>  
  39.      <value>1</value>  
  40.   </property>  
  41. </configuration>  
  42.   
  43. #########################################  
  44. [root@localhost conf]# vi mapred-site.xml  
  45. <?xml version="1.0"?>  
  46. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>  
  47. <!-- Put site-specific property overrides in this file. -->  
  48. <configuration>  
  49.   <property>  
  50.      <name>mapred.job.tracker</name>  
  51.      <value>namenode:9001</value>  
  52.   </property>  
  53.   <property>  
  54.      <name>mapred.local.dir</name>  
  55.      <value>/usr/local/hadoop/mapred/local</value>  
  56.   </property>  
  57.   <property>  
  58.      <name>mapred.system.dir</name>  
  59.      <value>/tmp/hadoop/mapred/system</value>  
  60.   </property>  
  61. </configuration>  
  62.   
  63. #########################################  
  64. [root@localhost conf]# vi masters  
  65. #localhost  
  66. namenode  
  67.   
  68. #########################################  
  69. [root@localhost conf]# vi slaves  
  70. #localhost  
  71. datanode01  

第七步:啓動hadoop

    1.  

  1. [root@localhost bin]# hadoop namenode -format  
  2. 11/06/23 00:43:54 INFO namenode.NameNode: STARTUP_MSG:   
  3. /************************************************************  
  4. STARTUP_MSG: Starting NameNode  
  5. STARTUP_MSG:   host = localhost.localdomain/127.0.0.1  
  6. STARTUP_MSG:   args = [-format]  
  7. STARTUP_MSG:   version = 0.20.203.0  
  8. STARTUP_MSG:   build = http://svn.apache.org/repos/asf/hadoop/common/branches/branch-0.20-security-203 -r 1099333; compiled by 'oom' on Wed May  4 07:57:50 PDT 2011  
  9. ************************************************************/  
  10. 11/06/23 00:43:55 INFO util.GSet: VM type       = 32-bit  
  11. 11/06/23 00:43:55 INFO util.GSet: 2% max memory = 19.33375 MB  
  12. 11/06/23 00:43:55 INFO util.GSet: capacity      = 2^22 = 4194304 entries  
  13. 11/06/23 00:43:55 INFO util.GSet: recommended=4194304, actual=4194304  
  14. 11/06/23 00:43:56 INFO namenode.FSNamesystem: fsOwner=root  
  15. 11/06/23 00:43:56 INFO namenode.FSNamesystem: supergroup=supergroup  
  16. 11/06/23 00:43:56 INFO namenode.FSNamesystem: isPermissionEnabled=true  
  17. 11/06/23 00:43:56 INFO namenode.FSNamesystem: dfs.block.invalidate.limit=100  
  18. 11/06/23 00:43:56 INFO namenode.FSNamesystem: isAccessTokenEnabled=false accessKeyUpdateInterval=0 min(s), accessTokenLifetime=0 min(s)  
  19. 11/06/23 00:43:56 INFO namenode.NameNode: Caching file names occuring more than 10 times   
  20. 11/06/23 00:43:57 INFO common.Storage: Image file of size 110 saved in 0 seconds.  
  21. 11/06/23 00:43:57 INFO common.Storage: Storage directory /usr/local/hadoop/hdfs/name has been successfully formatted.  
  22. 11/06/23 00:43:57 INFO namenode.NameNode: SHUTDOWN_MSG:   
  23. /************************************************************  
  24. SHUTDOWN_MSG: Shutting down NameNode at localhost.localdomain/127.0.0.1  
  25. ************************************************************/  
  26. [root@localhost bin]#   
  27.   
  28. ###########################################  
  29. [root@localhost bin]# ./start-all.sh  
  30. starting namenode, logging to /usr/local/hadoop/hadoop-0.20.203/bin/../logs/hadoop-root-namenode-localhost.localdomain.out  
  31. datanode01: starting datanode, logging to /usr/local/hadoop/hadoop-0.20.203/bin/../logs/hadoop-root-datanode-localhost.localdomain.out  
  32. namenode: starting secondarynamenode, logging to /usr/local/hadoop/hadoop-0.20.203/bin/../logs/hadoop-root-secondarynamenode-localhost.localdomain.out  
  33. starting jobtracker, logging to /usr/local/hadoop/hadoop-0.20.203/bin/../logs/hadoop-root-jobtracker-localhost.localdomain.out  
  34. datanode01: starting tasktracker, logging to /usr/local/hadoop/hadoop-0.20.203/bin/../logs/hadoop-root-tasktracker-localhost.localdomain.out  
  35. [root@localhost bin]# jps  
  36. 11971 TaskTracker  
  37. 11807 SecondaryNameNode  
  38. 11599 NameNode  
  39. 12022 Jps  
  40. 11710 DataNode  
  41. 11877 JobTracker   


查看集羣狀態

Linux代碼  收藏代碼
  1. [root@localhost bin]# hadoop dfsadmin  -report  
  2. Configured Capacity: 4055396352 (3.78 GB)  
  3. Present Capacity: 464142351 (442.64 MB)  
  4. DFS Remaining: 464089088 (442.59 MB)  
  5. DFS Used: 53263 (52.01 KB)  
  6. DFS Used%: 0.01%  
  7. Under replicated blocks: 0  
  8. Blocks with corrupt replicas: 0  
  9. Missing blocks: 0  
  10.   
  11. -------------------------------------------------  
  12. Datanodes available: 1 (1 total, 0 dead)  
  13.   
  14. Name: 127.0.0.1:50010  
  15. Decommission Status : Normal  
  16. Configured Capacity: 4055396352 (3.78 GB)  
  17. DFS Used: 53263 (52.01 KB)  
  18. Non DFS Used: 3591254001 (3.34 GB)  
  19. DFS Remaining: 464089088(442.59 MB)  
  20. DFS Used%: 0%  
  21. DFS Remaining%: 11.44%  
  22. Last contact: Thu Jun 23 01:11:15 PDT 2011  
  23.   
  24.   
  25. [root@localhost bin]#   

 

 

 

 

  其他問題: 1

Linux代碼  收藏代碼
  1. ####################啓動報錯##########  
  2. [root@localhost bin]# ./start-all.sh  
  3. starting namenode, logging to /usr/local/hadoop/hadoop-0.20.203/bin/../logs/hadoop-root-namenode-localhost.localdomain.out  
  4. The authenticity of host 'datanode01 (127.0.0.1)' can't be established.  
  5. RSA key fingerprint is 41:c8:d4:e4:60:71:6f:6a:33:6a:25:27:62:9b:e3:90.  
  6. Are you sure you want to continue connecting (yes/no)? y  
  7. Please type 'yes' or 'no': yes  
  8. datanode01: Warning: Permanently added 'datanode01' (RSA) to the list of known hosts.  
  9. datanode01: starting datanode, logging to /usr/local/hadoop/hadoop-0.20.203/bin/../logs/hadoop-root-datanode-localhost.localdomain.out  
  10. <strong><span style="color: #ff0000;">datanode01: Unrecognized option: -jvm  
  11. datanode01: Could not create the Java virtual machine.</span>  
  12.   
  13.   
  14. </strong>  
  15.   
  16.   
  17.   
  18. namenode: starting secondarynamenode, logging to /usr/local/hadoop/hadoop-0.20.203/bin/../logs/hadoop-root-secondarynamenode-localhost.localdomain.out  
  19. starting jobtracker, logging to /usr/local/hadoop/hadoop-0.20.203/bin/../logs/hadoop-root-jobtracker-localhost.localdomain.out  
  20. datanode01: starting tasktracker, logging to /usr/local/hadoop/hadoop-0.20.203/bin/../logs/hadoop-root-tasktracker-localhost.localdomain.out  
  21. [root@localhost bin]# jps  
  22. 10442 JobTracker  
  23. 10533 TaskTracker  
  24. 10386 SecondaryNameNode  
  25. 10201 NameNode  
  26. 10658 Jps  
  27.   
  28. ################################################  
  29. [root@localhost bin]# vi hadoop  
  30. elif [ "$COMMAND" = "datanode" ] ; then  
  31.   CLASS='org.apache.hadoop.hdfs.server.datanode.DataNode'  
  32.   if [[ $EUID -eq 0 ]]; then  
  33.     HADOOP_OPTS="$HADOOP_OPTS -jvm server $HADOOP_DATANODE_OPTS"  
  34.   else  
  35.     HADOOP_OPTS="$HADOOP_OPTS -server $HADOOP_DATANODE_OPTS"  
  36.   fi  
  37.   
  38. #http://javoft.net/2011/06/hadoop-unrecognized-option-jvm-could-not-create-the-java-virtual-machine/  
  39. #改爲  
  40. elif [ "$COMMAND" = "datanode" ] ; then  
  41.   CLASS='org.apache.hadoop.hdfs.server.datanode.DataNode'  
  42. #  if [[ $EUID -eq 0 ]]; then  
  43. #    HADOOP_OPTS="$HADOOP_OPTS -jvm server $HADOOP_DATANODE_OPTS"  
  44. #  else  
  45.     HADOOP_OPTS="$HADOOP_OPTS -server $HADOOP_DATANODE_OPTS"  
  46. #  fi  
  47.   
  48. #或者換非root用戶啓動  
  49. #啓動成功  

  2,啓動時要關閉防火牆

 

查看運行情況:

http://localhost:50070

Firefox顯示代碼  收藏代碼
  1. NameNode 'localhost.localdomain:9000'  
  2. Started:    Thu Jun 23 01:07:18 PDT 2011  
  3. Version:    0.20.203.0, r1099333  
  4. Compiled:   Wed May 4 07:57:50 PDT 2011 by oom  
  5. Upgrades:   There are no upgrades in progress.  
  6.   
  7. Browse the filesystem  
  8. Namenode Logs  
  9. Cluster Summary  
  10. 6 files and directories, 1 blocks = 7 total. Heap Size is 31.38 MB / 966.69 MB (3%)  
  11. Configured Capacity :   3.78 GB  
  12. DFS Used    :   52.01 KB  
  13. Non DFS Used    :   3.34 GB  
  14. DFS Remaining   :   442.38 MB  
  15. DFS Used%   :   0 %  
  16. DFS Remaining%  :   11.44 %  
  17. Live Nodes  :   1  
  18. Dead Nodes  :   0  
  19. Decommissioning Nodes   :   0  
  20. Number of Under-Replicated Blocks   :   0  
  21.   
  22. NameNode Storage:  
  23. Storage Directory   Type    State  
  24. /usr/local/hadoop/hdfs/name IMAGE_AND_EDITS Active  
 

http://localhost:50030

Firefox顯示代碼  收藏代碼
  1. namenode Hadoop Map/Reduce Administration  
  2. Quick Links  
  3.   
  4.     * Scheduling Info  
  5.     * Running Jobs  
  6.     * Retired Jobs  
  7.     * Local Logs  
  8.   
  9. State: RUNNING  
  10. Started: Thu Jun 23 01:07:30 PDT 2011  
  11. Version: 0.20.203.0, r1099333  
  12. Compiled: Wed May 4 07:57:50 PDT 2011 by oom  
  13. Identifier: 201106230107  
  14. Cluster Summary (Heap Size is 15.31 MB/966.69 MB)  
  15. Running Map Tasks   Running Reduce Tasks    Total Submissions   Nodes   Occupied Map Slots  Occupied Reduce Slots   Reserved Map Slots  Reserved Reduce Slots   Map Task Capacity   Reduce Task Capacity    Avg. Tasks/Node Blacklisted Nodes   Graylisted Nodes    Excluded Nodes  
  16. 0   0   0   1   0   0   0   0   2   2   4.00    0   0   0  
  17.   
  18. Scheduling Information  
  19. Queue Name  State   Scheduling Information  
  20. default     running     N/A  
  21. Filter (Jobid, Priority, User, Name)  
  22. Example: 'user:smith 3200' will filter by 'smith' only in the user field and '3200' in all fields  
  23. Running Jobs  
  24. none  
  25. Retired Jobs  
  26. none  
  27. Local Logs  
  28. Log directory, Job Tracker History This is Apache Hadoop release 0.20.203.0   

 

測試:

Linux代碼  收藏代碼
  1. ##########建立目錄名稱##########  
  2. [root@localhost bin]# hadoop fs -mkdir  testFolder  
  3.   
  4. ###############拷貝文件到文件夾中  
  5. [root@localhost local]# ls  
  6. bin  etc  games  hadoop  include  lib  libexec  sbin  share  src  SSH_key_file  
  7. [root@localhost local]# hadoop fs -copyFromLocal SSH_key_file testFolder  
  8.   
  9. 進入web頁面即可查看  
 

 

 參考:http://bxyzzy.blog.51cto.com/854497/352692

 






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章