Hadoop笔记

Hadoop的概念

  • 可拓展:可以由一台服务器拓展到数千台计算机,每台计算机都提供本地计算和存储
  • 可靠的:不依靠硬件来提供高可用性,而是在应用检测和处理故障,从而在计算机集群上提供高可用服务

Hadoop能用来做什么

  • 搭建大型数据仓库
  • PB级别的数据存储,处理,分析,统计业务
    • 搜索引擎
    • 日志分析
    • 数据挖掘
    • 商业智能(BI)
  • Hadoop的发展史
    • 2003-2004年Google发表了三篇论文
      • GFS:Google File System 谷歌的分布式文件系统
      • MapReduce: simplified Data Processing on Large Cluster
      • BigTable: 一个大型的分布式数据库

Hadoop的核心组件

  • Hadoop Distributed File System(HDFS)(存储数据的地方)
    • 源于Google的GFS论文,论文发布于2003年10月
    • HDFS是GFS的开源实现
    • HDFS的特点:
      • 拓展性
      • 容错性
      • 海量数据存储
    • 将文件切分成指定大小的数据块,并在多台机器上面保存多个副本
    • 数据切分,多副本,容错等操作对用户是透明的
  • Hadoop MapReduce (只能计算)
    • 分布式计算框架
    • 源于Google的MapReduce论文,论文发表于2004年12月
    • MapReduce是GoogleMapReduce的开源实现
    • MapReduce的特点:
      • 拓展性
      • 容错性
      • 海量数据的离线处理
  • Hadoop YARN(资源调度系统)
    • YARN: Yet Another Resource Negotiator
    • 负责整个集群资源的管理和调度
    • YARN的特点:
      • 拓展性
      • 容错性
      • 多框架资源统一调度

Hadoop的优势

  • 高可靠
    • 数据存储:数据块多副本
    • 数据计算:某个节点崩溃,会自动重新调度作业计算
  • 高拓展性
    • 存储/计算资源不够时,可以横向的线性拓展机器
    • 一个集群中可以包含数以千计的节点
    • 集群可以使用廉价机器,成本低
  • Hadoop生态系统成熟

HDFS分布式文件系统架构

  • 1个NameNode/NN(master)带DataNode/DN(Slaves)(Master-Slave结构)

  • 1个文件会被拆分多个Block

  • NameNode(NN)

    • 负责客户端请求响应
    • 负责元数据(文件的名称,副本系数,Block存放的DN)的管理
      • 元数据: MetaData 描述数据的数据称为元数据
    • 监控DataNode健康状况 10分钟没有收到DataNode报告认为DataNode死掉了
  • DataNode

    • 存储用户的文件对应的数据块
    • 要定期向NN发送心跳信息,汇报本身及其所有的block信息,健康状况
  • 分布式集群NameNode和DataNode部署在不同机器上

    在这里插入图片描述

  • HDFS优缺点

    • 优点
      • 数据冗余 硬件容错
      • 适合存储大文件
      • 处理流式数据
      • 可构建在廉价机器上
    • 缺点
      • 低延迟的数据访问
      • 小文件存储

YARN资源调度框架

  • YARN的基本概念

    • Yet Another Resource Negotiator,另一种资源协调者
    • 通用资源管理系统
    • 为上层应用统一的资源管理和调度,为集群在利用率,资源统一管理和数据共享等方面带来了巨大好处
  • YARN的产生背景

    • 通用资源管理系统

      • Hadoop数据分布式存储(数据分块,冗余存储)
      • 当多个MapReduce任务要用到相同hdfs数据,需要进行资源调度管理
      • Hadoop1.x时并没有YARN,MapReduce既负责进行计算作业又处理服务器集群资源调度管理
    • 服务器集群资源管理和MapReduce执行过程耦合在一起带来的问题

      • Hadoop早期,技术只有Hadoop,这个问题不明显

      • 随着大数据技术的发展,Spark Storm … 计算框架都要用到服务器集群资源

      • 如果没有通用的资源管理系统,只能为多个集群分别提供数据

        • 资源利用率低,运维成本高

        • 有了YARN框架 就会如下图 资源最大化利用
          在这里插入图片描述

      • Yarn(Yet Aother Resource Negotiator)另一种资源调度器

        • Mesos大数据资源管理产品
    • 不同的计算框架可以共享同一个HDFS集群上的数据,享受整体的资源调度

  • YARN的架构和执行流程

    • ResourceManager:RM资源管理器 整个集群同一时间提供服务的RM只有一个,负责集群资源的统一管理和调度,处理客户端的请求:submit,kill监控我们的NM,一旦某个NM挂了,那么该NM上运行的任务需要告诉我们的AM(Application Master)来如何进行处理

    • NodeManager:MN节点管理器,整个集群中有多个,负责自己本身节点资源管理和使用,定时向RM汇报本节点的资源使用情况,接收并处理来自RM的各种命令:启动Container处理来自AM的命令

    • ApplicationMaster:AM每个应用程序对应一个:MR,Spark,负责应用程序的管理为应用程序向RM申请资源,分配给内部task需要与NM通信:启动/停止task,task是运行在container里面,AM也是运行在container里面

    • Container容器:封装了CPU,Mermery等资源的一个容器,是一个任务运行环境的抽象

    • Client:提交作业 查询作业的运行进度,杀死作业

    在这里插入图片描述

MapReduce分布式处理框架

  • MapReduce的基本概念

    • 源于Google的MapReduce论文(2004年12月)
    • Hadoop的MapReduce时Google论文的开源实现
    • MapReduce的优点:海量数据离线处理,易开发
    • MapReduce的缺点:实时流式计算
  • MapRdeduce编程模型

    • MapReduce分而治之的思想

      • 数钱实例:一堆钞票,各种面值分别是多少
        • 单点策略
          • 一个人数所有的钞票,数出各种面值有多少张
        • 分治策略
          • 每个人分得一堆钞票,数出各种面值有多少张
          • 汇总,每个人负责统计一种面值
        • 解决数据可以切割进行计算的应用
    • MapReduce编程分Map和Reduce阶段

      • 将作业拆分成Map阶段和Reduce阶段
      • Map阶段 Map Tasks 分:把复杂的问题分解为若干"简单的任务"
      • Reduce阶段: Reduce Tasks 合:reduce
    • MapReduce编程执行步骤

      • 准备MapReduce的输入数据
      • 准备Mapper数据
      • Shuffle
      • Reduce处理
      • 结果输出
    • 编程模型

      • 借鉴函数式编程方式

      • 用户只需要实现两个函数接口:

        • Map(in_key,in_value)

          —>(out_key,intermediate_value) list

        • Reduce(out_key,intermediate_value) list

          —>out_value list

      • Word Count 词频统计案例
        在这里插入图片描述

    • MapReduce架构

      • MapReduce架构 1.X

        • JobTracker:负责接收客户作业提交,负责任务到作业节点上运行,检查作业的状态

        • TaskTracker:由JobTracker指派任务,定期向JobTracker汇报状态,在每一个工作节点上永远只会有一个TaskTracker
          在这里插入图片描述

      • MapReduce2.X架构

        • ResourceManager:负责资源的管理,负责提交任务到NodeManager所在的节点运行,检查节点的状态

        • NodeManager:由ResourceManager指派任务,定期向ResourceManager汇报状态

        在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值