Hadoop集群安装

1.Haoop简介

     Hadoop是Apache软件基金会旗下的一个开源分布式计算平台。以Hadoop(HDFS hadoop分布式文件系统)和Map Reduce(谷歌Reduce)为核心的Hadoop为用户提供系统底层细节透明的分布式基础架构。

      Hadoop集群,可以分为两大角色。Master   And  Slve。一个HDFS集群由一个Namenode  And   Many Datenodes  组成。Namenode作为主服务器。管理文件系统的命名空间和客户端对文件系统的访问。datanode负责管理存储的数据。

      Map  Reduce框架由一个单独运行在主节点上的Job  Tracker和运行在每一个从节点上Task   Tracker 共同组成。主节点负责任务调度。负责一个作业的所有任务,这些任务分布给每个从节点。并且主节点监控从节点的任务执行状况。并且重新执行之前的失败任务。从节点主要负责完成主节点指派的任务。当一个Job被提交时,Job  Tracker 接收到提交作业和配置信息后,就会将配置信息分布给从节点,同时调度任务并监控Task Tracker的执行。

     从上可以看出,HDFS和Map  Reduce共同构成了Hadoop分布式文件系统。HDFS在集群上提供了分布式文件系统。Map  Reduce在集群上提供了分布式计算和任务处理。HDFS在Map Reduce任务处理中提供了文件操作和数据存储。Map Reduce在HDFS的基础上实现了任务的分发、跟踪、执行等工作。二者结合在一起,完成了主要的分布式集群工作。


2.环境规划:

操作系统:CentOS6.4

主机规划:

      主机名              IP

      Mater.Hadoop        192.168.115.2
      Slave1.Hadoop       192.168.115.3
      Slave2.Hadoop       192.168.115.4
      Slave3.Hadoop       192.168.115.5


软件包规划:

      jdk6.tar.gz
      hadoop-1.2.1.tar.gz



3.网络配置

  3.1 主机名配置

      vi /etc/sysconfig/network
         NETWORKING=yes
         HOSTNAME=Mater.Hadoop
         GATEWAY=192.168.115.1


  3.2 IP地址修改

      vi /etc/sysconfig/network-scripts/ifcfg-eth0
         IPADDR=192.168.115.2
         NETMASK=255.255.255.0
         GATEWAY=192.168.115.1
         DNS1=202.106.46.151

   

  3.3 配置hosts文件【必须配置项,所有机器都需要必须配置】

         192.168.115.2  Mater.Hadoop
         192.168.115.3  Slave1.Hadoop
         192.168.115.4  Slave2.Hadoop
         192.168.115.5  Slave3.Hadoop



4 配置Mater到所有slave无密码登陆

   4.1 SSH无密码登陆原理:

       首先在客户端 使用ssh-keygen -t  rsa  命令在本地生成一个密钥对,id_rsa(秘钥)、id_rsa.pub(公钥),然后将公钥复制给服务器端,当客户端用ssh连接服务器端的时候,会在服务器端生成一个随机数,然后用此公钥对这个随机数进行加密,最后发送给客户端,客户端使用本地私钥对这个随机数进行解密,解密之后,将得到的结果回传给服务器端进行比对,如果服务器端确认是和自己生成的随机数相同,ssh开始进行无密码连接。

     4.2 修改sshd_config配置文件,以root用户操作

       (1)  su - root && vi  /etc/ssh/sshd_config
             RSAAuthentication yes # 启用 RSA 认证
             PubkeyAuthentication yes # 启用公钥私钥配对认证方式
             AuthorizedKeysFile .ssh/authorized_keys # 公钥文件路径
             重启SSH服务: service sshd restart



     4.3 Master上生成秘钥对,以Hadoop用户操作

        本地端:

       

(1)ssh-keygen  -t  rsa 
(2)ls -a  /home/hadoop/.ssh/
(3)cat  /home/hadoop/.ssh/id_rsa.pub  >> /home/hadoop/.ssh/authorized_keys
(4)chmod   600  /home/hadoop/.ssh/authorized_keys
(5)ll  /home/hadoop/.ssh/authorized_keys
(6)ssh  localhost
(7)scp  /home/hadoop/.ssh/id_rsa.pub  hadoop@Slave[1,2,3].Hadoop:~/


       远程端:Hadoop用户操作

(8) cd    &&  ll  
(9)mkdir  /home/hadoop/.ssh
(10)chmod  700  /home/hadoop/.ssh
(11)ll   /home/hadoop/.ssh
(12)cat  /home/hadoop/id_rsa.pub  >> /home/hadoop/.ssh/authorized_keys
(13)chmod   600  /home/hadoop/.ssh/authorized_keys
(14) rm  -r  /home/hadoop/id_rsa.pub


       本地端验证:

       

(14) ssh   Slave[1,2,3].Hadoop


5.配置所有Slave多Master的无密码登陆

 

    su - root
    vi  /etc/ssh/sshd_config
    su - hadoop
    ssh-keygen  -t   rsa
    cat  /home/hadoop/.ssh/id_rsa.pub  >> /home/hadoop/.ssh/authorized_keys
    chmod  600  /home/hadoop/.ssh/authorized_keys
    ll  /home/hadoop/.ssh/authorized_keys
    ssh  localhost
    scp  /home/hadoop/.ssh/id_rsa.pub   [email protected]:~/
    去Master端:
    su - hadoop
    cat  /home/hadoop/id_rsa.pub  >> /home/hadoop/.ssh/authorized_keys
    chmod   600   /home/hadoop/.ssh/authorized_keys
    去Slave端:
    ssh   Master.Hadoop
    去Master端:
    rm  -r  /home/hadoop/id_rsa.pub


6.安装JDK和Hadoop

    jdk6.tar.gz
    hadoop-1.2.1.tar.gz


  6.1安装JAVA环境(root用户操作)

 

     yum  install glibc.i686
     tar zxvf jdk6.tar.gz   -C  /usr/local/
     chown  -R   root.root   /usr/local/jdk6
     vi /etc/profile.d/jdk.sh
       export JAVA_HOME=/usr/local/jdk6
       export CALASS_PATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
       export JAVA_BIN=$JAVA_HOME/bin
       export PATH=$PATH:$JAVA_HOME/bin


  6.2 安装Hadoop

     (1)tar  zxvf hadoop-1.2.1.tar.gz  -C  /usr/local/
          mv   hadoop-1.2.1   hadoop
          chown  -R   hadoop.hadoop   /usr/local/hadoop
     (2)vi  /etc/profile.d/hadoop.sh
          export  HADOOP_HOME=/usr/local/hadoop
          export  PATH=$PATH:$HADOOP_HOME/bin
     (3)mkdir  /usr/local/hadoop/tmp
     (4)配置hadoop
          vi  /usr/local/hadoop/conf/hadoop-env.sh【在末尾添加】
          #set  java   environment
           export  JAVA_HOME=/usr/local/jdk6


          

      (5)配置conf下的三个配置文件。Master修改5个文件,Slave修改3个文件。

          cd /usr/local/hadoop/conf

Master:  <sore-site.xml / hdfs-site.xml/ mapred-site.xml /masters /slaves >

Slave:   <sore-site.xml / hdfs-site.xml/ mapred-site.xml >

       

  cp  sore-site.xml    core-site.xml.bak


         
vi  core-site.xml


       

   <configuration>
              <property>
                  <name>hadoop.tmp.dir</name>
                  <value>/usr/local/hadoop/tmp</value>
                  <descriptions> A  base  for other temporary directories.</descriptions>
               </property>
            <!--file system properties-->
                <property>
                   <name>fs.default.name</name>
                   <value>hdfs://192.168.115.2:9000</value>
                </property>
            </configuration>



           cp  hdfs-site.xml  hdfs-site.xml.bak


         

 
vi hdfs-site.xml


           

                <configuration>
                   <property>
                          <name>dfs.replication</value>
                          <value>1</value>
                    </property>
                </configuration>


           

          
 cp  mapred-site.xml   mapred-site.xml.bak


          
vi  mapred-site.xml


             <configuration>
                 <property>
                    <name>mapred.job.tracker</value>
                    <value>http://192.168.115.2:9001</value> 
                 </property>
             </configuration>


        

          vi  masters
          将localhost改为master的IP地址
               192.168.115.2
          vi  slaves
           将localhost改为slave的IP地址。有几个slave主机,就写几个IP地址。
               192.168.115.3
               192.168.115.4
               192.168.115.5


6.3 启动并验证Hadoop

   (1)在master上用hadoop用户操作,格式化系统,只需要格式化一次,下次启动就不需要了。
       su - hadoop  && hadoop  namenode  -format
   (2)启动hadoop,启动前先关闭集群中的iptables。
        service iptables  stop
        start-all.sh


wKiom1RTmrfgvCqeAANd_ALUfBI894.jpg

终于成功了。期间三个配置文件一值报错。TMP文件的属主和属组是hadoop的。否则会报错。

export HADOOP_HOME_WARN_SUPPRESS=1

这个参数是防止Warning: $HADOOP_HOME is deprecated.这个警告出现的。

到最后JPS查看java进程,结果没有namenode进程,原因是第二次改了配置文件,没有进行系统格式化,所以一直报错。

        



 

      

     

 

      

     

   



        


你可能感兴趣的:(基金会)