一、前言

    Hadoop集群与hadoop伪分布式的区别就是伪分布式是单机版的,而集群是多台机器共同协作。

    我们学习中先来搭建一个3台主机的集群,一个namenode,三个datanode。

  二、环境准备

    我们可以准备三台真实的主机或者用工具搭建三台虚拟服务器。我搭建的是虚拟服务器,需要的软件如下:

      1.一台主机(内存足够大,不然稍卡)。

      2.CentOS-6.5-i386-minimal.iso,迷你的centos系统,无操作界面。

      3.VirtualBox_5.0.24.8355_Win.exe,搭建虚拟机的工具。

    接着我们就可以搭建虚拟主机了,我们搭建三台主机名为hadoop1,hadoop2,hadoop3的主机,接着我们需要配置静态ip、主机名与ip映射等linux服务器基本需要具备的条件。

    1.修改主机名

    vi /etc/sysconfig/network

    NETWORKING=yes
    HOSTNAME=hadoop3       修改hostname即可
    GATEWAY=10.2.6.254

    exit退出重新登陆或者重启计算机使其生效。

    2.配置ip

    如果不是在装机时配置,则只需配置静态、ip地址、网关和DNS即可,配置之后,重启网络连接。service network restart

DEVICE=eth0                                    设备名称
TYPE=Ethernet
UUID=25534add-89d2-4167-9fd3-05881829f2da    
ONBOOT=yes                      开机连接?
NM_CONTROLLED=yes  
BOOTPROTO=static                  静态
HWADDR=08:00:27:96:CD:B0
IPADDR=10.2.6.89                  ip地址
PREFIX=24    
GATEWAY=10.2.6.254                 网关
DNS1=10.1.28.25                   DNS  
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth0"

 

      3.配置ip和主机名的映射

    vi /etc/hosts

      127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
      ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
      10.2.6.132 hadoop1
      10.2.6.182 hadoop2
      10.2.6.89 hadoop3

    添加本机的计算机ip和主机名以及集群的其他机器的ip和主机名对应,以便它们之间识别。

   三、搭建jdk环境

    原料:jdk-7u65-linux-i586.tar.gz  

    1.创建文件夹  mkdir /usr/software

    2.将jdk和hadoop解压到software文件夹下

      tar -zxvf jdk-7u65-linux-i586.tar.gz /usr/software

      tar -zxvf hadoop-2.4.1.tar.gz /usr/software

    3.配置jdk

      vi /etc/profile,在最后添加这两行

      JAVA_HOME=/usr/software/jdk1.7.0_65

      export JAVA_HOME 

    4.验证 

      java

      java -version

    四、搭建hadoop环境

     1.配置5个重要的配置文件:hadoop-env.sh、hdfs-site.xml mapred-site.xml.template yarn-site.xml core-site.xml

     2.配置项跟伪分布式相同,不同的是:

        hdfs文本数量可以改为2或者3

     3.slaves文件中是管理本集群的datanode节点的,如果salves有三个主机名或者ip的话,那么代表这个集群有三台主机,所以我们必须配置slaves文件。      

      hadoop1
      hadoop2
      hadoop3

      如果配的是主机名那么这些主机名必须互相识别。

      4.将配置好的software下的文件夹scp拷贝到其他主机

        scp -r /usr/software/    root@hadoop1:/root/software/  

        意思是将本机software下的文件拷贝到hadoop1主机的root用下的software文件下

     5.配置hadoop环境变量

      vi /etc/profile

      

        JAVA_HOME=/usr/software/jdk1.7.0_65
        CLASSPATH=.:/usr/software/jdk1.7.0_65/jre/lib/rt.jar
        export HADOOP_HOME=/usr/software/hadoop-2.4.1
        PATH=.:/usr/software/jdk1.7.0_65/bin:$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

        export JAVA_HOME PATH CLASSPATH

     6.格式化namenode

      hadoop namenode -format

     7.关闭集群所有主机的防火墙

      service iptables stop

      chkconfig iptables off

     8.查看10.2.6.132的50070端口,即集群页面。

        datanode节点情况:

       

hadoop5台主机集群规划 hadoop集群最少几台机器_JAVA

        namenode节点情况;

        

hadoop5台主机集群规划 hadoop集群最少几台机器_hadoop5台主机集群规划_02

 

    五、配置免密登陆

      如果你有A、B、C三台主机,那么应该

      A-->B配置免密

      A-->C配置免密

      B-->A配置免密

      B-->C配置免密

      C-->A配置免密

      C-->B配置免密