文档章节

0000 0001 、HDFS 和 MapReduce

蜉先生
 蜉先生
发布于 2017/06/24 23:12
字数 644
阅读 2
收藏 0

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 是一个合的过程)

© 著作权归作者所有

蜉先生
粉丝 8
博文 19
码字总数 26222
作品 0
朝阳
程序员
私信 提问
大数据之---Yarn伪分布式部署和MapReduce案例

1、软件环境 本次涉及伪分布式部署只是要主机hadoop01,软件安装参考伪分布式部署终极篇 2、配置yarn和mapreduce 3、提交测试jar计算圆周率 job15248048138350001 job命名格式: jobunix时间...

ycwyong
2018/05/17
0
0
Cloudera Manager中Uber模式下MapReduce任务执行无法加载Native Libraries

问题现象 Cloudera Manager(以下简称CM)安装CDH,在Hive中执行任务,MapReduce任务使用Uber模式运行,报如下错误: 日志分析 查看Job的详细日志为: 问题分析:Mapreduce任务进入Uber模式,但...

Yulong_
2016/10/14
184
0
Hive 中 ANALYZE能执行但看不到统计的结果?如何才能看到统计的信息?

hive> select * from adsh; OK 1 小明 {"city":"汕头","province":"广东","area":"东部","code":118} 2 小白 {"city":"泉州","province":"福建","area":"西部","code&quo...

万木青
2018/10/19
262
0
大数据经典学习路线(及供参考)之 一

1.Linux基础和分布式集群技术 学完此阶段可掌握的核心能力: 熟练使用Linux,熟练安装Linux上的软件,了解熟悉负载均衡、高可靠等集群相关概念,搭建互联网高并发、高可靠的服务架构; 学完此...

柯西带你学编程
2018/05/22
0
0
如何分布式运行mapreduce程序

如何分布式运行mapreduce程序 一、 首先要知道此前提 若在windows的Eclipse工程中直接启动mapreduc程序,需要先把hadoop集群的配置目录下的xml都拷贝到src目录下,让程序自动读取集群的地址后...

Zero零_度
2015/09/06
245
0

没有更多内容

加载失败,请刷新页面

加载更多

EDI 电子数据交换全解指南

EDI(Electronic Data Interchange,电子数据交换)技术使得企业与企业(B2B)实现通信自动化,帮助交易伙伴和组织更快更好地完成更多工作,并消除了人工操作带来的错误。从零售商到制造商、物...

EDI知行软件
今天
3
0
CentOS7的LVM动态扩容

# 问题 CentOS7上面的磁盘空间有点紧张,需要扩容。 解决 查询当前磁盘状态 [root@xxx ~]# lsblkNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTfd0 2:0 1 4K ...

亚林瓜子
今天
5
0
Kafka 0.8 Producer (0.9以前版本适用)

Kafka旧版本producer由scala编写,0.9以后已经废除 示例代码如下: import kafka.producer.KeyedMessage;import kafka.javaapi.producer.Producer;import kafka.producer.ProducerConfig;......

实时计算
今天
5
0
Giraph源码分析(八)—— 统计每个SuperStep中参与计算的顶点数目

作者|白松 目的:科研中,需要分析在每次迭代过程中参与计算的顶点数目,来进一步优化系统。比如,在SSSP的compute()方法最后一行,都会把当前顶点voteToHalt,即变为InActive状态。所以每次...

数澜科技
今天
6
0
Navicat 快捷键

操作 结果 ctrl+q 打开查询窗口 ctrl+/ 注释sql语句 ctrl+shift +/ 解除注释 ctrl+r 运行查询窗口的sql语句 ctrl+shift+r 只运行选中的sql语句 F6 打开一个mysql命令行窗口 ctrl+l 删除一行 ...

低至一折起
今天
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部