5.分布式集群环境

作者: 奉先 | 来源:发表于2017-01-11 12:34 被阅读63次

    1.虚拟机VMware Tools安装:

    安装VMWare Tools非常简单,右键一个虚拟机,选择“安装VMware Tools” (其实,这时候就将VMware Tools安装包加载到光驱了) 。

    以root用户登录该台服务器。将光驱挂载到任一目录下(我这里使用 /mnt):

    mount /dev/cdrom /mnt

    这时候,在 /mnt 目录可以看到文件 “VMwareTools-10.0.0-2977863.tar.gz”。

    由于,我们要将该压缩文件解压,而/mnt目录当前挂载的是光驱,是不可写的,所以要将该文件拷贝到其他目录(我们就使用/tmp目录即可)。

    cp VMwareTools-10.0.0-2977863.tar.gz /tmp/

    cd /tmp

    tar zxf VMwareTools-10.0.0-2977863.tar.gz

    解压完成后,进入vmware-tools-distrib目录 ,执行脚本 vmware-install.real.pl 

    perl vmware-install.pl

    后边,就一路使用默认项,回车,回车即可完成安装了。

    安装完成后重启虚拟机。

    2.分布式集群硬件规划和系统环境准备:

    namenode建议使用raid1/raid5,datanode不建议使用raid。

    1. Hadoop集群实验环境规划:

    目前为止,我们需要在三台集群环境上规划我们的现有的Hadoop角色,我们需要设计下面的这些角色都安装到哪台服务器上:

    HDFS :  namenode 、 datanode 、 secondarynamenode

    YARN : resourcemanager   nodemanager

    HISTORY:  historyserver

    2. 角色安装规划表:

    Hadoop角色安装规划

    如果我们需要安装更多的角色,或者我们有更多的主机,也可以按照上表的方式来进行规划,然后按照这张表来进行环境的安装搭建。下面我们按照上表的配置来就行环境的搭建。

    3. 准备系统环境:

    注意:以下4个步骤的操作,需要在三个服务器上分别执行。

    (1)关闭三台服务器的selinux和防火墙。

    该操作需要使用root用户执行。

    a). 关闭selinux,需要修改配置文件:

    # vi /etc/sysconfig/selinux

    修改配置:

    SELINUX=disabled

    b). 关闭防火墙:

    修改后一次生效:

    # service iptables stop

    下次重启时也生效:

    # chkconfig iptables off

    (2)固定主机名:

    我的三台主机名分别是 :

    hadoop-senior01.pmpa.com

    hadoop-senior02.pmpa.com

    hadoop-senior03.pmpa.com

    需要修改文件:

    # vi /etc/sysconfig/network

    修改下边一行:

    HOSTNAME=hadoop-senior01.pmpa.com

    (3)添加hosts文件:

    修改/etc/hosts文件,添加下边内容:

    192.168.8.128    hadoop-senior01.pmpa.com

    192.168.8.129    hadoop-senior02.pmpa.com

    192.168.8.130    hadoop-senior03.pmpa.com

    (4) 在三个服务器上,都新建用户 natty:

    # useradd natty

    # echo 123456 | passwd --stdin natty

    3.NTP时间同步:

    NTP代表 Network Time Protocal , 也就是同步互联网上的时间服务器的时间。我们把第一台服务器hadoop-senior01.pmpa.com作为NTP服务器的Server端,其余两台服务器同步这个服务器的时间。

    注意:该项操作需要使用root用户,但是在一台服务器上做即可,其他服务器同步这台服务器,我们在hadoop-senior01上做。

    (1)修改服务器的时区

    如果操作系统在安装时,选择的不是上海的时区,要首先修改成shanghai时区,否则时间同步会失败。先将原来的时区文件(/etc/localtime)改名备份:

    mv /etc/localtime /etc/localtime_bak

    再创建一个软链接文件,指向上海的时区文件:

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

    (2)同步服务器的时间:

    使用ntpdate命令来同步时间。选择亚洲时间服务器来同步时间:

    # ntpdate asia.pool.ntp.org

    把当前时间写入硬件BIOS:

    # hwclock -w

    (3)修改NTP配置文件:

    关于NTP配置文件的详细介绍,可以参考下链接:Linux NTP配置详解

    ntp配置文件的位置在 /etc/ntp.conf

    a. 去掉下边这行的注释,并改成自己机器IP的网段:

    该行用来控制相关权限,语法为: restrict IP地址 mask 子网掩码 参数  。

    其中,nomodify notrap 都是参数。

    nomodify:客户端不能更改服务端的时间参数,但是客户端可以通过服务端进行网络校时。

    notrap :不提供trap远端登陆:拒绝为匹配的主机提供模式 6 控制消息陷阱服务。陷阱服务是 ntpdq 控制消息协议的子系统,用于远程事件日志记录程序。

    restrict 192.168.8.0 mask 255.255.255.0 nomodify notrap

    b. 下面3行加上注释:

    这三行原本的作用是设定NTP主机来源,由于我们将hadoop-senior01设定为了NTP Server端,所以这几行都注释掉。

    #server 0.centos.pool.ntp.org

    #server 1.centos.pool.ntp.org

    #server 2.centos.pool.ntp.org

    以下两行去掉注释:

    如果无法与上层ntp server通信以本地时间为标准时间。

    server  127.127.1.0    # local clock

    fudge  127.127.1.0 stratum 10

    (4)修改nptd服务配置:

    重启nptd服务:

    # service ntpd restart

    设置ntpd服务,开机后启动(默认是开机后不启动ntpd服务):

    # chkconfig ntpd on

    (5)设置hadoop-senior02和hadoop-senior03两个服务器,每隔5分钟向hadoop-senior01同步一次时间,使用crontab来实现。

    # crontab -e

    */10 * * * * /usr/sbin/ntpdate hadoop-senior01.pmpa.com

    4.SSH无秘钥登录:

    注意:该项操作,需要使用natty用户进行。

    1. 使用SSH无秘钥登陆的作用:

    (1)方便使用scp命令在 不同节点间拷贝文件;

    (2)按模块启动服务, start-dfs.sh   start-yarn.sh。

    2. 配置无秘钥登陆:

    配置hadoop-senior01可以无秘钥登陆 hadoop-senior01、hadoop-senior02、hadoop-senior03。在hadoop-senior01上执行:

    $ ssh-keygen -t rsa

    执行后,不输入任何内容,一直回车就可以。

    下面步骤,将上一步在hadoop-senior01上生成的公钥copy到hadoop-senior02和hadoop-senior03上。第一次需要输一次密码。

    $ ssh-copy-id natty@hadoop-senior01.pmpa.com

    $ ssh-copy-id natty@hadoop-senior02.pmpa.com

    $ ssh-copy-id natty@hadoop-senior03.pmpa.com

    在hadoop-senior02和 hadoop-senior03上重复上边的步骤。

    5.分布式环境搭建和测试启动:

    1. 在02和03机器上,创建/opt/modules目录,并赋权限(跟01保持一致)。

    # mkdir /opt/modules

    # chown -R natty:natty /opt/modules/

    2. 在02和03上配置环境变量

    # vi /etc/profile

    把java环境变量的配置复制到02和03的/etc/profile文件中。

    3. 拷贝java安装目录到02和03服务器:

    $ scp -r /opt/modules/jdk1.7.0_67/ natty@hadoop-senior02.pmpa.com:/opt/modules/

    4. 修改 hadoop的配置文件:

    需要修改以下4个组件:

    core-site.xml

    hdfs-site.xml

    yarn-site.xml

    mapred-site.xml

    datanode在$HADOOP_HOME/etc/hadoop/slaves 文件中配置。把所有作为datanode的节点的主机名列在这个文件中就可以。

    slaves

    5. 拷贝一个配置好的节点的haoop目录内容,到其他2个节点上。

    在这里,由于我之前配置了伪分布式模式,在hadoop-senior01机器上,所以将hadoop-senior01配置好的内容,直接scp到hadoop-senior02和hadoop-senior03上。

    $ scp -r hadoop-2.5.0/ natty@hadoop-senior02.pmpa.com:/opt/modules/ ; scp -r hadoop-2.5.0/ natty@hadoop-senior03.pmpa.com:/opt/modules/

    6.删除02和03机器上已经安装好的java(操作系统默认安装的)

    切换到root用户,查看已经安装的版本:

    # rpm -qa | grep java

    删除这些已经安装的java,进而使用我们安装jdk 1.7 

    # rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.50.1.11.5.el6_3.x86_64 tzdata-java-2012j-1.el6.noarch java-1.7.0-openjdk-1.7.0.9-2.3.4.1.el6_3.x86_64

    执行环境变量(当然重启系统也是可以的):

    # source /etc/profile

    7.  格式化hdfs:

    $ bin/hdfs namenode -format

    8. 启动hdfs、yarn 和 jobhistory组件:

    根据在文章最开始时候,我设计的安装规划表,namenode是安装在hadoop-senior01上的,所以启动hdfs需要在hadoop-senior01上执行;ResourceManager是安装在hadoop-senior02上的,所以在hadoop-senior02 上启动yarn。 jobhistoryserver是在hadoop-senior03上安装的,jobhistory启动在hadoop-senior03上。

    在第一台服务器上启动hdfs:

    $ sbin/start-dfs.sh

    在第二台服务器上启动yarn(配置的resourcemanager在hadoop-senior02上)

    $ sbin/start-yarn.sh

    在第三台服务器上启动 jobhistory 服务:

    $ sbin/mr-jobhistory-daemon.sh  start historyserver

    9.测试集群有效性:

    可以执行一些hdfs的命令来进行测试:

    $ bin/hdfs dfs -mkdir /input

    $ bin/hdfs dfs -ls /

    $ bin/hdfs dfs -put etc/hadoop/core-site.xml /input/

    $ bin/hdfs dfs -text /input/core-site.xml

    运行 yarn上的mapreduce来测试:

    $ bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.0.jar wordcount /input/core-site.xml /output01

    $ bin/hdfs dfs -text /output01/part*

    修改windows本地的hosts文件(C:\Windows\System32\drivers\etc\hosts)添加映射,来用浏览器来测试:

    HDFS访问页面(hdfs-site.xml):  http://hadoop-senior01.pmpa.com:50070/

    YARN访问页面(可以进入yarn的管理页面,默认配置):http://hadoop-senior02.pmpa.com:8088   

    在上一个页面,点击“History” 可以跳转到第三个服务器的地址。

    yarn管理界面

    点击了History直接跳转:

    JobHistory服务器界面

    相关文章

      网友评论

        本文标题:5.分布式集群环境

        本文链接:https://www.haomeiwen.com/subject/mfqrbttx.html