0502 Spark 核心RDD课件0502 Spark 核心RDD_第1页
0502 Spark 核心RDD课件0502 Spark 核心RDD_第2页
0502 Spark 核心RDD课件0502 Spark 核心RDD_第3页
0502 Spark 核心RDD课件0502 Spark 核心RDD_第4页
0502 Spark 核心RDD课件0502 Spark 核心RDD_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

大数据大数据Hadoop高薪直通车课程高薪直通车课程 讲师:轩宇(北风网版权所有) Spark 核心核心RDD w w w .i b e i f e n g .c o m 课程大纲课程大纲 4 Spark RDD 特性特性 1 2 3 5 Spark RDD 操作操作 Spark RDD 依赖依赖 Spark RDD Shuffle Spark 内核内核分析分析 w w w .i b e i f e n g .c o m 课程大纲课程大纲 4 Spark RDD 特性特性 1 2 3 5 Spark RDD 操作操作 Spark RDD 依赖依赖 Spark RDD Shuffle Spark 内核分析内核分析 w w w .i b e i f e n g .c o m Spark WordCount val rdd=sc.textFile(hdfs:/bigdata- :8020/user/beifeng/spark/wc.input) val wordcount=rdd.flatMap(_.split( ) .map(_,1) .reduceByKey(_ + _) wordcount.collect() val wordsort=wordcount.map(x=(x._2,x._1) .sortByKey(false) .map(x=(x._2,x._1) wordsort.collect() w w w .i b e i f e n g .c o m RDD hdfs:/xxx:8020/user/hadoop/spark/wc.inputHDFS sc.textFile(“path”) RDDStringMemory rdd.flatMap(line = line.split( ) RDDString Memory w w w .i b e i f e n g .c o m RDD A Resilient Distributed Dataset (RDD), the basic abstraction in Spark. Represents an immutable, partitioned collection of elements that can be operated on in parallel. w w w .i b e i f e n g .c o m RDD w w w .i b e i f e n g .c o m 课程大纲课程大纲 4 Spark RDD 特性特性 1 2 3 5 Spark RDD 操作操作 Spark RDD 依赖依赖 Spark RDD Shuffle Spark 内核内核分析分析 w w w .i b e i f e n g .c o m Create RDDs Parallelized Collections External Datasets w w w .i b e i f e n g .c o m Parallelized Collections w w w .i b e i f e n g .c o m External Datasets w w w .i b e i f e n g .c o m RDD w w w .i b e i f e n g .c o m Resilient Distributed Datasets 1 3 /docs/1.3.0/programming-guide.html w w w .i b e i f e n g .c o m RDD Transformations Create a new dataset from and existing one. Lazyin nature. They are executed only when some action is performed. Example : map(func) filter(func) distinct() Actions Returns to the driver program a value or exports data to a storage system after performing a computation. Example: count() reduce(func) collect take() Persistence For caching datasets in-memory for future operations. Option to store on disk or RAM or mixed (Storage Level). Example: persist() cache() w w w .i b e i f e n g .c o m Transformation map() flatMap() filter() mapPartitions() mapPartitionsWithIndex() sample() union() intersection() distinct() groupByKey() reduceByKey() sortByKey() join() cogroup cartesion() pipe() coalesce() repartition() partitionBy() . . lazy Transformations arent applied to an RDD until an action is executed; Spark remembers set of transformations applied to base dataset; Create new datasets from existing ones w w w .i b e i f e n g .c o m Action reduce() collect() count() first() take() takeSample() saveToCassandra() takeOrdered() saveAsTextFile() saveAsSequenceFile() saveAsObjectFile() countByKey() foreach() . eager Cause Spark to execute recipe to transform source; Cause data to be returned to driver or saved to output; w w w .i b e i f e n g .c o m RDD Persistence w w w .i b e i f e n g .c o m 课程大纲课程大纲 4 Spark RDD 特性特性 1 2 3 5 Spark RDD 操作操作 Spark RDD 依赖依赖 Spark RDD Shuffle Spark 内核内核分析分析 w w w .i b e i f e n g .c o m RDD w w w .i b e i f e n g .c o m RDD Dependencies w w w .i b e i f e n g .c o m RDD Dependencies 窄依赖( narrow dependencies ) 子 RDD 的每个分区依赖于常数个父分区(即与数据规模无关) 输入输出一对一的算子,且结果 RDD 的分区结构不变,主要是 map 、 flatMap 输入输出一对一,但结果 RDD 的分区结构发生了变化,如 union 、 coalesce 从输入中选择部分元素的算子,如 filter 、 distinct 、 subtract 、 sample 宽依赖( wide dependencies ) 子 RDD 的每个分区依赖于所有父 RDD 分区 对单个 RDD 基于 key 进行重组和 reduce ,如 groupByKey 、 reduceByKey ; 对两个 RDD 基于 key 进行 join 和重组,如 join w w w .i b e i f e n g .c o m 课程大纲课程大纲 4 Spark RDD 特性特性 1 2 3 5 Spark RDD 操作操作 Spark RDD 依赖依赖 Spark RDD Shuffle Spark 内核分析内核分析 w w w .i b e i f e n g .c o m Spark Shuffle w w w .i b e i f e n g .c o m RDD Shuffle 什么是什么是spark Shuffle The shuffle is Sparks mechanism for re-distributing data 那些操作会引起那些操作会引起Shuffle? 具有重新调整分区操作具有重新调整分区操作 ,eg:repartition,coalesce *BeyKey eg: groupByKey ,reduceByKey 关联操作关联操作 eg: join ,cogroup w w w .i b e i f e n g .c o m 课程大纲课程大纲 4 Spark RDD 特性特性 1 2 3 5 Spark RDD 操作操作 Spark RDD 依赖依赖 Spark RDD Shuffle Spark 内核分析内核分析 w w w .i b e i f e n g .c o m Initializing Spark w w w .i b e i f e n g .c o m Spark Scheduler w w w .i b e i f e n g .c o m DAG Scheduler w w w .i b e i f e n g .c o m DAG Scheduler 接收用户提交的job 构建 Stage,记录哪个 RDD 或者 Stage 输出被物化 重新提交 shuffle 输出丢失的 stage 将 Taskset 传给底层调度器 w w w .i b e i f e n g .c o m Task Scheduler w w w .i b e i f e n g .c o m Task Scheduler 提交 taskset( 一组 task) 到集群运行并监控 为每一个 TaskSet 构建一个 TaskSetManager 实例管理这个 TaskSet 的生命周期 数据本地性决定每个 Task 最佳位置 (process-local, node-local, rack-local and then any) 推测执行,碰到 straggle 任务需要放到别的节点上重试出现 shuffle 输出 lost 要报告 fetch failed 错误 w w w .i b e i f e n g .c o m Partition & Task w w w .i b e i f e n g .c o m Task Task是Executor中的执行单元 Task处理数据常见的两个来源:外部存储以及shuffle数据 Task可以运行在集

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论