Spark1 基本概念1.1 什么是 SparkSpark 是一种计算框架,是与 mapreduce 不一样的计算框架。他与 Hadoopmapreduce 相比具有以下优势:1)Spark 通过将中间结果缓存在内存,而不是磁盘,因此很适合于多阶段的作业,如需多次迭代的机器学习。而 mapreduce 则将中间结果每次都存到磁盘,速度下降很多。2)Spark 在通信方面采用 Akaa 框架的(角色)Actor 模型,并通过线程池复用线程来避免进程或线程启动和切换开销。而 Hadoopmapreduce 最初的设计是为了离线批量计算大文件,运行都是好几个小时,所以作业调度中秒级的开销根本没考虑和优化。3)Spark 任务在 Shuffle 中不是所有情景都需要排序。而 MapReduce 在数据 Shuffle 之前花费了大量的时间来排序。总之,Spark 在速度上要比 mapreduce 快很多。在流式计算方面,Spark 流计算与 Storm 相比,速度不及 Storm。Storm 可以达到毫秒级响应,而 Spark 只能达到秒级。但是 Spark 流计算更适合于计算较复杂的应用,特别是需要流数据与历史数据结合的计算。而 Storm 只能完成简单的计算,如广告点击率等。此外,Spark 的吞吐量要远高于 Storm。1.4MesosMesos 是一个资源管理框架一,提供类似于 YARN 的功能。YARN 是 Hadoop 中的一个资源管理框架1.5TachyonTachyon(读:忒 ki 样)是一个分布式内存文件系统,可以理解为内存中的 HDFS。为了提供更高的性能,将数据存储剥离 JavaHeap。用户可以基于 Tachyon 实现 RDD 或者文件的跨应用共享,并提供高容错机制,保证数据可靠性。1.6Zookeeper用于解决分布式系统中一致性问题。1.7 大数据大数据很难有一个明确定义。但是他这样几个特点,即大容量、繁杂、高价值、快速,也就是 4 个 V。它与海量数据相比,我认为很难有一个界定,更多的是一种商业性的口号、名称,它与海量数据有很多交叉的地方,只是为了适应新的网络化世界,而提出这种大数据概念。窄依赖指,子 RDD 分区只由一个或多个父 RDD 中的一个分区转换而来。map 操作就是一个父 RDD 的一个分区,union 操作就是两个父 RDD 的一个分区。宽依赖指,子 RDD 的分区由父 RDD 的所有分区转换而来,即经过过 shuffle 操作。,如如 reduceByKey,groupByKey 等。grOup&yKryuniojoinxrthinputsnotco-parthionedjoinwithinputsio-parlrtibrl^d"WIIJE"(ihuffle)depslbNarraw'rdeps3 弹性分布式数据集 RDD3.1RDD 基本概念1...