当前课程知识点:高级大数据系统 > In-memory Processing > Background > Video
在之前的课程当中
我们讲了这个分布式文件系统
我们讲了map-reduce
那么今天我们会讲一个
在近几年来
变得非常流行的
这种数据处理的模式
in-memory data processing
内存化的数据处理
那么它的典型的
这个平台是spark
由UC Berkeley大学
做出来的一个原型
现在已经成功的商业化了
那么今天我们来看
为什么要用这种内存化的
数据处理
它有什么样的好处
那么它的趋势会是什么样的
那么它的系统结构
它的一些局限性用在什么地方
那就是我们今天这堂课的内容
那么近几年来
使用这种我们能够简单的部署
能够通过scale out的原则
进行组织的这样一个集群
来进行大规模数据的分析
已经成为了一个今天的一种常态
那么不管是工业界
还是在学校
在研究所里面
用map-reduce
用spark来进行数据分析
已经成为一种
大家通用的一个做法
那么在这种模式底下
大家实际上多多少少
还是需要去对数据分析的
这种任务进行一定的调整
比如说我需要把我的程序
按照map-reduce
里面要求的
这样一个map-reduce的
一个框架进行一个调整
才能达到数据处理的
分布化这样一个要求
那么在这样的一个趋势底下
实际上越来越多的人
他们会观察到今天的
这种分布式的环境
它的一些缺点
那么我们以map-reduce
来为例来看
那么map-reduce它是
一个什么样的数据处理的模式呢
实际上它是从持久化的这种
分布式文件系统到
分布式文件系统这样一个数据的
一个操作的流程
从storage到storage
这样一个流程
我们看数据被map
从分布式文件系统的
各个节点中读取出来
然后进行一定的处理
然后进行中间的这个shuffle
最后到达reducer节点
那么reducer会把这些数据
进行一定的整合
然后进一步
最后存储到
这个分布式文件系统里面去
那么完成了
一次map-reduce的过程
在实际的系统当中
用户真正用map-reduce来
处理任务的时候
实际上这个过程
是会被反复的进行
我们把它叫做迭代化
那么它的一个常态是什么样呢
那么用户会把很多的这个
job串联成一个流程
那么数据被反复的
从分布式文件系统里面读出
然后写入到分布式文件系统
然后再被读出再被写入
那么这个过程会反复的进行
那么大家知道实际上在
大数据处理的这个过程当中
实际上IO从分布式文件系统
从磁盘把数据读取出来
写入到内存
然后再从内存读取出来
写入到硬盘这个过程
实际上是比较耗时的
那么整个这种迭代
就会带来很多的开销
而实际上这些开销
有很大的部分是可以避免的
比如说前一个job的输出
正好就是后一个job的
这个输入的时候
那么我们反复的进行读写
实际上浪费了
这个中间读和写的这样一个时间
那么对最终的这个数据处理
其实没有好处的
那么在这样的一个背景下
in-memory data processing
就被提了出来
in-memory data processing
它的一个思路是什么样呢
就是我们想要把这种需要被反复
写入到磁盘的
这样一个操作给去掉
让这部分数据直接在内存当中
那么我们对它进行下一步的操作
以及下一步之后的其他的操作
直到所有的操作完成
用户需要输出的时候
我们再把它写入到
分布式文件系统
或者输出给用户
那么设计了
这样一个数据处的方案
那么它天生就能够解决迭代
这种操作
同时它还可以潜在地支持
这种交互性的数据处理
那么所谓交互性数据处理
就是说今天随着这个数据的行业
越来越发展
其实很多的数据的这种从业者
他们在真正处理数据的时候
其实并不会从一开始
就能够想清楚
这个数据到底应该按照什么样的
流程来做
他们会不断的去尝试进行操作
进行试错
然后进行这个回溯
然后进行不同的方案的测试
最终来达到一个这个完整的方案
那么当完整方案生成之后
他们会把这个过程给流程化
但是在他尝试的这个阶段
这些过程是一个交互的过程
那map-reduce实际上
也对这种交互的过程
并不是非常的友好
我们在之前的课程中已经知道了
map-reduce需要
用户的任务进行排队
需要等很长的时间
在分布式文件系统里面
把所有的结果生成出来
所以他对交互
其实天然是不是那么好的支撑的
那么为了支撑这种迭代化交互化的
这种数据操作
也是今天数据工程师
需要的这种操作
那么spark被提了出来
那么spark
它利用数据在内存中的这种特性
将一系列可以在
内存中完成的操作
那么把它限定在内存当中
同时将很多操作进行延迟的执行
使得部分操作可以
非常快的给到用户一个反馈
那么用户在完成一系列的操作之后
才去得到最终想要的结果
那么
这是in-memory data processing它的
一个基本的背景
和它基本的一个动机
和那么我们可以看到
我们在对map-redeuce和
in-memory data processing
的这样一个划分当中
我们把它放到了同一层面
实际上我们认为这两种模式
在未来的这种工业界
会变得非常的重要
一种是对企业的这种流程的数据
进行批量的这个处理
使用map-reduce这种模式
一种对于这种探索性的数据
迭代性的数据
进行有效的这个处理
in-memory data processing
那么这两种分析方法
我们认为会是未来进行并行的
数据处理的一个基础
-What is big data and what is big data system?
--Video
-Problems in big data systems?
--Video
-Overview of the course
--Video
-Principles of big data system design
--Video
-Manipulating Data on Linux
--Video
--Video
--Video
-Basics of Linux Data Processing--Manipulating Data
-Running Commands on a Single Machine
--Video
-Running Commands on a Single Machine--作业
-Using a Linux Cluster
--Video
-Using a Linux Cluster--作业
-Storage for Big Data Computing: Distributed file system
--Video
-Storage for Big Data Computing: Distributed file system--作业
-File system and GFS
--Video
-File system and GFS--作业
-Understanding HDFS using Legos
--Video
-Understanding HDFS using Legos--作业
-File System Implementation and DFS
--Video
--Video
-File System Implementation and DFS--作业
-What is MapReduce and why
--Video
-What is MapReduce and why
-Learn MapReduce by playing with cards
--Video
-Processing pattern
--Video
-Processing pattern--作业
-Hadoop
--Video
-Hadoop--作业
-Algorithms in MapReduce
--Video
-Algorithms in MapReduce--作业
-Tutorial
--Video
-Background
--Video
-Background--作业
-Spark
--Video
-Spark--作业
-Use Spark for data mining
--Video
-Use Spark for data mining--作业
-Spark data processing
--Video
-Spark data processing--作业
-Experiment in Spark
--Video
-Experiment in Spark--作业
-Introduction to streaming data processing
--Video
-Introduction to streaming data processing--作业
-Storm
--Video
--Video
--Video
-Storm--作业
-Spark streaming
--Video
--Video
-Spark streaming--作业
-NoSQL introduction
--Video
-NoSQL introduction--作业
-Common Advantages
--Video
-Common Advantages--作业
-Bigtable
--Video
-Bigtable--作业
-Master Startup
--Video
-Master Startup--作业
-HBase
--Video
-HBase--作业
-What is GraphDB and Graph data processing
--Video
-What is GraphDB and Graph data processing--作业
-Graph systems
--Video
-Graph systems
-Example of a GraphDB
--Video
-Example of a GraphDB--作业
-Mahout
--Video
-Mahout--作业
-Case Study: Recommendation
--Video
-Case Study: Recommendatio作业
-Recommendation in Mahout
--Video
-Recommendation in Mahout--作业