- 1、本文档共8页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第11课:彻底解析wordcount运行原理
本期内容:
1. 从数据流动视角解密WordCount ,即用Spark 作单词计数统计,数据到底是怎么流动的。
2. 从RDD 依赖关系的视角解密WordCount 。Spark 中的一切操作皆RDD,后面的RDD
对前面的RDD 有依赖关系。
3. DAG 与Lineage 的思考。依赖关系会形成DAG。
1. 从数据流动视角解密WordCount
(1)在IntelliJ IDEA 中编写下面代码:
package com.dt.spark
/**
* 使用Java 的方式开发进行本地测试Spark 的WordCount 程序
* @author DT 大数据梦工厂
* /ilovepain
*/
import org.apache.spark.SparkConf
import org.apache.spark.SparkContext
object WordCount {
def main(args: Array[String]){
val conf = new SparkConf()
conf.setAppName(Wow, My Fir t Spark App!)
conf.setMaster(local)
val sc = new SparkContext(conf)
val lines = sc.textFile(D://tmp//helloSpark.txt, 1)
val words = lines.flatMap { line = line.split( ) }
val pairs = words.map { word = (word,1) }
val wordCounts = pairs.reduceByKey(_+_)
wordCounts.foreach(wordNumberPair = println(wordNumberPair._1 + : +
wordNumberPair._2))
sc.stop()
}
}
(2 )在D 盘下地tmp 文件夹下新建helloSpark.txt 文件,内容如下:
Hello Spark Hello Scala
Hello Hadoop
Hello Flink
Spark is awesome
(3 ) 在WordCount 代码区域点击右键选择Run WordCount。可以得到如下运行结果:
Flink : 1
Spark : 2
is : 1
Hello : 4
awesome : 1
Hadoop : 1
Scala : 1
下面从数据流动的视角分析数据到底是怎么被处理的。
说明:
Spark 有三大特点:
1. 分布式。无论数据还是计算都是分布式的。默认分片策略:Block 多大,分片就多大。但
这种说法不完全准确,因为分片切分时有的记录可能跨两个Block,所以一个分片不会严格
地等于Block 的大小,例如HDFS 的Block 大小是128MB 的话,分片可能多几个字节或少
几个字节。一般情况下,分片都不会完全与Block 大小相等。
分片不一定小于Block 大小,因为如果最后一条记录跨两个Block 的话,分片会把最后一条
记录放在前一个分片中。
2. 基于内存 (部分基于磁盘)
3. 迭代
textFile 源码 (SparkContext 中);
def textFile(
path: String,
minPartitions: Int = defaultMinPartitions): RDD[String] = withScope {
assertNotStopped()
hadoopFile(path, classOf[TextInputFormat , classOf[LongWritable , classOf[Text ,
minPartitions).map(pair = pair._2.toString)
}
可以看出在进行了hadoopFile 之后又进行了map 操作。
HadoopRDD 从HDFS 上读取分布式文件,并且以数据分片的方式存在于集群之中。
map 的源码 (RDD.scala 中)
def map [U: Class
您可能关注的文档
- 七号信令网协议与流程三(MAP、BSSAP、CAP、GPRS).ppt
- 万以内加法和减法课例.doc
- 一轮复习二战后资本主义世界经济体系形成.ppt
- 一般将来时精选.ppt
- 一轮复习之人类面临主要环境问题.ppt
- 万以内数写法.ppt
- 万以内数读法与写法.ppt
- 万科企业股份有限公司战略分析报告.doc
- 万科管理层反收购手段以与可行性分析.doc
- 万以内数读法和写法.ppt
- 2022-2023学年全国小学五年级上英语新人教版(一起)期中试卷(含解析).pdf
- (新)人教版生物七上《3.4绿色植物是生物圈中有机物的制造者》单元检测卷(含答案).pdf
- 1—5岁幼儿必读绘本书目(按年龄分布).pdf
- 2002中国大学研究生院评价.pdf
- 2022年新课改高一语文教学工作计划范文(通用6篇).pdf
- 2022年北京工业大学工商管理专业《管理学》科目期末试卷A(有答案).pdf
- 2022一建《机电工程管理与实务》模拟试卷(附答案).pdf
- 2022小学语文新课标学习心得体会范文.pdf
- 2022年大工秋数据结构在线作业.pdf
- 2022年内蒙古大学公共课《马克思主义基本原理概论》期末试卷A(有答案).pdf
文档评论(0)