(配置Hadoop2.x 环境搭建)完全分布式集群

完全分布式的安装

 

一、集群规划

组件

PC1

PC2

PC3

HDFS

Namenode

SecondaryNamenode

 

 

Datanode

Datanode

Datanode

Yarn

 

 

RecourceManager

 

Nodemanager

Nodemanager

Nodemanager

Histrory

HistroryServer

 

 

 

二、基本环境准备

2.1系统和软件【3台】

     CentOS 6.5    hadoop 2.5.0(仅需在1台有即可)     jdk1.70—67

2.2 配置IP和DNS(root权限)

       这些我们可以直接使用我上一篇文章中的克隆技术,直接克隆得到。

       配置静态IP

              DNS

              //检查主机名

              $cat /etc/sysconfig/network

 

              //检查IP和DNS

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

 

             

              //检查主机映射

              $cat /etc/hosts   ->Linux

              C:\Windows\System32\drivers\etc\hosts   ->Windows

 

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

 

              为了提交性能,可以考虑将启动方式调整为不带桌面

              sudovim /etc/inittab

              id:3:initdefault:

 

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

              添加用户:# useradd hadoop

              添加密码:# echo 123456 | passwd --stdin hadoop

 

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

              #vi /etc/hosts

192.168.7.9hadoop.senior01

192.168.7.10hadoop.senior02

192.168.7.11hadoop.senior03

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

exportJAVA_HOME=/opt/modules/jdk1.7.0_67

exportPATH=$PATH:$JAVA_HOME/bin

             

              生效配置

              source/etc/profile

 

              检查Java环境变量

              java-version

      显示:java version "1.7.0_67"

Java(TM)SE Runtime Environment (build 1.7.0_67-b01)

 

三、配置NTP服务

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

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

 

3.1.检查每台服务器所在的时区(东八区为:+0800)

    $ date-R

     显示:Tue, 29 Aug 2017 20:16:41 +0800

 

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

     # rm -rf /etc/localtime        ---先删除

     # ln -s/usr/share/zoneinfo/Asia/Shanghai  /etc/localtime  --添加上海地区

 

3.2.安装ntp服务

     Ntp一般都是在centos中安装好的。

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

如果已经安装ntp软件包会显示如下:

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

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

如果没有那就需要安装ntp:

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

 

 

3.3.修改ntp的配置文件(PC1主机)

     # vi /etc/ntp.conf

在命令模式下输入“: set nu”来显示行数

     去掉第18行中的的“#”字符,并修改成自己的网段

比如:192.168.224.0,其他则不需要修改

     restrict 192.168.224.0 mask 255.255.255.0nomodify 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 去手动添加以下内容:

server127.127.1.0     #local clock

fudge127.127.1.0  stratum 10

 

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

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

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

 

3.5、启动ntp服务(默认是开始)PC1 需要root用户操作

     # service ntpd start

     # chkconfig ntopd on

     $ sudo chkconfig --list | grep ntpd

此时应该显示:

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

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

此时如果手动同步时间:   

 $ sudo ntpdate 202.120.2.101

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

    

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

     关闭:# service ntpd stop

     或者:# chkconfig ntpd off

 

 

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

     输入:# ntpdate hadoop.senior01

     显示成功:16 Feb 17:43:27 ntpdate[2554]: adjust time server192.168.7.9 offset -0.001412 sec

 

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

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

     # crontab -e

*/10 * * * */usr/bin/sudo  /usr/sbin/ntpdate 主机名

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

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

$ sudodate -s  '2017/08/29 15:34:30'

四、配置SSH免密钥登录

       使用ssh登录的时候,我们在第一台主机中登录到第二台或者第三台是不需要输入用户名密码的,同理,我们在第二台主机中登录到第一台或者第三台也是不需要输入用户名密码的。

       $ssh-keygen  

       *  四次回车,生产当前主机的公钥和私钥并显示将密匙存放在:

(/home/hadoop/.ssh/id_rsa);

 

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

       $ssh-copy-id hadoop.senior01

       $ssh-copy-id hadoop.senior02

       $ssh-copy-id hadoop.senior03

 

       (PC1~PC3)

       $ssh-keygen

       $ssh-copy-id hadoop.senior01

       $ssh-copy-id hadoop.senior02

       $ssh-copy-id hadoop.senior03

 

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

$ ls .ssh/

authorized_keys id_rsa  id_rsa.pub  known_hosts

 

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

$ rm -r ~/.ssh

五、安装Hadoop

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

$ tar -zxfhadoop-2.5.0.tar.gz -C /opt/modules/

 

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

$ rm -rf doc/

 

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

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

 

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

 

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

     hadoop.senior01

     hadoop.senior02

     hadoop.senior03

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

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

<property>

     <name>fs.defaultFS</name>

     <value>hdfs://hadoop.senior01: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.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>

 

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

<!--指定mapreducer向yarn提交-->

     <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>

 

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

<!--指定哪个节点作为resourcemanager-->

     <property>

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

       <value>hadoop.senior03</value>

    </property>

    

     <!--在mapreducer过程中启用shuffle-->

     <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>

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

 

 5.5.配置slaves

hadoop.senior01

hadoop.senior02

hadoop.senior03

 

【注意事项】:

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

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

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

六、分发Hadoop并复制到其他两个服务器上

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

 

$ scp -r /opt/modules/hadoop-2.5.0/hadoop.senior02:/opt/modules/

 

 $ scp -r/opt/modules/hadoop-2.5.0/ hadoop.senior03:/opt/modules/

 

$ scp -r etc/hadoop bigdata.Linux3:/opt/modules/hadoop-2.5.0/etc/

$ scp -r etc/hadoop bigdata.Linux3:/opt/modules/hadoop-2.5.0/etc/

 

七、格式化Namenode

 在PC1上的${HADOOP_HOME}/bin

 $ bin/hdfsnamendoe -format

 

【注意】

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

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

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

4.最后格式化

八、开启进程

在PC1上使用如下命令启动HDFS

      $ sbin/start-dfs.sh

 

      在PC3上使用如下命令启动YARN

      $ sbin/start-yarn.sh

 

      停止进程

      在PC1上使用如下命令停止HDFS

      $ sbin/stop-dfs.sh

 

      在PC3上使用如下命令停止YARN

      $ sbin/stop-yarn.sh

 

【注意】

修改任何配置文件,请先停止所有进程,然后重新启动

八、检查启动是否正常

3台主机上jps查看进程,参考之前的集群规划

分别显示:

PC1:

28626 DataNode

28883 NodeManager

28989 Jps

28531 NameNode

 

 

PC2:

7528 DataNode

7826 Jps

7717 NodeManager

7583 SecondaryNameNode

 

PC3

7622 NodeManager

7922 Jps

7527 ResourceManager

7405 DataNode

      

 


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值