当前课程知识点:大数据系统基础 > 5.内存计算 > 授课视频 > 5.6MapReduce文件传递数据
我们来看一下MapReduce中
用文件传递数据的
这样的一个情况
那么假如说
这是一个迭代式的
MapReduce任务
也就是说MapReduce需要经过多次
MapReduce操作
那么第一次MapReduce的
迭代结果将会被写入到HDFS的
分布式系统里面去
然后第二个迭代的MapReduce
会从这个地方去读取这个任务
然后进行计算
然后再写入到HDFS中去
也就是说
每一次MapReduce的迭代都是从
HDFS中读取数据
处理完了以后
又写入到HDFS的系统中
这就是我们刚才讲到的
在这样一个过程里面
MapReduce产生了
非常多的I/O操作
那么对于刚才
我们说的是一个迭代式的
这样的一个MapReduce任务
那么对于一些查询的任务
由于这个每个查询
它也都需要从HDFS的
这个分布式文件系统中
将数据读出来
同样会引入大量的
这个硬盘的I/O操作
所以由于这个数据复制
序列化和磁盘I/O
使得MapReduce的性能是比较差的
大家当然会想
如果我们整个性能的瓶颈
就是硬盘
那么为什么
我们要把这些中间结果
或者是原始数据
都必须要放在这个磁盘中
而不是把它放到内存中
我们知道
我们刚才一直在讲内存的速度
访问速度要比硬盘快很多
那么我们这个图里面
实际上就展示了这样一个方案
也就是说在迭代的MapReduce中
当第一个MapReduce迭代结束之后
我们并不是将结果
写入到HDFS的文件系统中
而是我们把它写入到一个内存中
那么这样的话
第二个MapReduce迭代
它可以直接从内存中
读取数据进行计算
并在计算之后
仍然将结果写入内存中
也就是说这样的一个方式
就在这个中间的这些环节里面
都避免了再去读写硬盘
而是从内存中直接读写数据
这样就大大的提高了性能
那么对于查询类的任务
那么过去我们刚才讲到
MapReduce它是直接从
这个硬盘中查询数据
这样每一个查询都需要引入I/O
那么如果我们在中间
加了这样一块内存
分布式的内存
它如果足够大
可以把这个原始数据
把它缓存在内存之中
也就是说这个时候
这些查询它就不需要
再从硬盘上面去读取数据了
而可以直接从内存中获取数据
来进行查询
这样也同样的就避免了
这个查询时间过长
引入I/O过多的
这样的一个限制
所以这样的方案
它应该能够比采用
硬盘的方案快十倍到一百倍
那么内存计算技术
我们刚才讲到了
这样的一个技术
实际上就是内存计算数据
也就是它用内存来代替硬盘
来保存数据的中间结果
或者是直接在数据源的地方
来做缓存
那么这项技术
实际上得到了国际上的重视
我们知道国际上有个著名的
IT咨询公司
它会每年发布十项战略性技术
那么在它已经发布的
2012年和2013年
内存计算都是处于
其中的比较重要的位置
当然这个大数据
我们可以看到
也是在其中第七名
内存计算在2012年是第八名
在2013年内存计算名列第九名
大数据名列第七名
-授课视频
--什么是大数据
--大数据典型应用
--大数据的特点
--大数据技术体系
--大数据生态系统
--大数据技术挑战
--课程内容
-1. 绪论--Quiz 1
-授课视频
--2.2并行化理念
--2.9计算虚拟化
-2.云计算--Quiz 2
-授课视频
--Video
--Video
--Video
--Video
--Video
--Video
--Video
--Video
--Video
--Video
--Video
--Video
--Video
--Video
--Video
--Video
-3.文件存储--Quiz3
-授课视频
--4.13类似框架
--4.14章节总结
-4. 处理框架--Quiz4
-授课视频
-5.内存计算--Quiz5
-授课视频
--数据副本及一致性
--节点本地数据存储
-6. NoSQL--Quiz6
-授课视屏
--Video
--Video
--Video
--Video
--Video
--Video
--Video
--Video
--Video
--Video
-7. 流计算--Quiz7