zoukankan      html  css  js  c++  java
  • 安装和配置hadoop集群步骤

    hadoop集群的安装步骤和配置

    hadoop是由java语言编写的,首先我们肯定要在电脑中安装jdk,配置好jdk的环境,接下来就是安装hadoop集群的步骤了,在安装之前需要创建hadoop用户组和用户,另外我此时使用的是一主(master)三从(slave1、slave2、slave3)。

     

    1、 创建Hadoop组和hadoop用户

     

     

    [plain] view plain copy
     
    1. [root@master ~]# groupadd hadoop  
    2. [root@master ~]# useradd -g hadoop hadoop  

     

     

    2、 上传、解压hadoop压缩包和重名解压后的目录

     

    切换到hadoop用户:

     

     

    [html] view plain copy
     
    1. [root@master ~]# su – hadoop  


     

    上传hadoop安装包:

     

     

     

    解压hadoop安装包和重命名解压目录:

     

     

    [plain] view plain copy
     
    1. [hadoop@master ~]$ tar -zxvf hadoop-1.0.4.tar.gz  
    2. [hadoop@master ~]$ mv hadoop-1.0.4 hadoop  


     

    3、 配置hadoop的的配置文件

     

    进入hadoop的conf目录:

     

     

    [plain] view plain copy
     
    1. [hadoop@master ~]$ cd hadoop  
    2. [hadoop@master hadoop]$ cd conf  
    3. [hadoop@master conf]$   
    4. [hadoop@master conf]$ ll  
    5. 总用量 76  
    6. -rw-rw-r--. 1 hadoop hadoop 7457 10月  3 2012 capacity-scheduler.xml  
    7. -rw-rw-r--. 1 hadoop hadoop  535 10月  3 2012 configuration.xsl  
    8. -rw-rw-r--. 1 hadoop hadoop  178 10月  3 2012 core-site.xml  
    9. -rw-rw-r--. 1 hadoop hadoop  327 10月  3 2012 fair-scheduler.xml  
    10. -rw-rw-r--. 1 hadoop hadoop 2237 10月  3 2012 hadoop-env.sh  
    11. -rw-rw-r--. 1 hadoop hadoop 1488 10月  3 2012 hadoop-metrics2.properties  
    12. -rw-rw-r--. 1 hadoop hadoop 4644 10月  3 2012 hadoop-policy.xml  
    13. -rw-rw-r--. 1 hadoop hadoop  178 10月  3 2012 hdfs-site.xml  
    14. -rw-rw-r--. 1 hadoop hadoop 4441 10月  3 2012 log4j.properties  
    15. -rw-rw-r--. 1 hadoop hadoop 2033 10月  3 2012 mapred-queue-acls.xml  
    16. -rw-rw-r--. 1 hadoop hadoop  178 10月  3 2012 mapred-site.xml  
    17. -rw-rw-r--. 1 hadoop hadoop   10 10月  3 2012 masters  
    18. -rw-rw-r--. 1 hadoop hadoop   10 10月  3 2012 slaves  
    19. -rw-rw-r--. 1 hadoop hadoop 1243 10月  3 2012 ssl-client.xml.example  
    20. -rw-rw-r--. 1 hadoop hadoop 1195 10月  3 2012 ssl-server.xml.example  
    21. -rw-rw-r--. 1 hadoop hadoop  382 10月  3 2012 taskcontroller.cfg  


     

    这里的配置文件有core-site.xml,hadoop-env.sh,hdfs-site.xml,mapred-site.xml,masters,slaves都需要修改,下面是这几个配置文件的内容:

     

    core-site.xml配置文件的内容:

     

     

    [html] view plain copy
     
    1. <?xml version="1.0"?>  
    2. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>  
    3.    
    4. <!-- Put site-specific property overrides in this file. -->  
    5.    
    6. <configuration>  
    7. <property>  
    8.      <name>fs.default.name</name>#++++hdfs的默认路径  
    9.      <value>hdfs://master:9000</value>  
    10. </property>  
    11. </configuration>  


     

    hadoop-env.sh配置文件最后面添加的内容:

     

     

    [plain] view plain copy
     
    1. export JAVA_HOME=/usr/jdk #++++jdk的环境变量++++#  


     

    hdfs-site.xml配置文件的内容:

     

     

    [html] view plain copy
     
    1. <?xml version="1.0"?>  
    2. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>  
    3.    
    4. <!-- Put site-specific property overrides in this file. -->  
    5.    
    6. <configuration>  
    7. <property>    
    8. <name>dfs.replication</name>#++++hdfs的备份数  
    9. <value>3</value>  
    10. </property>              
    11.         <property>    
    12.             <name>dfs.name.dir</name>  #++++namenode的文件存储路径,包括edites、fsimage、fstime、VERSION  
    13.                 <value>/home/hadoop/hadoop/namenode/</value>    
    14.         </property>   
    15.         <property>    
    16.             <name>dfs.data.dir</name>  #++++datanode的存储路径,包含数据和数据的原信息。  
    17.                 <value>/home/hadoop/hadoop/data/</value>    
    18.         </property>                 
    19.         <property>    
    20.             <name>hadoop.tmp.dir</name>  #++++mapreduce计算的中间结果的临时存储文件夹  
    21.                 <value>/home/hadoop/hadoop/tmp/</value>    
    22.         </property>  
    23.         <property>  
    24. <name>dfs.permissions</name>#++++认证策略  
    25. <value>false</value>  
    26. </property>  
    27. </configuration>  


     

    mapred-site.xml配置文件的内容:

     

     

    [html] view plain copy
     
    1. <?xml version="1.0"?>  
    2. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>  
    3.    
    4. <!-- Put site-specific property overrides in this file. -->  
    5.    
    6. <configuration>  
    7. <property>    
    8.             <name>mapred.job.tracker</name>  #++++jobtracker的ip和端口  
    9.                 <value>master:9001</value>    
    10.         </property>  
    11.         <property>    
    12.             <name>mapred.tasktracker.map.tasks.maximum</name>  #++++maptask的最大数  
    13.             <value>2</value>    
    14.         </property>                    
    15.         <property>    
    16.             <name>mapred.tasktracker.reduce.tasks.maximum</name>  #++++reducetask的最大数  
    17.                 <value>2</value>    
    18.         </property>    
    19. </configuration>  


     

    masters配置文件的内容:

     

     

    [plain] view plain copy
     
    1. master  
    2. #SecondaryNameNode的位置,可以配置多个  


     

    slaves配置文件的内容:

     

     

    [plain] view plain copy
     
    1. slave1#++++slave的ip或者域名  
    2. slave2  
    3. slave3  


     

    说明:这些配置文件都是事先配置好的,只要上传到conf目录下,替换之前的文件即可,采用这种方式是因为在Linux命令行下直接打开文件在里面输入内容更容易错并且不方便。这里还有一点需要注意,上面配置文件中存在的汉字是用于注释的,实际上传的文件是没有注释的,因为不支持汉字。

     

    上传配置文件过程:

     

     

     

    4、 到这里hadoop就安装结束了,接下来就是将安装完成的hadoop发送到其他的虚拟机中。

     

     

    [plain] view plain copy
     
    1. [hadoop@master conf]$ scp -r /home/hadoop/hadoop hadoop@slave1:/home/hadoop  
    2. [hadoop@master conf]$ scp -r /home/hadoop/hadoop hadoop@slave2:/home/hadoop  
    3. [hadoop@master conf]$ scp -r /home/hadoop/hadoop hadoop@slave3:/home/hadoop  


     

    向另外三台机器发送hadoop,记住这里发送到另外一台机器的hadoop用户下,而非root用户下。发送完成,就意味着三台机器的hadoop都已经安装完成。

     

    5、 安装ssh

     

    为了在master机器中启动集群中所有的hadoop,这里安装ssh是提供启动方便。

     

    将slave1、slave2、slave3三台机器都切换到hadoop用户;

     

    在slave1、slave2、slave3三台机器中执行ssh localhost,是为了生成.ssh目录,这个目录默认是隐藏的需要使用ll –a命令查看。

     

     

    [plain] view plain copy
     
    1. [hadoop@slave1 ~]$ ll -a  
    2. 总用量 32  
    3. drwx------.  5 hadoop hadoop 4096 11月 20 23:09 .  
    4. drwxr-xr-x.  3 root   root   4096 11月 20 22:20 ..  
    5. -rw-r--r--.  1 hadoop hadoop   18 7月  18 2013 .bash_logout  
    6. -rw-r--r--.  1 hadoop hadoop  176 7月  18 2013 .bash_profile  
    7. -rw-r--r--.  1 hadoop hadoop  124 7月  18 2013 .bashrc  
    8. drwxr-xr-x.  2 hadoop hadoop 4096 11月 12 2010 .gnome2  
    9. drwxr-xr-x. 14 hadoop hadoop 4096 11月 20 23:03 hadoop  
    10. drwx------.  2 hadoop hadoop 4096 11月 20 23:09 .ssh  


     

    在master机器中生成公钥和私钥:

     

    进入.ssh目录,移除里面的known_hosts文件

     

     

    [plain] view plain copy
     
    1. [hadoop@master ~]$ cd .ssh  
    2. [hadoop@master .ssh]$ ll  
    3. 总用量 4  
    4. -rw-r--r--. 1 hadoop hadoop 1209 11月 20 23:05 known_hosts  
    5. [hadoop@master .ssh]$   
    6. [hadoop@master .ssh]$ rm -rf known_hosts  


     

    生成公钥和私钥:

     

     

    [plain] view plain copy
     
    1. [hadoop@master .ssh]$ ssh-keygen -t rsa  


     

    出现需要输入内容的对话,一律回车,只到生成结束

     

    把公钥放到认证列表中:

     

     

    [plain] view plain copy
     
    1. [hadoop@master .ssh]$ cat id_rsa.pub >> authorized_keys  


     

    此时.ssh目录下回多出一个文件authorized_keys

     

    给authorized_keys文件授权:

     

     

    [plain] view plain copy
     
    1. [hadoop@master .ssh]$ chmod 600 authorized_keys  


     

    将authorized_keys文件发送到slave1、slave2、slave3的hadoop用户下的.ssh目录下:

     

     

    [plain] view plain copy
     
    1. [hadoop@master .ssh]$ scp ~/.ssh/authorized_keys hadoop@slave1:~/.ssh/  
    2. [hadoop@master .ssh]$ scp ~/.ssh/authorized_keys hadoop@slave2:~/.ssh/  
    3. [hadoop@master .ssh]$ scp ~/.ssh/authorized_keys hadoop@slave3:~/.ssh/  


     

    至此ssh就安装成功了。

     

    6、 启动hadoop,这里要注意,要使用hadoop用户,不能用root用户。

     

    格式化集群:

     

     

    [plain] view plain copy
     
    1. [hadoop@master .ssh]$ hadoop namenode –format  


     

    启动集群:

     

     

    [plain] view plain copy
     
    1. [hadoop@master ~]$ start-all.sh  
    2. Warning: $HADOOP_HOME is deprecated.  
    3.    
    4. starting namenode, logging to /home/hadoop/hadoop/libexec/../logs/hadoop-hadoop-namenode-master.out  
    5. slave3: starting datanode, logging to /home/hadoop/hadoop/libexec/../logs/hadoop-hadoop-datanode-slave3.out  
    6. slave2: starting datanode, logging to /home/hadoop/hadoop/libexec/../logs/hadoop-hadoop-datanode-slave2.out  
    7. slave1: starting datanode, logging to /home/hadoop/hadoop/libexec/../logs/hadoop-hadoop-datanode-slave1.out  
    8. The authenticity of host 'master (192.168.56.200)' can't be established.  
    9. RSA key fingerprint is 63:e7:e2:e1:ae:bb:59:f8:ec:e8:23:e0:22:3e:ac:16.  
    10. Are you sure you want to continue connecting (yes/no)? yes  
    11. master: Warning: Permanently added 'master,192.168.56.200' (RSA) to the list of known hosts.  
    12. master: starting secondarynamenode, logging to /home/hadoop/hadoop/libexec/../logs/hadoop-hadoop-secondarynamenode-master.out  
    13. starting jobtracker, logging to /home/hadoop/hadoop/libexec/../logs/hadoop-hadoop-jobtracker-master.out  
    14. slave2: starting tasktracker, logging to /home/hadoop/hadoop/libexec/../logs/hadoop-hadoop-tasktracker-slave2.out  
    15. slave1: starting tasktracker, logging to /home/hadoop/hadoop/libexec/../logs/hadoop-hadoop-tasktracker-slave1.out  
    16. slave3: starting tasktracker, logging to /home/hadoop/hadoop/libexec/../logs/hadoop-hadoop-tasktracker-slave3.out  


     

    这样集群就启动成功了。

     

    7、 jps命令测试是否安装成功

     

    master机器:

     

     

    [plain] view plain copy
     
    1. [hadoop@master ~]$ jps  
    2. 2372 JobTracker  
    3. 2298 SecondaryNameNode  
    4. 2128 NameNode  
    5. 2471 Jps  


     

    slave1机器:

     

     

    [plain] view plain copy
     
    1. [hadoop@slave1 ~]$ jps  
    2. 2185 Jps  
    3. 2019 DataNode  
    4. 2106 TaskTracker  


     

    slave2机器:

     

     

    [plain] view plain copy
     
    1. [hadoop@slave2 ~]$ jps  
    2. 2101 TaskTracker  
    3. 2183 Jps  
    4. 2013 DataNode  


     

    slave3机器:

     

     

    [plain] view plain copy
     
    1. [hadoop@slave3 ~]$ jps  
    2. 2115 TaskTracker  
    3. 2211 Jps  
    4. 2041 DataNode  


     

    至此hadoop集群的安装和启动就完成了,启动集群只需要在master机器上执行start-all.sh就可以。停止集群使用stop-all.sh命令。

     

  • 相关阅读:
    28,intellij idea工程包含scala代码这样打包
    1、调侃程序员
    2 20个常用正则表达式
    27 Java动态加载第三方jar包中的类
    26 查看文件内容有多少行?
    25 读取jar包内log4j.properties文件方法
    MySQL表类型
    Hibernate-检索策略
    Hibernate-Native SQL
    Hibernate-Criteria Queries
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/7258654.html
Copyright © 2011-2022 走看看