01hadoop概念

大数据与Hadoop

大数据指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。

Hadoop是什么?

Hadoop是一种分析和处理海量数据的软件平台,是一款开源软件,使用JAVA开发,可以提供一个分布式基础架构

Hadoop特点:

  • 高可靠性 :Hadoop按位存储和数据处理的能力值得信赖

  • 高扩展性:Hadoop通过可用的计算机集群分配数据,完成存储和计算任务,这些集群可以方便地扩展到数以千计的节点中,具有高扩展性

  • 高效性:Hadoop能够在节点之间进行动态地移动数据,并保证各个节点的动态平衡,处理速度非常快,具有高效性

  • 高容错性:Hadoop能够自动保存数据的多个副本(默认是3个),并且能够自动将失败的任务重新分配

Hadoop版本

  • Hadoop1.0:包含Common,HDFS和MapReduce,停止更新

  • Hadoop2.0:包含了Common,HDFS,MapReduce和YARN。Hadoop2.0和Hadoop1.0完全不兼容。

  • Hadoop3.0:包含了Common,HDFS,MapReduce,YARN。Hadoop3.0和Hadoop2.0是兼容的

Hadoop核心组件

HDFS(Hadoop Distributed File System)
  • HDFS:分布式存储,解决海量数据的存储

  • HDFS特点及原理:HDFS具有扩展性、容错性、海量数量存储的特点,原理为将大文件切分成指定大小(默认128M)的数据块, 并在分布式的多台机器上保存多个副本

  • HDFS角色和概念

    1. Client

      1.1 切分文件

      1.2 与namenode交互获取节点或文件元数据

      1.3 与datanode交互写入或读取数据

    2. Namenode(管理节点)

      2.1 存入文件元数据信息

      2.2 配置副本策略

      2.3 处理客户端的所有请求(读和写)

    3. Secondarynode

      3.1 定期同步NameNode的元数据和日志信息,紧急情况下,可转正

    4. Datanode(数据节点)

      4.1 存储具体数据

      4.2 汇报存储信息给namenode(datanode定期向namenode发送心跳消息。)

    5. Block

      每块默认128MB大小

    HDFS写文件流程

    【1】客户端将文件拆分成固定大小128M的块,并通知namenode
    【2】namenode找到可用的datanode返回给客户端
    【3】客户端根据返回的datanode,对块进行写入
    【4】通过流水线管道流水线复制
    【5】更新元数据,告诉namenode已经完成了创建新的数据块,保证namenode中的元数据都是最新的状态
    

在这里插入图片描述

HDFS读文件流程

【1】客户端向namenode发起读请求,把文件名,路径告诉namenode
【2】namenode查询元数据,并把数据返回客户端
【3】此时客户端就明白文件包含哪些块,这些块在哪些datanode中可以找到

在这里插入图片描述

MapReduce
  • MapReduce实现了分布式计算

    Hadoop的MapReduce是对google三大论文的MapReduce的开源实现,实际上是一种编程模型,是一个分布式的计算框架,用于处理海量数据的运算,由JAVA实现

  • MapReduce角色及概念

    1. JobTracker

      –Master节点只有一个

      –管理所有作业/任务的监控、错误处理等

      –将任务分解成一系列任务,并分派给TaskTracker

    2. TaskTracker

      –Slave节点,一般是多台

      –运行Map Task和Reduce Task

      –并与JobTracker交互,汇报任务状态

    3. Map Task

      –解析每条数据记录,传递给用户编写的map()并执行,将结果输出

    4. Reducer Task

      –从Map Task的执行结果中,远程读取输入数据,对数据进行排序,将数据按照分组传递给用户编写的reduce函数执行

Yarn
  • 作用:负责整个集群资源的管理和调度,是Hadoop的一个通用的资源管理系统

  • 定义:Apache Hadoop YARN (Yet Another Resource Negotiator,另一种资源协调者)是一种新的 Hadoop 资源管理器,它是一个通用资源管理系统,可为上层应用提供统一的资源管理和调度,它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处

  • Yarn角色及概念

    1. Resourcemanager

      –处理客户端请求

      –启动/监控ApplicationMaster

      –监控NodeManager

      –资源分配与调度

    2. Nodemanager

      –单个节点上的资源管理

      –处理来自ResourceManager的命令

      –处理来自ApplicationMaster的命令

    3. ApplicationMaster

      –为应用程序申请资源,并分配给内部任务

      –任务监控与容错

    4. Container

      –对任务运⾏行环境的抽象,封装了CPU 、内存等

    5. Client

      –用户与Yarn交互的客户端程序

      –提交应用程序、监控应用程序状态,杀死应用程序等

用程序申请资源,并分配给内部任务

 –任务监控与容错 
  1. Container

    –对任务运⾏行环境的抽象,封装了CPU 、内存等

  2. Client

    –用户与Yarn交互的客户端程序

    –提交应用程序、监控应用程序状态,杀死应用程序等

相关推荐

  1. Hadoop 概述

    2024-03-11 07:40:03       30 阅读

最近更新

  1. 技术浅谈:如何入门一门编程语言

    2024-03-11 07:40:03       0 阅读
  2. C#如何进行深度学习对行人进行识别?

    2024-03-11 07:40:03       0 阅读
  3. 金南瓜科技的SECS/GEM解决方案

    2024-03-11 07:40:03       0 阅读
  4. Linux 系统监控工具深度解析:Glances 与 Nmon

    2024-03-11 07:40:03       1 阅读
  5. 使用YOLO5进行模型训练机器学习【教程篇】

    2024-03-11 07:40:03       1 阅读

热门阅读

  1. 【spring】-多模块构建

    2024-03-11 07:40:03       20 阅读
  2. 3488.最短路径floyd、并查集

    2024-03-11 07:40:03       21 阅读
  3. Lua 函数前的冒号和点号,你知道他们的区别吗?

    2024-03-11 07:40:03       21 阅读
  4. [2023年]-hadoop面试真题(一)

    2024-03-11 07:40:03       29 阅读
  5. C/C++关键字详解-----`const`的使用

    2024-03-11 07:40:03       24 阅读
  6. Spring Boot(六十六):集成Alibaba Druid 连接池

    2024-03-11 07:40:03       25 阅读
  7. API 管理调研

    2024-03-11 07:40:03       21 阅读
  8. pytorch单机多卡训练 logger日志记录和wandb可视化

    2024-03-11 07:40:03       19 阅读
  9. Apache 的安装与目录结构

    2024-03-11 07:40:03       23 阅读
  10. 【Docker】apache 容器化部署

    2024-03-11 07:40:03       28 阅读
  11. Apache Hive(三)

    2024-03-11 07:40:03       23 阅读
  12. 蓝桥集训之日期差值

    2024-03-11 07:40:03       29 阅读