【学习笔记】Hadoop

概念

Hadoop是一个分布式系统基础架构,可扩展大量集群进行分布式计算分布式存储

优点是

  • 高可靠性:数据存储时数据块多副本存储,数据计算时某个节点崩溃可以自动重新调度作业计算
  • 高扩展性:可以横向线性扩展机器,一个集群中可以有数以千计的节点,集群可以用廉价机器,成本低
  • Hadoop生态成熟

组件

HDFS

HDFS(Hadoop Distributed File System)是分布式文件系统,具有扩展性、容错性和海量数据存储。HDFS将数据切分成指定大小的数据块进行存储,数据存储会冗余保存(多副本),一个数据会被拆分成多个Block。

请添加图片描述

  • NameNode负责客户端请求的响应;负责元数据(文件名、副本系数、Block存放的DN)的管理;监控DataNode健康状况
  • DataNode存储用户的文件对应的Block;定期向NN发送心跳信息,汇报本身及其所有的block信息,健康状况
  • 分布式集群NameNode和DataNode部署在不同的机器上

MapReduce

MapReduce是分布式计算框架,具有扩展性、容错性和海量数据离线处理。需要对数据进行分析计算,对数据进行分解Map和合并Reduce两个步骤。

请添加图片描述

  1. 输入数据
  2. 对数据进行切分、格式化处理
  3. 将切分数据做map处理
  4. 将相同的数据放在一起,并对数据进行排序处理
  5. 将map输出的数据进行hash计算,对每个map数据进行统计计算
  6. 格式化输出数据

YARN

YARN负责整个集群资源的管理和调度,具有扩展性、容错性和多框架资源统一调度。多个框架用到HDFS上的数据时会有先后问题,需要YARN来起到协调作用。

  • RM资源管理器:整个集群同一时间提供服务的RM只有一个,负责集群资源的统一管理和调度;处理客户端的请求;监控NM
  • NM节点管理器:整个集群有多个,负责自己本身节点资源管理和使用;定时向RM汇报本节点的资源使用情况;接收并处理来自RM的各种命令,启动Container;处理来自AM的命令
  • AM(ApplicationMaster):每个应用程序对应一个,负责应用程序的管理;为应用程序向RM申请资源,分配给内部的task;需要与NM通信
  • Container容器:封装了CPU、Memory等资源的一个容器,是一个任务运行环境的抽象
  • Client客户端:提交作业,查询作业运行进度,杀死作业

请添加图片描述

  1. Client提交作业请求
  2. RM进程和NM进程通信,根据集群资源,为用户程序分配第一个Container,并将AM分发到这个Container上
  3. 在启动的Container中创建AM
  4. AM启动后向RM注册进程,申请资源
  5. AM申请到资源后,向对应的NM申请启动Container,将要执行的程序分发到NM上
  6. Container启动后,执行对应任务
  7. Task执行完毕后,向AM返回结果
  8. AM向RM汇报任务结束,请求kill进程

大数据产品与互联网产品的结合

请添加图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值