SparkCore
BigMoM1573
淡泊名利
展开
-
SparkCore>RDD数据源
文章目录普通文本文件JDBC[掌握]HadoopAPI[了解]SequenceFile文件[了解]对象文件[了解]HBase[了解]扩展阅读普通文本文件sc.textFile("./dir/*.txt")如果传递目录,则将目录下的所有文件读取作为RDD。文件路径支持通配符。但是这样对于大量的小文件读取效率并不高,应该使用wholeTextFilesdef wholeTextFiles(...原创 2020-04-12 00:25:48 · 255 阅读 · 0 评论 -
SparkCore>RDD累加器和广播变量
文章目录累加器广播变量在默认情况下,当Spark在集群的多个不同节点的多个任务上并行运行一个函数时,它会把函数中涉及到的每个变量,在每个任务上都生成一个副本。但是,有时候需要在多个任务之间共享变量,或者在任务(Task)和任务控制节点(Driver Program)之间共享变量。为了满足这种需求,Spark提供了两种类型的变量:1.累加器accumulators:累加器支持在所有不同节点之...原创 2020-04-12 00:18:37 · 159 阅读 · 0 评论 -
SparkCore>Spark原理初探
文章目录基本概念基本流程流程图解总结基本概念http://spark.apache.org/docs/latest/cluster-overview.html名词解释1.Application:指的是用户编写的Spark应用程序/代码,包含了Driver功能代码和分布在集群中多个节点上运行的Executor代码。2.Driver:Spark中的Driver即运行上述Applica...原创 2020-04-12 00:11:26 · 185 阅读 · 0 评论 -
SparkCore>DAG的生成和划分Stage
DAG介绍DAG是什么DAG(Directed Acyclic Graph有向无环图)指的是数据转换执行的过程,有方向,无闭环(其实就是RDD执行的流程)原始的RDD通过一系列的转换操作就形成了DAG有向无环图,任务执行时,可以按照DAG的描述,执行真正的计算(数据被操作的一个过程)DAG的边界开始:通过SparkContext创建的RDD结束:触发Action,一旦触发Act...原创 2020-04-11 22:35:39 · 227 阅读 · 0 评论 -
SparkCore>RDD依赖关系
宽窄依赖两种依赖关系类型RDD和它依赖的父RDD的关系有两种不同的类型,即宽依赖(wide dependency/shuffle dependency)窄依赖(narrow dependency)图解如何区分宽窄依赖窄依赖:父RDD的一个分区只会被子RDD的一个分区依赖宽依赖:父RDD的一个分区会被子RDD的多个分区依赖(涉及到shuffle)面试题:子R...原创 2020-04-11 21:48:54 · 93 阅读 · 0 评论 -
SparkCore>RDD容错机制Checkpoint
文章目录引入代码演示查看结果:总结引入持久化的局限持久化/缓存可以把数据放在内存中,虽然是快速的,但是也是最不可靠的;也可以把数据放在磁盘上,也不是完全可靠的!例如磁盘会损坏等。问题解决Checkpoint的产生就是为了更加可靠的数据持久化,在Checkpoint的时候一般把数据放在在HDFS上,这就天然的借助了HDFS天生的高容错、高可靠来实现数据最大程度上的安全,实现了RDD...原创 2020-04-11 21:19:52 · 272 阅读 · 0 评论 -
SparkCore>RDD的持久化/缓存
文章目录引入持久化/缓存API详解代码演示总结引入在实际开发中某些RDD的计算或转换可能会比较耗费时间,如果这些RDD后续还会频繁的被使用到,那么可以将这些RDD进行持久化/缓存,这样下次再使用到的时候就不用再重新计算了,提高了程序运行的效率持久化/缓存API详解persist方法和cache方法RDD通过persist或cache方法可以将前面的计算结果缓存,但是并不是这两个方法被调...原创 2020-04-11 21:14:45 · 170 阅读 · 0 评论 -
SparkCore>RDD基础练习[快速演示]
文章目录集群模式启动分区原则RDD (API)mapfilterflatmapsortBy交集、并集、差集、笛卡尔积joingroupbykeycogroup[了解]groupByreducereducebykeyrepartitioncollectcountdistincttoptakefirstkeys、valuesmapValuescollectAsMap面试题:foreach和foreac...原创 2020-04-11 20:41:04 · 714 阅读 · 0 评论 -
SparkCore>RDD的方法/算子分类
文章目录分类Transformation转换算子Action动作算子统计操作分类RDD的算子分为两类:1.Transformation转换操作:返回一个新的RDD2.Action动作操作:返回值不是RDD(无返回值或返回其他的)注意:RDD不实际存储真正要计算的数据,而是记录了数据的位置在哪里,数据的转换关系(调用了什么方法,传入什么函数)RDD中的所有转换都是惰性求值/延迟执行...原创 2020-04-11 17:13:32 · 362 阅读 · 0 评论 -
SparkCore>创建RDD
1.由外部存储系统的数据集创建,包括本地的文件系统,还有所有Hadoop支持的数据集,比如HDFS、Cassandra、HBase等val rdd1 = sc.textFile("hdfs://node01:8020/wordcount/input/words.txt")2.通过已有的RDD经过算子转换生成新的RDDval rdd2=rdd1.flatMap(_.split(" "...原创 2020-04-11 16:58:18 · 99 阅读 · 0 评论 -
SparkCore>RDD详解
文章目录什么是RDDRDD的主要属性总结什么是RDD为什么要有RDD?在许多迭代式算法(比如机器学习、图算法等)和交互式数据挖掘中,不同计算阶段之间会重用中间结果,即一个阶段的输出结果会作为下一个阶段的输入。但是,之前的MapReduce框架采用非循环式的数据流模型,把中间结果写入到HDFS中,带来了大量的数据复制、磁盘IO和序列化开销。且这些框架只能支持一些特定的计算模式(map/re...原创 2020-04-11 16:49:13 · 118 阅读 · 0 评论