在centos虚拟机中安装hadoop(伪分布式模式)

来源:互联网 发布:四川大学校园网域名 编辑:程序博客网 时间:2024/05/22 15:48

原文来自 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 dev@localhost.localdomainThe 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 localhostLast login: Tue Dec  6 17:23:13 2011 from localhost.localdomain[dev@localhost ~]$ exit


第二步:安装jdk(可参考)

 注意点:

  1)选择java的版本,64位操作系统,请选择x64后缀的bin

jdk-6u29-linux-i586.binjdk-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

 






原创粉丝点击