hadoop学习记(2)--HDFS+yarn+MapReduce关系与原理
来源:互联网 发布:平面设计软件怎么下载 编辑:程序博客网 时间:2024/06/14 02:26
什么是hadoop?
Hadoop无非就是:HDFS(文件系统),yarn(任务调配),mapReduce(编程模型,大数据并行运算),我们安装完hadoop就已经包括了以上;
Hadoop集群其实就是HDFS集群,说到HDFS,下面来谈谈什么是HDFS
HDFS:其实就是个文件系统,和fastDFS类似,像百度云,阿里云等就是个文件存储系统,当然一般如果仅仅是为了用来存储文件的话直接fastDFS这个就已经够了,HDFS目的不单单是用来存储文件这么简单,它还涉及分布式计算等。
HDFS工作原理,用文字有点难以表达,那么我就直接画个图吧:
HDFS分有NameNode和DataNode,NameNode是整个文件系统目录,基于内存存储,存储的是一些文件的详细信息,比如文件名、文件大小、创建时间、文件位置等。Datanode是文件的数据信息,也就是文件本身,不过是分割后的小文件。上面图已经有做了介绍了,这里就不再赘述了。
Yarn:是一种新的 Hadoop资源管理器,它是一个通用资源管理系统,可为上层应用提供统一的资源管理和调度,它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处。
MapReduce:MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。概念"Map(映射)"和"Reduce(归约)",是它们的主要思想,都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性。它极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上。当前的软件实现是指定一个Map(映射)函数,用来把一组键值对映射成一组新的键值对,指定并发的Reduce(归约)函数,用来保证所有映射的键值对中的每一个共享相同的键组。
Mapreduce工作原理如下图:
MapReduce所编写好的程序将跑在各个DataNode上,这里有个概念就是计算向数据移动,也就是DataNode的数据文件存储在这里,我的程序发送到DataNode节点上去读取数据和分析数据就好了。期间会有出现各个DataNode之间进行数据发送,比如说节点DataNode1进行这台机读取数据时进行shuffle时需要把相同的key作为一组调用一次reduce,那么如果这时当然会有一些同key的在其他节点DataNode上的,所以就需要进行数据传送。Input这里的wordcount.txt就是DataNode上的文件数据。Split阶段是MapReduce一定会执行的,这是它的规则,而map阶段就是我们必须进行手动干预的,也就是编码对数据进行分析,分析成map文件,然后再shuffle阶段中自发进行数据派送,规则是以同样的key为一组调用reduce阶段进行数据压缩,reduce也是进行手动干预的,我们编码进行数据计算,计算同key的个数,统计完后就可以输出一个文件出来了,这整个过程数据的传输都是放在context这个上下文中。下面是借鉴网上的一张图,HDFS与MapReduce之间的关系协助大概就是这么个意思。
以上纯属个人的一点浅薄认识,如有不对的地方望指正。
- hadoop学习记(2)--HDFS+yarn+MapReduce关系与原理
- 【Hadoop】Hadoop/Yarn中hdfs与mapreduce相关问题汇总
- 【Hadoop】Hadoop/Yarn中hdfs与mapreduce相关问题汇总
- HDFS、YARN、MapReduce原理--读书笔记
- Hadoop学习之HDFS/MapReduce/YARN进程介绍
- Hadoop核心架构体系(HDFS+MapReduce+Hbase+Hive+Yarn)
- Hadoop三剑客:hdfs、yarn、mapreduce
- Hadoop On Yarn Mapreduce运行原理与常用数据压缩格式
- Hadoop On Yarn Mapreduce运行原理与常用数据压缩格式
- HDFS简介,YARN、MapReduce原理介绍
- Hadoop之旅(4)— MapReduce 与 YARN 原理讲解
- 【hadoop 2学习】Hadoop下一代的MapReduce----YARN
- Hadoop MapReduce和Yarn的关系
- Hadoop生态系统介绍及HDFS与MapReduce原理详细阐述
- hadoop初识之二:三大组件(HDFS,MapReduce,Yarn)以及mapreduce运行在yarn上的过程
- Mapreduce与Yarn 原理分析
- HDFS学习笔记(8)mapreduce原理
- hadoop学习笔记 MapReduce + HDFS
- Redis安装
- swift-oc wkwebView使用自定义UIMenuController
- 22. 其他操作流
- Centos下Spark单机版(python)安装配置
- 经典的营销管理模型
- hadoop学习记(2)--HDFS+yarn+MapReduce关系与原理
- C# using System.Xml.Linq;提示没有命令空间问题解决
- Linux下连接Oracle数据库并进行一系列操作
- opencv学习系列:目标跟踪相关
- Jedis简介
- Linux下编译安装Erlang和Elixir
- JSP内置对象、指令和动作
- Redis Cluster集群的搭建与实践
- JS cocos cretor asd