大数据基础-hadoop-集群搭建(5)

557 阅读3分钟

前言

    上回说到安装了jdk和hadoop,接下来我们要真正的搭建一个集群跑一跑!

集群搭建方案

  1. 直接上图:

  2. 准备3台客户机(关闭防火墙,修改主机名称,这个步骤上上回已经处理了,好像忘记修改主机名称了,这次搞它一下!)

  3. 克隆虚拟机192.168.2.132,192.168.2.133 这块大家自行克隆

  4. 配置ip(192.168.2.132,192.168.2.133 操作一致)

    cd /etc/sysconfig/network-scripts/
    #编辑文件
    vim ifcfg-ens33
    #编辑ip
    IPADDR=192.168.2.132
    #保存
    :wq
    #重启网卡
    systemctl restart network
    
  5. 配置host(192.168.2.132,192.168.2.133 操作一致)

    #配置hostName命令
    hostnamectl set-hostname hadoop131
    #查看是否配置成功
    hostname
    #编辑host文件
    vim /etc/hosts
    #host
    192.168.2.131 hadoop131
    
  6. 安装jdk,hadoop(这个步骤上回已经搞定了)

  7. 配置环境变量(这个步骤上回已经搞定了)

  8. 配置ssh

  9. ssh免密登陆,可以使hadoop131,hadoop132,hadoop133直连互通。原理如下:

  10. 配置操作如下:

    #生成公钥私钥
    ssh-keygen -t rsa
    #复制到另外两个节点,自己也要复制
    ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop131
    ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop132
    ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop133
    #测试
    ssh hadoop132#以上操作分别在hadoop131,hadoop132,hadoop133都操作一遍
    
  11. 群发shell脚本

  12. 循环复制文件到所有节点的相同目录下,我们需要用到Rsync命令原始拷贝处理:

    rsync –rvl [原路径] [目标用户@目标服务器:目标路径]
    
  13.  shell脚本如下:命名xsync,放到/usr/local/bin目录下即可。

    #!/bin/bash
    pcount=$#
    if((pcount==0)); then
    echo no args;
    exit;
    fi
    
    p1=$1
    fname=`basename $p1`
    echo fname=$fname
    
    pdir=`cd -P $(dirname $p1); pwd`
    echo pdir=$pdir
    
    user=`whoami`
    for((host=132; host<134; host++)); do
            echo --------------- hadoop$host ----------------
            rsync -rvl $pdir/$fname $user@hadoop$host:$pdir
    done
    
  14. 配置集群文件,暂时照着我都配置一下,以后咱详谈这些配置信息:

  15. 先说一下所有配置文件的位置,如下图:都在这里哈!

  16. core配置文件 core-site.xml

    <configuration>
        <!-- 指定hdfs中NameNode的地址 -->
        <property>
            <name>fs.defaultFS</name>
            <value>hdfs://hadoop131:9000</value>
        </property>
        <!-- 指定Hadoop运行时产生文件的存储目录 -->
       <property>
            <name>hadoop.tmp.dir</name>
            <value>/opt/module/hadoop-2.7.7/data/tmp</value>
        </property>
        <!-- 当前用户全设置成root -->    <property>
            <name>hadoop.http.staticuser.user</name>
            <value>root</value>
        </property>
        <!-- 不开启权限检查 -->
        <property>
            <name>dfs.permissions.enabled</name>
            <value>false</value>
        </property>
    </configuration>
    
  17. hdfs配置文件 hadoop-env.sh和hdfs-site.xml

  18. hadoop-env.sh

    #配置jdk
    export JAVA_HOME=/opt/module/jdk1.8.0_181
    
  19. hdfs-site.xml

    <configuration>
        <!-- 配置副本个数 -->    <property>
            <name>dfs.replication</name>
            <value>3</value>
        </property>
       <!-- 辅助名称节点主机配置 -->    <property>
            <name>dfs.namenode.secondary.http-address</name>
            <value>hadoop133:50090</value>
        </property>
       <!-- web访问地址配置 -->
        <property>
            <name>dfs.http.address</name>
            <value>0.0.0.0:50070</value>
        </property>
    </configuration>
    
  20. yarn配置文件yarn-env.sh和yarn-site.xml文件

  21. yarn-env.sh

    #配置jdk
    JAVA_HOME=/opt/module/jdk1.8.0_181
    
  22. yarn-site.xml

    <configuration>
        <!--reduce获取数据方式-->    <property>
            <name>yarn.nodemanager.aux-services</name>
            <value>mapreduce_shuffle</value>
        </property>    
        <!--资源管理器的地址-->    <property>
            <name>yarn.resourcemanager.hostname</name>
            <value>hadoop132</value>
        </property>
        <!--日志聚集功能-->    <property>
            <name>yarn.log-aggregation-enable</name>
            <value>true</value>
        </property>
        <!--日志保留7天-->
        <property>
            <name>yarn.log-aggregation.retain-seconds</name>
            <value>604800</value>
        </property>
        <!--可不配置,内存不够不可检查-->
        <property>
            <name>yarn.nodemanager.pmem-check-enabled</name>
            <value>false</value>
        </property>
        <property>
            <name>yarn.nodemanager.vmem-check-enabled</name>
            <value>false</value>
        </property>
    </configuration>
    
  23. mapReduce配置文件mapred-env.sh和mapred-site.xml

  24. mapred-env.sh

    #配置jdk
    export JAVA_HOME=/opt/module/jdk1.8.0_181
    
  25. mapred-site.xml

    <configuration>
        <!--指定mapReduce运行在yarn上-->
        <property>
            <name>mapreduce.framework.name</name>
            <value>yarn</value>
        </property>
        <!--历史服务器地址-->
        <property>
            <name>mapreduce.jobhistory.address</name>
            <value>hadoop131:10020</value>
        </property>
        <!--历史服务器web端地址-->
        <property>
            <name>mapreduce.jobhistory.webapp.address</name>
            <value>hadoop131:19888</value>
        </property>
    <!--可以不配置哈-->    <property>
            <name>mapreduce.application.classpath</name>
            <value>/opt/module/hadoop-2.7.7/share/hadoop/mapreduce/*, /opt/module/hadoop-2.7.7/share/hadoop/mapreduce/lib/*</value>
        </property>
    </configuration>
    
  26. slaves群起配置文件 slaves

    #注意:不要有空格哈
    hadoop131
    hadoop132
    hadoop133
    
  27. 同步配置文件

    sh xsync /opt/module/hadoop-2.7.7/etc/hadoop

  28. 群起

    #启动hdfs 在hadoop131上执行 start-dfs.sh #启动yarn 在hadoop132上执行 必须在hadoop132上 因为manager在 start-yarn.sh #启动历史守护 mr-jobhistory-daemon.sh start historyserver #查看进程 jps

  29. 测试

  30. http://hadoop131:50070/dfshealth.html#tab-overview

  31. http://hadoop132:8088/cluster

  32. http://hadoop131:19888/jobhistory/app

  33. 至此,一个小小的hadoop集群就搭建起来了!为自己点赞👍

结语

    心血来潮想学习一下Hadoop,为了督促自己的总结习惯,每周发布一次总结到掘金,希望自己坚持不懈,功成之路,满是荆棘。