Spark核心编程原理
2016-04-25 16:22
295 查看
1、首先我们搭建好了spark集群
2、客户端与spark集群建立连接,之后才能提交spark应用程序
3、spark提交应用程序到spark集群上
4、Spark与MapReduce最大的不同在于,迭代式计算模型:
MapReduce,分为两个阶段,map和reduce,两个阶段完了,就结束了。所以我们在一个job里能做的处理很有限,只能在map和reduce里处理。
Spark,计算模型,可以分为n个阶段,因为它是内存迭代式的。我们在处理完一个阶段以后,可以继续往下处理很多个阶段,而不只是两个阶段。所以,Spark相较于MapReduce来说,计算模型可以提供更强大的功能。
Spark的核心编程是什么?其实,就是:
首先,第一,定义初始的RDD,就是说,你要定义第一个RDD是从哪里,读取数据,hdfs、linux本地文件、程序中的集合。
第二,定义对RDD的计算操作,这个在spark里称之为算子,map、reduce、flatMap、groupByKey,比mapreduce提供的map和reduce强大的太多太多了。
第三,其实就是循环往复的过程,第一个计算完了以后,数据可能就会到了新的一批节点上,也就是变成一个新的RDD。然后再次反复,针对新的RDD定义计算操作。。。。
第四,最后,就是获得最终的数据,将数据保存起来。
每一批节点上的每一批数据,实际上就是一个RDD!!!一个RDD是分布式的,所以数据都散落在一批节点上了,每个节点都存储了RDD的部分partition。
2、客户端与spark集群建立连接,之后才能提交spark应用程序
3、spark提交应用程序到spark集群上
4、Spark与MapReduce最大的不同在于,迭代式计算模型:
MapReduce,分为两个阶段,map和reduce,两个阶段完了,就结束了。所以我们在一个job里能做的处理很有限,只能在map和reduce里处理。
Spark,计算模型,可以分为n个阶段,因为它是内存迭代式的。我们在处理完一个阶段以后,可以继续往下处理很多个阶段,而不只是两个阶段。所以,Spark相较于MapReduce来说,计算模型可以提供更强大的功能。
Spark的核心编程是什么?其实,就是:
首先,第一,定义初始的RDD,就是说,你要定义第一个RDD是从哪里,读取数据,hdfs、linux本地文件、程序中的集合。
第二,定义对RDD的计算操作,这个在spark里称之为算子,map、reduce、flatMap、groupByKey,比mapreduce提供的map和reduce强大的太多太多了。
第三,其实就是循环往复的过程,第一个计算完了以后,数据可能就会到了新的一批节点上,也就是变成一个新的RDD。然后再次反复,针对新的RDD定义计算操作。。。。
第四,最后,就是获得最终的数据,将数据保存起来。
每一批节点上的每一批数据,实际上就是一个RDD!!!一个RDD是分布式的,所以数据都散落在一批节点上了,每个节点都存储了RDD的部分partition。
相关文章推荐
- Java并发编程:Lock
- 使用IDEA创建Spring mvc工程及简要分析
- 按照RFC3984协议实现H264视频RTP打包(附源代码)
- Spring MVC
- java类加载(未完)
- 为什么在Python里推荐使用多进程而不是多线程?
- C语言中的变参数函数,宏
- malloc calloc realloc的对比
- Spring体系知识点IOC,AOP
- eclipse最有用快捷键整理(转)
- C语言压缩文件和用MD5算法校验文件完整性的实例教程
- 谈谈java的"=="和equals
- 安装eclipse的maven插件
- PHPSession-完全PHP5之session篇
- RxJava----简介
- 将VIM改造成c++IDE
- java--WebService小例子【MyEclipse10】
- django migrate error: table 'xxx' already exists
- Laravel5.2多对多自定义主键名
- PHP 正则表达式