0000 0001 、HDFS 和 MapReduce

原创
2017/06/24 23:12
阅读数 23

HDFS 和 MapReduce

HDFS 负责存储
MapReduce 负责任务的分解与结果的汇总

HDFS 部分

  • HDFS 中的角色:
    名称结点:【NameNode】HDFS 中的管理者,负责文件系统的命名空间,集群配置信息,存储块信息的复制,保存每个块文件的 Metadata(文件信息保存在内存中)
    数据结点:【DataNode】HDFS 中的文件存储基本单元,存储每个块的metadata ,周期性的报告所存块的信息给 NameNode(心跳包)
    客户端:【】需要获取分布式文件系统的应用程序

HDFS 数据存储【 数据的读取 / 数据的写入 】

  • HDFS 文件读取过程:
    这里写图片描述
Client 向NameNode 发起文件读取的请求。
NameNode 返回文件存储的 DataNode 的信息【元数据 Metadata 】。
Client 读取文件信息

HDFS 写入文件过程
这里写图片描述

client 向 NameNode 发起文件写入请求。
NameNode 根据文件大小和文件块配置情况,向client返回它所管理的 DataNamed 的信息【元数据 Metadata 】
Client 将文件划分为多个Block ,根据DataName 的地址信息,按顺序写入DataNode中
DataNode直接进行流水线复制,完成收相NameNode 更新元数据

关于分块的大小,可以通过设置 dfs.block.size的值进行分块,不设置,使用默认大小


MapReduce 模型部分

Hadoop 通过自动分割将要执行的问题(程序)、拆解成Map(映射) 和 Reduce(化简)
在自动分割后通过Map 程序将数据映射成为不相关的区块,分配(调度)给大量的计算机进行处理以达到分散运算的效果,再通过Reduce程序将结果汇合整合,输出开发者需要的结果。

 用户只需编写Map 和 Reduce 函数,这两个函数运行在 键-值对基础上的,
 数据切分,节点之间的通信调度都是由Hadoop框架本身负责。

MapReduce 软件实现:
指定一个map函数,把键值对(key/value)映射成新的键值对(key/value ),形成一系列中间结果形式的键值对(key/value),
然后把他们传给Reduce(归约)函数,把具有相同中间形式key的value 合并在一起。
Map 和 Reduce 函数具有一定的关联性,其算法描述为:

Map(k,v) -> list(k1,v1)
Reduce(k1,list(v1)) ->list(v1)

在Map过程中将数据并行【把数据用映射函数规则分开】
在Reduce 把分开的数据用归约函数规则合在一起。
(Map 是一个分的过程,reduce 是一个合的过程)

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部