首页 > 代码库 > hadoop 2.5.0 完全分布式搭建

hadoop 2.5.0 完全分布式搭建

完全分布式安装:
    1.集群规划
        a.服务分配
        组件             Linux.one             Linux.two                   Linux.three
        HDFS           NameNode           Sencondarynamenode             
                           DataNode            DataNode                  DataNode
        --------------------------------------------------------------------------
        YARN                                                             ResourceManager
                         NodeManager          NodeManager               NodeManager
        --------------------------------------------------------------------------
        MapReduce     JobHistoryServer

    2.基本环境准备
        A.三台装有CenterOs的PC
        B.将修改成静态IP (如果是克隆的虚拟机需要修改Mac地址 否则三台虚拟机无法ping通)
            #vi /etc/sysconfig/network-script/ifcfg-eth0
        C.修改Hostname
            #vi /etc/sysconfig/network
        D.设置主机映射
            # vi /etc/hosts
        E.关闭防火墙
            # service iptables stop
            # chkconfig iptables off
        F.关闭安全子系统
            # vi /etc/sysconfig/selinux
        G.卸载Linux自带的Jdk (minimal安装是没有安装的 所以不用卸载)
             查看系统自带的jdk  rpm -qa | grep java
             # rpm -e --nodeps tzdata-java-2012j-1.el6.noarch
             # rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.50.1.11.5.el6_3.x86_64
             # rpm -e --nodeps java-1.7.0-openjdk-1.7.0.9-2.3.4.1.el6_3.x86_64
        H.安装Jdk
            a.编辑 /etc/profile 文件 添加
                export JAVA_HOME=/opt/modules/jdk1.7.0_67
                export $PATH:$JAVA_HOME/bin
            b.重新加载配置
                source /etc/profile
            
    3.配置NTP服务
        *将Linux.one 作为整个集群的时间同步服务器
        A.检查NTP服务是否安装 (minimal安装是没有安装的)
            rpm -qa | grep ntp
        B.安装ntp服务
            yum -y install ntp
        C.修改NTP的配置文件  (修改Linux.one)
            # vi /etc/ntp.conf
            a.去掉下面这行下面的#,并把网段修改成自己的网段
                restrict 192.168.7.0 mask 255.255.255.0 nomodify notrap
            b.注释掉一下几行  (修改Linux.one)
                #server 0.centos.pool.ntp.org iburst
                #server 1.centos.pool.ntp.org iburst
                #server 2.centos.pool.ntp.org iburst
                #server 3.centos.pool.ntp.org iburst
            c.把下面前面两行的#号去掉,如果没有,需要手动去添加  (修改Linux.one)
                server 127.127.1.0      #local clock
                fudge 127.127.1.0  stratum 10
            d.启动ntp服务(默认是开启)Linux01  (修改Linux.one)
                # service ntpd start   
                # chkconfig ntpd on
            e.同步服务器的时间(Linux01)  (修改Linux.one)
                # ntpdate cn.pool.ntp.org     -->操作这一步时关闭ntp服务
                16 Feb 17:14:40 ntpdate[26564]: step time server 188.39.37.91 offset -12.669996 sec
            f.如果另外两台的ntp的进程开启,那么需要关闭
                # service ntpd stop
                # chkconfig ntpd off
            g.第2、3台向第一台同步时间
                # ntpdate hadoop.senior01
                16 Feb 17:43:27 ntpdate[2554]: adjust time server 192.168.7.9 offset -0.001412 sec
            h.制定周期性时间同步计划任务(第2、3台-Linux02 、Linux03)
                ## 每10分钟同步一次服务器时间
                */10 * * * * /usr/sbin/ntpdate hadoop.senior01
            d.若以上失败则三台全部执行以下命令(时间以当前时间为准)
                # date -s "19:05:56 2017/2/16"
    4.配置SSH免秘钥登陆
        A.检查Linux上是否安装openssh  (minimal安装是没有自带的openssh服务的)
            rpm -qa | grep openssh
        B.安装openssh
            #yum -y install openssh-clients
        C.生成秘钥 (注意生成秘钥的用户)
            ssh-keygen
        D.将秘钥发送给其他服务器 (每台服务器都要执行此操作已确保三台服务器能够随意切换)
            ssh-copy-id hadoop.two
        E.测试免秘钥登陆是否成功 (互相登陆是否成功)
            ssh hadoop.one
        F.分发完成会在用户主目录下的.ssh目录生成以下文件:
            authorized_keys  id_rsa  id_rsa.pub  known_hosts
            如果配置错误可以先删除.ssh目录,重新做一遍
    
    5.安装Hadoop
        A.从hadoop.apache.org 官网下载 hadoop 使用FileZilla上传到服务器进行解压
            $tar -zxf hadoop.tar.gz
        B.配置hadoop的java环境支持, ${HADOOP_HOME}/etc/hadoop目录下
            hadoop-env.sh
            mapred-env.sh
            yarn-env.sh
            在这3个文件中都配置
            export JAVA_HOME=/opt/modules/jdk1.7.0_67

        C. 修改配置文件
            ====core-site.xml====
            <!--指定第一台做namenode-->
            <property>
                 <name>fs.defaultFS</name>
                 <value>hdfs://hadoop.one:8020</value>
            </property>
    
            <property>
                <name>hadoop.tmp.dir</name>
                <value>/opt/modules/hadoop-2.5.0/data</value>
            </property>

            =========hdfs-site.xml=====
            <!-- 分布式副本数设置为3 -->
            <property>
                <name>dfs.replication</name>
                <value>3</value>
            </property>
            <!-- secondarynamenode主机名 -->
            <property>
                <name>dfs.namenode.secondary.http-address</name>
                <value>hadoop.two:50090</value>
            </property>
            <!-- namenode的web访问主机名:端口号 -->
            <property>
                <name>dfs.namenode.http-address</name>
                <value>hadoop.one:50070</value>
            </property>
            <!-- 关闭权限检查用户或用户组 -->
            <property>
                <name>dfs.permissions.enabled</name>
                <value>false</value>
            </property>

            ============yarn-site.xml=======
            <property>
                <name>yarn.resourcemanager.hostname</name>
                <value>hadoop.three</value>
            </property>
            <property>
                <name>yarn.nodemanager.aux-services</name>
                <value>mapreduce_shuffle</value>
            </property>
            <property>
                <name>yarn.log-aggregation-enable</name>
                <value>true</value>
            </property>
            <property>
                <name>yarn.log-aggregation.retain-seconds</name>
                <value>86400</value>
            </property>

            =========================mapred-site.xml============
            $ cp mapred-site.xml.template mapred-site.xml

            <property>
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
            </property>
            <property>
                <name>mapreduce.jobhistory.address</name>
                <value>hadoop.senior01:10020</value>
            </property>
            <property>
                 <name>mapreduce.jobhistory.webapp.address</name>
                 <value>hadoop.senior01:19888</value>
            </property>
        D.将配置好的文件夹发送给其他服务器
            scp /opt/modules/app/hadoop-2.5.0  hadoop.two:/opt/modules/app/   
        E.格式化namenode
            /opt/modules/app/hadoop/bin/hdfs namenode -format
        F.启动服务
            在配置了namenode的服务器上启动namenode服务
            /opt/modules/app/hadoop-2.5.0/sbin/start-dfs.sh
            在配置了ResourceManager的服务器上启动ResourceManager
            /opt/modules/app/hadoop-2.5.0/sbin/start-yarn.sh
        

hadoop 2.5.0 完全分布式搭建