美文网首页我爱编程
13. apache hadoop 4台分布式集群搭建-part

13. apache hadoop 4台分布式集群搭建-part

作者: 经纶先生 | 来源:发表于2017-08-31 18:17 被阅读0次

    生产环境磁盘规划问题

    首先我们datanode节点的数据是否需要做RAID??
    RAID的很大一部分意义是冗余的功能(RAID0除外),但是我们的HADOOP本身就是副本,自带冗余功能啊,所以HADOOP不建议我们做RAID,可以基于JBOD模型将多个磁盘串联成单个设备即可

    jbod:多块硬盘合并出来的一个存储空间,当地一块硬盘存满了,会继续存到第2块,一次类推,当一块硬盘损坏,所有数据丢失,HADOOP 推荐单盘JBOD

    raid0:区别就是如果你一块硬盘1T,另一块硬盘500G,JBOD之后就是1.5T,速度不变。
    但是如果你raid 0,那总容量只有1T,相当于500Gx2,以最小的容量硬盘大小来决定,速度大幅提高。

    生产环境中我司datanode服务器不支持JBOD模式,所以采取了单盘做raid0的方式

    datanode节点:JBOD或者单盘RAID0
    namenode节点:namenode存储元数据,可靠性要求极高,所以我们一定要做raid

    主从节点通信问题

    如果我们想在HADOOP的主控节点上使用hadoop用户使用命令直接控制从节点,需要怎么办??
    ok,那么我们需要打通ssh-key
    具体配置方式为:
    ssh免密详解

    真实HADOOP 结构

    hadoop结构

    说明一下 根据mapreduce的”数据本地优化“”,(data locality optimization)原理,数据的存储节点应该同时是数据的计算分析节点

    搭建

    1.确定ip 与 角色

    我们选择四台设备:

    • 10.1.10.196 NN SNN Resourcemanager
    • 10.1.10.197 Datanode&nodemanager
    • 10.1.10.198 Datanode&nodemanager
    • 10.1.10.199 Datanode&nodemanager

    2.修改4台设备主机名

    第一步

    hostname test001.ziepiyi.corp 
    

    第二步:

    sed -i "s#HOSTNAME=localhost.localdomain#HOSTNAME=test001.zipeiyi.corp#g" /etc/sysconfig/network
    

    3. 修改/etc/hosts 添加域名映射

    在每台上面修改

    vim /etc/hosts
    10.1.10.196 test001.zipeiyi.corp
    10.1.10.197 test002.zipeiyi.corp
    10.1.10.198 test003.zipeiyi.corp
    10.1.10.199 test004.zipeiyi.corp
    

    4. 下载并安装java

    java下载页面-请自行选择版本

    下载:wget http://10.0.70.5/pkgs/jdk-8u51-linux-x64.tar.gz
    创建java工作目录:mkdir -p /app/zpy/java
    解压:tar zxvf jdk-8u51-linux-x64.tar.gz -C /app/zpy/java  > /dev/null 2>&1
    配置环境变量:
    echo '# JAVA-8u51' >> /etc/profile
    echo 'JAVA_HOME=/app/zpy/java/jdk1.8.0_51' >> /etc/profile
    echo 'JAVA_BIN=/app/zpy/java/jdk1.8.0_51/bin' >> /etc/profile
    echo 'PATH=$PATH:$JAVA_BIN' >> /etc/profile
    echo 'CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar' >> /etc/profile
    echo 'export JAVA_HOME JAVA_BIN PATH CLASSPATH' >> /etc/profile
    即时生效:source  /etc/profile
    退出本机重新登陆,或者重新打开一个session,
    检测:java -version
    java version "1.8.0_51"
    Java(TM) SE Runtime Environment (build 1.8.0_51-b16)
    Java HotSpot(TM) 64-Bit Server VM (build 25.51-b03, mixed mode)
    You have new mail in /var/spool/mail/root
    

    5.配置NTP时间服务

    ntp时间服务器是用来保证所有机器的机器时间是同步的,hadoop集群对时间同步有一定要求
    这里我们直接使用公网NTP时间服务器进行同步,使用阿里云ntp服务器

    ntpdate ntp1.aliyun.com(执行两遍,因为第一次偏移量有时会很大,可以使用第二次进行再次校准)
    结果:
    1 Sep 10:51:59 ntpdate[2558]: adjust time server 182.92.12.11 offset 0.019492 sec
    
    加入到 crontab里面 
    vim /etc/crontab 
    */15 * * * *  root   /usr/sbin/ntpdate ntp1.aliyun.com
    

    6.创建hadoop用户及用户组并创建hadoop的数据和日志目录

    useradd hadoop
    echo 1qaz@WSX? | passwd --stdin hadoop
    mkdir -pv /data/hadoop/hdfs/{nn,snn,dn}    ##说明:nn:namenode  dn:datanode  snn:second namenode 
    mkdir -pv /data/hadoop/logs 
    修改属主,属组
    chown -R  hadoop:hadoop /data/hadoop/
    

    7.配置hadoop用户的ssh免登陆

    首先su hadoop 
    三台分别执行:
    ssh-keygen -t rsa
    cd ~
    chmod  -R 700 .ssh
    每台上分别执行四条:(记住每台设备与自己的ssh也要打通)
    ssh-copy-id -i ~/.ssh/id_rsa.pub 10.1.10.196
    ssh-copy-id -i ~/.ssh/id_rsa.pub 10.1.10.197
    ssh-copy-id -i ~/.ssh/id_rsa.pub 10.1.10.198
    ssh-copy-id -i ~/.ssh/id_rsa.pub 10.1.10.199
    

    我们为hadoop用户做ssh 免登陆是因为后面hadoop程序需要,下面我们为root用户也做ssh免登陆,纯粹是为了操作方便

    后面详见文章
    14. apache hadoop 4台分布式集群搭建-part2

    相关文章

      网友评论

        本文标题:13. apache hadoop 4台分布式集群搭建-part

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