[Hadoop完全分布式集群部署]

Hadoop完全分布式集群部署


1 集群规划

      以四台机器为例,linux用的是CentOS 6.5 x64的机器对集群部署进行规划,所有机器的用户名及密码均为hadoop。

主机名

安装软件

JPS

hdfs

yarn

HistoryServer

cdh.hadoo.com

Jdk/hadoop

NameNode

RecourceManager

JobHistoryServer

slave1.hadoop.com

Jdk/hadoop

DataNode

SecondaryNamenode

Nodemanager      

 

slave2.hadoop.com

Jdk/hadoop

DataNode

Nodemanager      

 

slave3.hadoop.com

Jdk/hadoop

DataNode

Nodemanager      

 

      为了编写方便,以下分别按照顺序PC1、PC2、PC3、PC4命名。

2 准备环境

Linux环境准备工作,均在root用户下进行。

2.1 环境配置(root)

1、环境准备

安装环境准备

序号

操作步骤

操作内容

1

修改主机名

[不能数字开头,特殊字符]

# vi /etc/sysconfig/network

$ cat /etc/sysconfig/network

2

主机映射

# vi /etc/hosts

ip地址  主机名

windows下主机映射

C:/windows/system32/driver/hosts

四台机器都需要映射

3

配置网络静态化

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

ONBOOT=yes

BOOTPROTO=static

4

关闭Linux 防火墙

# service iptables status   ##查看防火墙状态

iptables: Firewall is not running.

# service iptables stop     ##关闭防火墙

5

关闭开机启动防火墙

#  chkconfig iptables off   ##不随机启动

6

关闭安全子系统

# vi /etc/sysconfig/selinux

SELINUX=disabled

7

普通用户sudo命令配置

切换root用户

# chmod u+w /etc/sudoers

# vim /etc/sudoers

添加 hadoop  ALL=(ALL)  ALL

# chmod u-w /etc/sudoers

8

配置SSH免密钥登录

$ ssh-keygen -t rsa  

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

id_rsa      -》私钥

id_rsa.pub     -》公钥

$ ssh-copy-id cdh.hadoop.com

      分别在四台机器上配置好上表所列的配置信息并验证配置信息是否成功。

2.2、配置主机映射

      在四台机器上分别配置主机映射。

# vi /etc/hosts

192.168.126.220 cdh.hadoop.com

192.168.126.231 slave1.hadoop.com

192.168.126.232 slave2.hadoop.com

192.168.126.233 slave3.hadoop.com

2.3 配置NTP服务(root)

把cdh.Hadoop.com作为整个集群的时间同步服务器,集群中所有其他服务器都来这台服务器cdh.Hadoop.com同步时间。

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

           $date -R

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

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

            # 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的配置文件(cdh.hadoop.com)

            # vi /etc/ntp.conf

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

                  restrict 192.168.7.0 mask255.255.255.0 nomodify notrap

            注释掉以下几行(22行)

                #server0.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

 

   4、启动ntp服务(默认式开始)cdh.hadoop.com root用户操作

         # service ntpd start

        # chkconfig ntopd on

 

   5、同步服务器的时间(cdh.hadoop.com)

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

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

     

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

            # service ntpd stop

            # chkconfig ntpd off

 

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

            # ntpdate slave1.hadoop.com

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

            #ntpdate slave2.hadoop.com

#ntpdate slave3.hadoop.com

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

            在第2、3、4台服务器上,每10分钟同步一次时间

            # crontab -e

*/10* * * * /usr/sbin/ntpdate cdh.hadoop.com

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

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

2.3 SSH免密配置

      四台机器上分别配置SSH免密登录。

主机名

SSH免密分发

cdh.hadoop.com

$ ssh-copy-id slave1.hadoo.com

$ ssh-copy-id slave2.hadoo.com

$ ssh-copy-id slave3.hadoo.com

slave1.hadoo.com

$ ssh-copy-id cdh.hadoo.com

$ ssh-copy-id slave2.hadoo.com

$ ssh-copy-id slave3.hadoo.com

slave2.hadoo.com

$ ssh-copy-id cdh.hadoo.com

$ ssh-copy-id slave1.hadoo.com

$ ssh-copy-id slave3.hadoo.com

slave2.hadoo.com

$ ssh-copy-id cdh.hadoo.com

$ ssh-copy-id slave1.hadoo.com

$ ssh-copy-id slave2.hadoo.com

2.4 安装jdk

       使用普通用户(不是root用户), 在四台机器上分别安装jdk环境。

      1、卸载openJDK

          # rpm -qa | grep jdk

          # rpm -e --nodeps   XXX.rpm  //不验证依赖进行卸载

      2、安装jdk

$ tar -zxf jdk-7u67-linux-x64.tar.gz  -C /opt/modules/

      3、配置环境变量

            $sudo vim /etc/profile 

# JAVA_HOME

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

export PATH=$PATH:$JAVA_HOME/bin

      4、环境变量pei配置生效

            $ source /etc/profile

3 配置hadoop

      在PC1主机上安装hadoop和配置hadoop,然后使用scp分别分发hadoop到另外的三个主机上。

3.1 安装hadoop

1、安装

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

      2、删除doc

删除${HADOOP_HOME}/share/doc

            $ rm -rf doc/

3.2 文件配置

1、配置java环境

      在${HADOOP_HOME}/etc/hadoop目录下,在文件hadoop-env.sh、mapred-env.sh、yarn-env.sh文件中配置Java环境。

      exportJAVA_HOME=/opt/modules/jdk1.7.0_67

      2、集群配置

      在${HADOOP_HOME}/etc/hadoop目录下,分别配置一下文件。

2、core-site.xml配置

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

<property>

            <name>fs.defaultFS</name>

            <value>hdfs://cdh.hadoop.com:8020</value>

</property>

<property>

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

            <value>/opt/modules/cdh/hadoop/data</value>

</property>

3、hdfs-site.xml配置

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

      <property>

       <name>dfs.replication</name>

       <value>3</value>

   </property>

<!-- secondarynamenode主机名 -->

      <property>

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

       <value>slave1.hadoop.com</value>

   </property>

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

   <property>

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

       <value>cdh.hadoop.com:50070</value>

      </property>

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

      <property>

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

       <value>false</value>

   </property>

4、mapred-site.xml配置

<property>

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

       <value>yarn</value>

   </property>

      <property>

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

       <value>cdh.hadoop.com:10020</value>

   </property>

      <property>

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

       <value>cdh.hadoop.com:19888</value>

   </property>

5、yarn-site.xml配置

      <property>

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

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

      <!--日志保存时间 默认保存 3-7天--->

      <property>

            <name>yarn.log-aggregation.retain-seconds</name>

            <value>604800</value>

      </property>

      <property>

            <name>yarn.web-proxy.address</name>

            <value>cdh.hadoop.com:8088</value>

      </property>

6、Slaves配置

      salve1.hadoopc.com

salve2.hadoopc.com

salve3.hadoopc.com

【注意事项】

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

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

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


4 配置分发

4.1 配置分发操作

在(PC1)分发hadoop(已经配置好的)目录到其他三台(PC2、PC3、PC4)服务器上。

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

$ scp -r /opt/modules/cdh/hadoop salve1.hadoop.com:/opt/modules/cdh

$ scp -r /opt/modules/cdh/hadoopsalve2.hadoop.com:/opt/modules/cdh

$ scp -r /opt/modules/cdh/hadoopsalve3.hadoop.com:/opt/modules/cdh


5 启动集群

5.1格式化Namenode

     在PC1上的${HADOOP_HOME}/bin

     $ bin/hdfs namenode -format

【注意】

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

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

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

4.最后格式化

5.2 启动进程

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

           $sbin/start-dfs.sh

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

           $sbin/start-yarn.sh

5.3停止进程

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

           $sbin/stop-dfs.sh

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

           $sbin/stop-yarn.sh

【注意】

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


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值