• Hadoop简介与集群配置


    1 Hadoop是什么

    • 是一个由Apache基金会所开发的分布式系统基础框架
    • 主要解决,海量数据的存储海量数据的分析计算问题
    • 广义上来说,Hadoop通常指一个更广泛的概念-Hadoop生态圈

    2 优势

    • 高可靠性:Hadoop底层维护多个数据副本,所以即使Hadoop某个计算元素或存储出现故障,也不会导致数据缺失
    • 高扩展性:在集群间分配任务数据,可方便的扩展数以千计的节点
    • 高效性:在Mapreduce的思想下,Hadoop是并行工作的,以加快任务处理速度
    • 高容错性:能够自动将失败的任务重新分配

    3 Hadoop1.x,2.x,3.x区别

    在这里插入图片描述

    4 Hadoop组成

    4.1 HDFS 架构概述

    • Hadoop Distributed File System 简称HDFS,是一个分布式的文件系统
    • 组成
      • NameNode(nn):存储文件的元数据,如文件名,文件目录结构,文件属性(生成时间、副本数、文件权限),以及每个文件的块列表和块所在的DataNode
      • DataNode(dn):在本地文件系统存储文件块数据,以及块数据的校验和
      • Secondary NameNode(2nn):每隔一段时间对NameNode元数据备份
        在这里插入图片描述

    4.2 Yarn架构概述

    • Yet Another Resource Negotiator简称YARN,另一种资源协调者,是Hadoop的资源管理器
    • 组成
      • Resource Manage(RM):整个集群资源(内存、CPU等)的老大
      • NodeManage(NM):单个节点服务器资源老大
      • ApplicationMaster(AM):单个任务的老大
      • Container:容器,相当于一台独立的服务器,里面封装了任务运行所需要的资源,如内存、cpu、磁盘、网络
      • 当有客户端申请任务ApplicationMaster时,Resource Manage会从其中一个服务器节点中分出部分资源形成一个Container,供ApplicationMaster使用
    • 说明
      • 客户端可以有多个
      • 集群上可以运行多个Application
      • 每个NodeManage上可以有多个Container
        在这里插入图片描述

    4.3 MapReduce架构概述

    MapReduce将计算过程分为两个阶段:Map和Reduce

    • Map阶段并行处理输入数据
    • Reduce阶段对Map结果进行汇总

    将任务分给所有的服务器(Map),然后所有的服务器将找到的结果整合(Reduce)
    在这里插入图片描述

    4.4 HDFS、YARN、MapReduce三者关系

    • 首先客户端来了一个任务,要找到某一个文件,提交一个任务ApplicationMaster
    • Yarn中的ResourceManage收到任务后,会从一台服务中分出一个Container,让任务在这执行
    • ApplicationMaster会向ResourceManage申请我需要哪些资源,然后在对应的服务器上开启MapReduce中的Map阶段,分发给服务器都去查询
    • 然后Reduce阶段会把所有的Map结果汇总,更新HDFS中的DataNode和NameNode以及Secondary NameNode

    在这里插入图片描述

    5 大数据技术生态体系

    在这里插入图片描述

    6 hadoop运行模式

    • 本地模式
      • 数据存储在linux本地
      • 使用场景:测试环境中用
    • 伪分布式模式
      • 数据存储在HDFS
      • 使用场景:公司中比较差钱
    • 完全分布式模式
      • 完全分布式集群
      • 数据存储在HDFS/多台服务器工作
      • 使用场景:企业里面大量使用

    7 同步工具

    7.1 scp(secure copy)安全拷贝

    用于在服务器之间传输数据

    scp -r 数据源的用户名@主机名:文件路径 目的地的用户名@主机名:文件路径
    
    • 1

    7.2 rsync远程同步工具

    • 主要用于备份和镜像,具有速度快、避免复制相同内容和支持符号链接的优点
    • rsync和scp的区别:用rsync要比scp的速度快rsync只对差异文件做更新,scp是把所有文件都复制过去
    • 基本语法
    rsync -av 数据源的用户名@主机名:文件路径 目的地的用户名@主机名:文件路径
    -a 归档拷贝
    -v 显示复制过程
    
    • 1
    • 2
    • 3

    7.3 xsync集群分发脚本

    需求:循环复制文件到所有节点的相同目录下

    #!/bin/bash
    
    #1.判断参数个数
    if [ $# -lt 1 ]
    then
        echo Not Enough Argument!
        exit;
    fi
    
    #2.遍历集群所有机器
    for host in hadoop178 hadoop179 hadoop180
    do 
      echo ===============  $host  ===============
      #3.遍历所有目录,挨个发送
    
      for file in $@
      do 
        #4.判断文件是否存在
        if [ -e $file ]
           then
               #5.获取父目录
               pdir=$(cd -P $(dirname $file);pwd)
               #6.获取当前文件的名称
               fname=$(basename $file)
               ssh $host "mkdir -p $pdir"
               rsync -av $pdir/$fname $host:$pdir
           else
               echo $file does nor exits!
        fi
      done
    done
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31

    7.4 ssh免密登陆

    • 原理
      在这里插入图片描述
    • 操作步骤
    # 1.找到隐藏的目录
    cd /home/tws
    ll -al #显示隐藏文件
    cd .ssh/
    # 2.生成公钥和私钥,此时.ssh/目录下会生成私钥id_rsa和公钥id_rsa.pub
    ssh-keygen -t rsa 
    -rw-------. 1 tws tws 1675 1015 10:42 id_rsa
    -rw-r--r--. 1 tws tws  395 1015 10:42 id_rsa.pub
    -rw-r--r--. 1 tws tws  558 1015 09:19 known_hosts
    # 3.将公钥拷贝到要免密登录的目标机器上
    ssh-copy-id hadoop179 # hadoop179为目标主机名
    ssh hadoop179 # 此时就是免密了
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • .ssh文件夹下(~/.ssh)的文件功能解释
    文件名作用
    known_hosts记录ssh访问过计算机的公钥(public key)
    id_rsa生成的私钥
    id_rsa.pub生成的公钥
    authorized_keys存放授权过的无密登录服务器公钥

    8 集群配置

    8.1 集群部署规划

    • 注意事项
      • NameNode和SecondaryNameNode不要安装在同一台服务器上
      • ResourceManager也很消耗内存,不要和NameNode、SecondaryNameNode配置在同一台机器上
    Hadoop178Hadoop179Hadoop180
    HDFSNameNode DataNodeDataNodeSecondaryNameNode
    DataNode
    YarnNodeManagerResourceManager
    NodeManager
    NodeManager

    8.2 Hadoop配置文件说明

    • Hadoop配置文件分为两类:默认配置文件和自定义配置文件,
    • 只有用户想修改某一默认配置值时,才需要修改自定义配置文件,更改相应属性值
    (1) 默认配置文件
    要获取的默认文件文件存放在Hadoop的jar包中的位置
    [core-default.xml]hadoop-common-3.13.jar/core-default.xml
    [hdfs-default.xml]hadoop-hdfs-3.13.jar/hdfs-default.xml
    [yarn-default.xml]hadoop-yarn-common-3.13.jar/yarn-default.xml
    [mapred-default.xml]hadoop-mapreduce-cilent-core-3.13.jar/mapred-default.xml
    (2) 自定义配置文件

    core-site.xml、hdfs-site.xml,yarn-site.xml,mapred-site.xml四个配置文件存放在$HADOOP_HMOE/etc/hadoop这个路径上,用户可以根据项目需求重新进行修改配置

    8.3 配置集群

    (1) 核心配置文件
    • 配置core-site.xml
    cd $HADOOP_HOME/etc/hadoop
    vim core-site.xml
    
    • 1
    • 2
    • 文件内容如下
    <configuration>
        
        <property>
            <name>fs.defaultFSname>
            <value>hdfs://hadoop178:8020value>
        property>
    
        
        <property>
            <name>hadoop.tmp.dirname>
            <value>/opt/module/hadoop-3.1.3/datavalue>
        property>
    
        
        <property>
            <name>hadoop.http.staticuser.username>
            <value>atguiguvalue>
        property>
    configuration>
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    (2) HDFS配置文件
    • 配置hdfs-site.xml
    vim hdfs-site.xml
    
    • 1
    • 文件内容如下
    <configuration>
    	
    	<property>
            <name>dfs.namenode.http-addressname>
            <value>hadoop178:9870value>
        property>
    	
        <property>
            <name>dfs.namenode.secondary.http-addressname>
            <value>hadoop180:9868value>
        property>
    configuration>
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    (3) YARN配置文件
    • 配置yarn-site.xml
    vim hdfs-site.xml
    
    • 1
    • 文件内容如下:
    <configuration>
        
        <property>
            <name>yarn.nodemanager.aux-servicesname>
            <value>mapreduce_shufflevalue>
        property>
    
        
        <property>
            <name>yarn.resourcemanager.hostnamename>
            <value>hadoop179value>
        property>
    
        
        <property>
            <name>yarn.nodemanager.env-whitelistname>
            <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOMEvalue>
        property>
    configuration>
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    (4) MapReduce配置文件
    • 配置mapred-site.xml
    vim mapred-site.xml
    
    • 1
    • 文件内容如下
    <configuration>
    	
        <property>
            <name>mapreduce.framework.namename>
            <value>yarnvalue>
        property>
    configuration>
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    (5)在集群上分发配置好的Hadoop配置文件
    sync /opt/module/hadoop-3.1.3/etc/hadoop/
    
    • 1

    8.5 群起集群

    (1) 配置workers
    vim /opt/module/hadoop-3.1.3/etc/hadoop/workers
    
    • 1
    • 在该文件中增加如下内容
    hadoop178
    hadoop179
    hadoop180
    
    • 1
    • 2
    • 3
    • 同步所有节点内容
    xsync /opt/module/hadoop-3.1.3/etc
    
    • 1
    (2) 启动集群
    • 如果集群是第一次启动
      需要在hadoop178节点格式化NameNode(注意:格式化NameNode,会产生新的集群id,导致NameNode和DataNode的集群id不一致,集群找不到已往数据。如果集群在运行过程中报错,需要重新格式化NameNode的话,一定要先停止namenode和datanode进程,并且要删除所有机器的data和logs目录,然后再进行格式化。)
    [tws@hadoop178 hadoop-3.1.3]$ hdfs namenode -format
    
    • 1
    • 启动HDFS
    [tws@hadoop178 hadoop-3.1.3]$ sbin/start-dfs.sh
    
    • 1
    • 在配置了ResourceManager的节点(hadoop179)启动YARN
    [tws@hadoop179 hadoop-3.1.3]$ sbin/start-yarn.sh
    
    • 1
    • Web端查看HDFS的NameNode
      a)浏览器中输入:http://hadoop178:9870
      b)查看HDFS上存储的数据信息
    • Web端查看YARN的ResourceManager
      a)浏览器中输入:http://hadoop179:8088
      b)查看YARN上运行的Job信息
  • 相关阅读:
    jsp健身房会员管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目
    dll修复工具安装教程
    Jenkins的安装及使用
    STL(C++)
    航天小众视野——BLUE ORINGN
    vuejs - - - - - 递归组件的实现
    Elasticsearch:使用最新的 Python client 8.0 来创建索引并搜索
    Hexagon_V65_Programmers_Reference_Manual(42)
    npm 重要知识
    2022年6月 电子学会青少年软件编程 中小学生Python编程 等级考试一级真题答案解析(选择题)
  • 原文地址:https://blog.csdn.net/tataoto/article/details/127332704