Hadoop 2.X 完全分布式的配置

来源:互联网 发布:淘宝网冬季舞靴 编辑:程序博客网 时间:2024/05/26 02:20

完全分布式的安装

1、 集群规划  -> 不同的守护进程运行哪些

         角色分配:

组件

COM 1

COM 2

COM 3

HDFS

 Namenode

SecondaryNamenode

 -

Datanode

Datanode

Datanode

Yarn

-

-

RecourceManager

Nodemanager

Nodemanager

Nodemanager

Histrory

HistroryServer

-

-

 

 

2、基本环境准备

         2.1系统和软件【3台】

         CentOS6.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.159.101 com1.james

192.168.159.102 com2.james

192.168.159.103 com3.james

 

2.6卸载自带的jdk

                  # rpm -qa |grep jdk

# rpm -e --nodeps tzdata-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 --nodeps java-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

                  java version"1.7.0_67"

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

二、配置NTP服务

 

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

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

 

         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的配置文件(COM 1)

         #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     #local clock

fudge 127.127.1.0  stratum 10

 

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

    # 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 hadoop.senior01

         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/sbin/sudo /usr/sbin/ntpdatecom1.james

        

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

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

 

三、配置SSH免密钥登录

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

         $sbin/start-dfs.sh

        

         $ssh-keygen  

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

 

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

         $ssh-copy-id com1.james

         $ssh-copy-id com2.james

         $ssh-copy-id com3.james

 

         (COM 1~COM 3)

         $ssh-keygen

         $ssh-copy-id com1.james

         $ssh-copy-id com2.james

         $ssh-copy-id com3.james

 

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

$ ls .ssh/

authorized_keys  id_rsa id_rsa.pub  known_hosts

 

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

 

四、安装Hadoop

         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(集群中所有的主机)

         com1.james

         com2.james

         com3.james

 

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

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

<property>

       <name>fs.defaultFS</name>

       <value>hdfs://com1.james: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> com2.james:50090 </value>

   </property>

 

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

   <property>

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

       <value> com1.james: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> com1.james:10020</value>

   </property>

        

         <property>

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

       <value> com1.james:19888</value>

   </property>

 

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

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

<property>

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

       <value> com3.james </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.配置slaves

com1.james

         com2.james

         com3.james

【注意事项】:

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

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

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

 

五、(COM 1)分发hadoop(已经配置好的)目录到其他两台(COM 2和COM 3)服务器上

scp -r COM 1的hadoop目录(带路径) COM 2:/要复制到的目录

 

$ scp -r /opt/modules/hadoop-2.5.0/ com2.james:/opt/modules/

 

 $scp -r /opt/modules/hadoop-2.5.0/ com3.james:/opt/modules/

 

 六、格式化Namenode

 在COM 1上的${HADOOP_HOME}/bin

 $bin/hdfs namendoe -format

 

【注意】

1.先将COM 1的hadoop配置目录分发到COM 2和COM 3

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

 

【注意】

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


原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 魔力宝贝手机版注册人数已满怎么办 买家投诉虚假签收淘宝卖家该怎么办 手机淘宝商家老打骚扰电话怎么办 手机上查询详单忘记服务密码怎么办 淘宝上的东西买过就找不到了怎么办 刚刚开的淘宝企业店没有流量怎么办 有图片怎么在淘宝找不到商品怎么办 白色高跟鞋鞋面磨脏了怎么办弄干净 我跟鞋后跟磨烂的脚怎么办? 内衣买回来有一股刺鼻的味道怎么办 裁剪袖子开口偏了1公分怎么办 对于这乱扔垃圾不听劝者该怎么办 感觉被南通蒲公英店铺骗了怎么办 6个月宝宝吃米粉不吃奶怎么办 十个月的宝宝不吃辅食怎么办 5个月宝宝拉肚子有泡沫怎么办 生完孩子后皮肤暗黄怎么办 开服装店批发服装的吊牌怎么办 天虹的鞋一天就坏了怎么办 车被钥匙划了露底漆了怎么办 数控铣z轴回不了参考点怎么办 白色衣服被黑色衣服染了怎么办 夏天出汗衣服粘身上都是毛毛怎么办 支付宝租的手机坏了怎么办 新买的衣服布料扎人怎么办 洗衣服的时候卫生纸沾裤子上怎么办 洗衣服给白衣服染上色了怎么办 不小心喝了游泳池的水怎么办 铁水中硅的含量高了怎么办 视频拍摄单人变双人是怎么办的 四季青进来的货比淘宝还贵怎么办 淘宝还没收货价格买贵了怎么办 在微信上赌博庄跑了怎么办 微信赌博输了10000多怎么办 欠了信用卡说来来家里调查怎么办 没用过的超市购物卡丢了怎么办 体验服抢号成功手机号填错了怎么办 起亚kx3一键启动钥匙没电怎么办 逆战下载的时候显示文件损坏怎么办 移动公司买手机送话费套路怎么办 开通京东白条身份信息被占用怎么办