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位于同一机架中,这为数据最终的存储提供了一定的依据。(三台:同一dn不同机身,同一机身不同dn

在这里插入图片描述

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

3.mapreduce

  • MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。
  • "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(归约)函数)。

Reduce任务处理

  1. 多个map任务的输出,按照不同的分区,通过网络copy到不同的reduce节点上。(shuffle)
  2. 对多个map的输出进行合并、排序。reduce函数,实现自己的业务逻辑,产生新的<k,v>输出(用来保证所有映射的键值对中的每一个共享相同的键组)。
  3. 对reduce输出的<k,v>写到HDFS中。
    在这里插入图片描述
  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值