Hadoop完全分布式搭建

完全分布式安装

完全分布式是基于上一篇伪分布式环境安装的基础上搭建的。完全分布式与伪分布式区别在于,将节点数增多,datanode分布在其他服务器上。(参考伪分布式环境搭建博客:https://blog.youkuaiyun.com/Suoluo114/article/details/83185815

一、角色分配

组件   linux01             linux02               linux03

HDFS   namenode        datanode             datanode

Yarn                   resourcemanger

Yarn   nodemanager      nodemanager         nodemanager

history  historyserver

 

二、环境准备

    此处直接用搭建的伪分布式环境进行主机克隆出2台虚拟机,根据我的上一篇博客,只需注意在主机映射时把每台主机都要进行映射,因为3台之间要进行互相通信。(虚拟机搭建参考博客:https://blog.youkuaiyun.com/Suoluo114/article/details/84378229

    2.1系统和软件【3台】

    CentOS 6.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

 

        关闭Linux安全子系统

        # vi /etc/sysconfig/selinux

 

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

        # useradd hadoop

        # echo 123456 | passwd --stdin hadoop

 

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

        # vi /etc/hosts

192.168.7.9 hadoop.senior01

192.168.7.10  hadoop.senior02

192.168.7.11 hadoop.senior03

 

        2.6卸载自带的jdk

        # rpm -qa | grep jdk

# 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

 

三、配置NTP服务,此为同步时区设置,可选择不进行设置。

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

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

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

    $ date -R    --检查当前系统时区

    Thu, 16 Feb 2017 17:06:18 +0800

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

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

 

    2.安装ntp服务

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

 

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

 

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

    # vi /etc/ntp.conf

*去掉下面这行下面的#,并把网段修改成自己的网段

    restrict 192.168.7.0 mask 255.255.255.0 nomodify notrap

 

*注释掉一下几行

#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

 

把下面前面两行的#号去掉,如果没有,需要手动去添加

server 127.127.1.0      #local clock

fudge 127.127.1.0  stratum 10

    

    4.启动ntp服务(默认是开启)Linux01

    # service ntpd start   

    # chkconfig ntpd on

 

    5.同步服务器的时间(Linux01)

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

16 Feb 17:14:40 ntpdate[26564]: step time server 188.39.37.91 offset -12.669996 sec

 

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

    # service ntpd stop

    # chkconfig ntpd off

 

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

    # ntpdate hadoop.senior01

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

 

    8.制定周期性时间同步计划任务(第2、3台-Linux02 、Linux03)

    ## 每10分钟同步一次服务器时间

    */10 * * * * /usr/sbin/ntpdate hadoop.senior01

 

# date -s "19:05:56 2017/2/16"

 

四、配置免密钥登陆

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

 

    $ ssh-keygen

    * 回车,产生的当前主机的公钥和私钥

 

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

    $ ssh-copy-id hadoop.senior01

    $ ssh-copy-id hadoop.senior02

    $ ssh-copy-id hadoop.senior03  

 

    (Linux01~03 )

    $ ssh-keygen

    $ ssh-copy-id hadoop.senior01

    $ ssh-copy-id hadoop.senior02

    $ ssh-copy-id hadoop.senior03

 

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

authorized_keys  id_rsa  id_rsa.pub  known_hosts

如果配置错误可以先删除.ssh目录,重新做一遍

 

五,修改hadoop配置文件,完成分布式配置

若是直接搭建的hadoop完全分布式环境,在解压了hadoop文件之后需修改以下配置文件。在hadoop-2.7.3/etc/hadoop目录下修改。

若在我上一伪分布式基础上则只需修改hdfs-site.xml文件中副本数改为3,以及在slaves文件中添加各datanode节点主机名用来指定datanode主机。修改这两处则配置文件修改完成。

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

<!--指定第一台做namenode-->

<property>

    <name>fs.defaultFS</name>

    <value>hdfs://hadoop.senior01:8020</value>//此为主机名:8020

</property>

    

<property>

    <name>hadoop.tmp.dir</name>

    <value>/opt/modules/hadoop-2.5.0/data</value>//此为工作目录若解压文件中没有则需创建。

</property>

=========slaves=====

主机名//写每一个datanode节点主机名

=========hdfs-site.xml=====

<!-- 分布式副本数设置为3 -->

    <property>

        <name>dfs.replication</name>

        <value>3</value>

    </property>

    <!-- secondarynamenode主机名 -->

    <property>

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

        <value>hadoop.senior02:50090</value>

    </property>

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

    <property>

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

        <value>hadoop.senior01:50070</value>

    </property>

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

    <property>

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

        <value>false</value>

    </property>

 

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

<property>

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

        <value>hadoop.senior02</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>

六,删除工作空间,进行格式化,启动hadoop服务

在各个主机上删除工作空间

#cd /opt/modules/hadoop-2.7.3

#rm -rf data/tmp

在namenode主机上进行格式化

#bin/hdfs namenode -format

提示成功则格式化成功,若有错误没提示成功则配置文件有错。

在namenode主机上启动服务

#sbin/start-all.sh

启动服务成功会提示在某节点上启动某服务。

用#jps查看进程,在datanode节点主机上会有datanode 和 nodemanager进程

在namenode节点主机上会有namenode,resourcemanager,secondarynamenode进程。

至此完全分布式环境搭建完毕并成功启动。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值