微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

hadoop的hdfs分布式存储和mapreduce分布式计算

文章目录


## 1.Hadoop简介

- hadoop主流版本:
- Apache基金会所开发的分布式系统基础架构(hadoop);
- Cloudera版本(Cloudera’s distribution Including Apache Hadoop,简称“CDH”),企业化版本;
- Hortonworks版本(Hortonworks Data Platform,简称“HDP”),常用版本。

  • hadoop的框架最核心的设计是底层的分布式存储(HDFS)和分布式计算(MapReduce)

    • HDFS为海量的数据提供了存储。
    • MapReduce为海量的数据提供了计算。
  • Hadoop框架包括以下四个模块

    • Hadoop Common: 这些是其他Hadoop模块所需的Java库和实用程
      序。这些库提供文件系统和操作系统级抽象,并包含启动Hadoop所
      需的Java文件和脚本
    • Hadoop YARN: 这是一个用于作业调度和集群资源管理的框架。
    • Hadoop distributed File System (HDFS): 分布式文件系统,最底层的基础设施,提供对应用程序数据的高吞吐量访问
    • Hadoop MapReduce:用来做离线的,这是基于YARN的用于并行处理大数据集的系统。
  • hadoop应用场景: 在线旅游、移动数据、电子商务、能源开采与节能、基础架构管理、图像处理、诈骗检测、IT安全、医疗保健。

2.hdfs(分布式存储)

工作机制:

  1. 客户端创建任务,资源管理器把请求发往nn节点(namenode)
  2. nn进行任务分配(分配多少个block、复制几份),并将分配节点的地址回传给客户端
  3. 客户端(数据包的形式)从第一个block往后面的数据节点上开始发送和存储,同时也会把这个数据列表发往datanode节点
  4. datanode节点把数据列表传递给其它的datanode
  5. hadoop能够自动感知哪些datanode位于同一机架中,这为数据最终的存储提供了一定的依据。

在这里插入图片描述

  • HDFS采用了主从(Master/Slave)结构模型,一个HDFS集群是由一个NameNode和若干个Datanode组成的。
    • NameNode作为主服务器,管理文件系统的命名空间和客户端对文件的访问操作
    • Datanode管理存储的数据。
  • HDFS存储机制保存了多个副本,使系统能够提供容错机制,某一副本丢失或宕机可自动恢复,保证系统高可用性。
  • HDFS认会将文件分割成block
  • HDFS采用的是一次写入多次读取的文件访问模型。
  • HDFS容错机制:
    • 节点失败监测机制:DN每隔3秒向NN发送心跳信号,10分钟收不到,认为DN宕机。
    • 通信故障监测机制:只要发送了数据,接收方就会返回确认码。
    • 数据错误监测机制:在传输数据时,同时会发送总和校验码。

3.mapreduce

MR有两个阶段组成:Map和Reduce;用户只需实现map()和reduce()两个函数,即可实现分布式计算。

MapReduce的执行过程

在这里插入图片描述

在这里插入图片描述

上述图示过程描述如下:

Map任务处理

  1. 读取HDFS中的文件。每一行解析成一个<k,v>。每一个键值对调用一次map函数

  2. 覆盖map(),接收<k,v>,将其转换为新的<k,v>输出

  3. 对上步输出的<k,v>进行分区(认分为一个区),对不同分区中的数据进行排序(按照k)、分组(相同key的value放到一个集合中)

  4. (可选)对分组后的数据进行归约。

Reduce任务处理

  1. 多个map任务的输出,按照不同的分区,通过网络copy到不同的reduce节点上。(shuffle)
  2. 对多个map的输出进行合并、排序。覆盖reduce函数,接收的是分组后的数据,实现自己的业务逻辑,处理后,产生新的<k,v>输出
  3. 对reduce输出的<k,v>写到HDFS中。

    在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐