hdfs完全分布式的安装

完全分布式的安装


 1、集群规划

                          

 

组件                   PC1                        PC2                                        PC3

HDFS             Namenode                SecondaryNamenode

                      Datanode                  Datanode                              Datanode

Yarn                                                                                             RecourceManager

                       Nodemanager            Nodemanager                       Nodemanager

Histrory         HistroryServer                               

    2、基本环境准备

         2.1系统和软件【3台】

         CentOS6.5    hadoop 2.5.0     jdk1.70—67

         2.2配置IP和DNS(root)

                   配置静态IP

                   DNS

                   //检查主机映射

                   $cat /etc/hosts

 

                   //检查主机名

                   $cat/etc/sysconfig/network

 

                   //检查IP和DNS

                   $cat /etc/sysconfig/network-scripts/ifcfg-eth0

 

                   2.3关闭防火墙 (3台) (root)           

                   #service iptables stop

                   #chkconfig iptables off

 

                   检查:

                   $sudo service iptables status

                   iptables:Firewall is not running.

 

                   $sudo chkconfig --list | grep iptables

                   0:off 1:off 2:off 3:off 4:off 5:off 6:off

 

                   关闭Linux安全子系统

                   #vi /etc/sysconfig/selinux

 

                   2.4创建相同普通用户名和密码 【3台】

                   #useradd user

                   #echo 123456 | passwd --stdin user

 

                   2.5配置主机映射   【三台都需要需要添加】

                   #vi /etc/hosts

192.168.7.9 vampire01

192.168.7.10 vampire02

192.168.7.11 vampire03

 

                   2.6卸载自带的jdk

                   #rpm -qa | grep jdk

# rpm -e --nodepstzdata-java-2012j-1.el6.noarch

# rpm -e --nodepsjava-1.6.0-openjdk-1.6.0.0-1.50.1.11.5.el6_3.x86_64

# rpm -e --nodepsjava-1.7.0-openjdk-1.7.0.9-2.3.4.1.el6_3.x86_64

                  

                   配置Java环境变量

                   #vi /etc/profile

 

                    #JAVA_HOME

export JAVA_HOME=/opt/modules/jdk1.7.0_67

export PATH=$PATH:$JAVA_HOME/bin

                  

                   生效配置

                   source/etc/profile

 

                   检查Java环境变量

                   java-version

                   javaversion "1.7.0_67"

Java(TM) SE Runtime Environment (build1.7.0_67-b01)

 

二、配置NTP服务

 

         *.把PC1作为整个集群的时间同步服务器

         *.集群中所有其他服务器都来这台服务器PC1同步时间

 

         1.检查每台服务器所在的时区

        $ date -R

         Thu,23 Mar 2017 11:13:57 +0800

 

         如果不是+0800,如要通过如下命令调整

         #rm  -rf /etc/localtime        ---如果时区不是+0800

         #ln -s /usr/share/zoneinfo/Asia/Shanghai  /etc/localtime

 

         2.安装ntp服务

          #rpm -qa | grep ntp      --查看ntp软件包是否已安装

         ntp-4.2.6p5-1.el6.centos.x86_64

         ntpdate-4.2.6p5-1.el6.centos.x86_64

 

         #yum  -y install ntp     --如果没有那就需要安装ntp

 

         3.修改ntp的配置文件(PC1)

         #vi /etc/ntp.conf

         去掉第18行的# 修改成自己的网段

         restrict192.168.7.0 mask 255.255.255.0 nomodify notrap

         注释掉以下几行(22行)

           #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

 

     CentsOS6.4 去掉注释第35 36行

     CentsOS6.5 去手动添加以下内容

     server 127.127.1.0     #localclock

     fudge 127.127.1.0  stratum 10

 

    4、同步服务器的时间(PC1)

    # ntpdate cn.pool.ntp.org   -->操作这一步时关闭ntp服务

23 Mar 11:36:56 ntpdate[26856]: step timeserver 173.255.246.13 offset -12.240613 sec

    5、启动ntp服务(默认式开始)PC1 root用户操作

     # service ntpd start

      # chkconfig ntopd on

     $ sudo chkconfig --list | grep ntpd

 

     $ sudo ntpdate 202.120.2.101

  9Jun 15:27:49 ntpdate[2689]: the NTP socket is in use, exiting  //ntpd一旦开启就不能手动同步时间

        

         6、如果另外两台的ntp的进程开启,那么需要关闭

         #service ntpd stop

         #chkconfig ntpd off

 

 

         7.第2、3台向第一台同步时间

         #ntpdate vampire01

         16Feb 17:43:27 ntpdate[2554]: adjust time server 192.168.7.9 offset -0.001412 sec

 

         8.制定周期性时间同步计划任务(PC2、PC3定时向PC1手动同步时间)

         在PC2 PC3每10分钟同步一次时间

         #crontab -e

*/10 * * * * /usr/bin/sudo /usr/sbin/ntpdate vampire01

        

         [注意]:如果确实无法向第一台同步时间,请在交互窗口(可以同时设置3台时间)执行手动设置时间

         #date -s "11:48:00 2017/3/23"

 

三、配置SSH免密钥登录

         使用ssh登录的时候不需要用户名密码

         $sbin/start-dfs.sh

        (PC1~PC3)

         $ssh-keygen  

         *  回车,生产当前主机的公钥和私钥(需要确认和输入密码)

 

         //分发密钥(要向3台都发送)

         $ssh-copy-id vampire01

         $ssh-copy-id vampire02

         $ssh-copy-id vampire03

 

        

 

分发完成之后会在用户主目录下.ssh目录生成以下文件

$ ls .ssh/

authorized_keys  id_rsa id_rsa.pub  known_hosts

 

测试失败,需要先删除.ssh目录,重做一遍

 

四、安装Hadoop(有8个文件需要配置,暂时三台所有的配置一致,配一台,然后拷贝到另外两台)

         1.下载上传到Linux并解压hadoop的.tar.gz

$ tar -zxf hadoop-2.5.0.tar.gz -C/opt/modules/

 

         2.删除${HADOOP_HOME}/share/doc

$ rm -rf doc/

 

         3.配置java环境支持在${HADOOP_HOME}/etc/hadoop

在hadoop-env.sh  mapred-env.sh   yarn-env.sh中配置

 

         exportJAVA_HOME=/opt/modules/jdk1.7.0_67

 

         4.配置slaves(集群中所有的主机)

         vampire01

         vampire02

         vampire03

 

         5.=======core-site.xml===

         <!--指定第一台作为NameNode-->

<property>

          <name>fs.defaultFS</name>

          <value>hdfs://vampire01: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>vampire02:50090</value>

    </property>

 

<!-- namenode的web访问主机名:端口号 -->

    <property>

        <name>dfs.namenode.http-address</name>

        <value>vampire01:50070</value>

        </property>

        

<!-- 关闭权限检查用户或用户组 -->

         <property>

        <name>dfs.permissions.enabled</name>

        <value>false</value>

   </property>

 

=================mapred-site.xml=======

         <property>

        <name>mapreduce.framework.name</name>

        <value>yarn</value>

    </property>

        

         <property>

        <name>mapreduce.jobhistory.address</name>

        <value>vampire01:10020</value>

    </property>

        

         <property>

        <name>mapreduce.jobhistory.webapp.address</name>

        <value>vampire01:19888</value>

    </property>

 

================yarn-site.xml======

<property>

        <name>yarn.resourcemanager.hostname</name>

        <value>vampire03</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>


   ===============================

 

 

【注意事项】:

1.slaves中配置集群中所有的主机名

2.所有节点上的配置文件内容都是一样的(联盟模式例外)

3.要按照集群规划配置所属进程

 

五、(PC1)分发hadoop(已经配置好的)目录到其他两台(PC2和PC3)服务器上

scp -r PC1的hadoop目录(带路径) PC2:/要复制到的目录

 

$ scp -r /opt/modules/hadoop-2.5.0/ vampire02:/opt/modules/

 

  $scp -r /opt/modules/hadoop-2.5.0/ vampire03:/opt/modules/

 

 六、格式化Namenode

  在PC1上的${HADOOP_HOME}/bin

  $bin/hdfs namendoe -format



 七启动测试



【注意】

1.先将PC1的hadoop配置目录分发到PC2和PC3

2.保证3台上的配置内容一模一样

3.先确保将3台之前残留的data 和 logs删除掉

4.最后格式化

 


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值