Spark 学习笔记1 (常见术语 )
本来没打算学Spark 的,不过时机很逗。
最膜拜的大神做spark分享,还是其中最好玩的notebook。这不就是另外一个 HUE吗,但感觉更好玩。
刚好新的Spark 2.x 要问世了,大神在组织战队一起迭代。就此开始跟着大神脚后跟一点点的了解,学习争取入门吧。
https://github.com/endymecy/spark-programming-guide-zh-cn (官方文档)
https://www.gitbook.com/book/endymecy/spark-config-and-tuning/details (参数与调优)
术语总览:
transformation,action,RDD
job,task,stage
executor
persist 持久化(一般把RDD持久化到内存中)
两种抽象:
1. RDD 弹性分布式数据集,一个可并行操作的有容错机制的数据集合
2. shared variables 共享变量,包含两种
- broadcast variables 广播变量:缓存一个只读的变量在每台机器上面,而不是每个任务保存一份拷贝。 通过方法 var1.sc.broadcast(v) 创建, var1.value()可以查看它的值
- accumulator 累加器:一种只能通过关联操作进行“加”操作的变量,它能够高效的应用于并行操作中。 sc.accumulator(v)
并行集合:
parallelized collections, 可以在已有的集合上调用 sc.parallelize(yourCollection) 方法创建。
实例:
scala> val data=Array(1,2,3,4,5) # 创建一个已有集合
data: Array[Int] = Array(1, 2, 3, 4, 5) scala> val distData=sc.parallelize(data) # 复制成一个并行数据集,即RDD
distData: org.apache.spark.rdd.RDD[Int] = ParallelCollectionRDD[2] at parallelize at <console>:17 scala> distData.reduce((a,b)=>a+b) # 并行计算总和
res4: Int = 15
并行集合一个很重要的参数是切片数(slices),表示一个并行数据集切分的份数。
一般Spark可以自动决定,你也可以通过设置,在第二个参数如 sc.parallelize(data, 10)
外部数据集:
Spark 支持文本文件(text files),SequenceFiles 和其他 Hadoop InputFormat。
通过 sc.textFile 来创建,然后可以对之做分布式操作。
实例:
scala> val text1=sc.textFile("/data/test/test_yy.txt") # 把文件导入为并行数据集,即RDD
text1: org.apache.spark.rdd.RDD[String] = MapPartitionsRDD[4] at textFile at <console>:15
scala> text1.map(s=>s.length).reduce((a,b)=>a+b) # 并行计算文件的行数
res5: Int = 8
RDD操作
- 转换(transformations) 从已经存在的数据集中创建一个新的数据集;
- 动作(actions) 在数据集上进行计算之后返回一个值到驱动程序
常用的一些transformation:
- map(func)
- filter(func)
- flatmap(func) 类似于 map,但是每个输入项能被映射成多个输出项(所以 func 必须返回一个 Seq,而不是单个 item)
常用的一些actions:
RDD 持久化(persist)
- RDD持久化其实也就是缓存的问题,通过各种操作(operations)持久化(或者缓存)一个集合到内存中。
- 可以通过
persist()或者cache()方法持久化一个rdd。 - Spark的缓存是容错的:如果RDD的任何一个分区丢失,它可以通过原有的转换(transformations)操作自动的重复计算并且创建出这个分区
DStream
离散数据流(discretized stream)是Spark Streaming支持的一个高级抽象。
可以利用从Kafka, Flume和Kinesis等源获取的输入数据流创建,也可以在其他DStream的基础上通过高阶函数获得。在内部,DStream是由一系列RDDs组成。
Checkpoint
不同的集群管理器:
- Spark Standalone 独立的Spark集群
- Mesos
- YARN 使用了YARN的资源分配策略
Spark 学习笔记1 (常见术语 )的更多相关文章
- Spark学习笔记3——RDD(下)
目录 Spark学习笔记3--RDD(下) 向Spark传递函数 通过匿名内部类 通过具名类传递 通过带参数的 Java 函数类传递 通过 lambda 表达式传递(仅限于 Java 8 及以上) 常 ...
- Spark学习笔记0——简单了解和技术架构
目录 Spark学习笔记0--简单了解和技术架构 什么是Spark 技术架构和软件栈 Spark Core Spark SQL Spark Streaming MLlib GraphX 集群管理器 受 ...
- Spark学习笔记1——第一个Spark程序:单词数统计
Spark学习笔记1--第一个Spark程序:单词数统计 笔记摘抄自 [美] Holden Karau 等著的<Spark快速大数据分析> 添加依赖 通过 Maven 添加 Spark-c ...
- Spark学习笔记之SparkRDD
Spark学习笔记之SparkRDD 一. 基本概念 RDD(resilient distributed datasets)弹性分布式数据集. 来自于两方面 ① 内存集合和外部存储系统 ② ...
- spark学习笔记总结-spark入门资料精化
Spark学习笔记 Spark简介 spark 可以很容易和yarn结合,直接调用HDFS.Hbase上面的数据,和hadoop结合.配置很容易. spark发展迅猛,框架比hadoop更加灵活实用. ...
- Spark学习笔记2(spark所需环境配置
Spark学习笔记2 配置spark所需环境 1.首先先把本地的maven的压缩包解压到本地文件夹中,安装好本地的maven客户端程序,版本没有什么要求 不需要最新版的maven客户端. 解压完成之后 ...
- Spark学习笔记3(IDEA编写scala代码并打包上传集群运行)
Spark学习笔记3 IDEA编写scala代码并打包上传集群运行 我们在IDEA上的maven项目已经搭建完成了,现在可以写一个简单的spark代码并且打成jar包 上传至集群,来检验一下我们的sp ...
- Spark学习笔记-GraphX-1
Spark学习笔记-GraphX-1 标签: SparkGraphGraphX图计算 2014-09-29 13:04 2339人阅读 评论(0) 收藏 举报 分类: Spark(8) 版权声明: ...
- Spark学习笔记2——RDD(上)
目录 Spark学习笔记2--RDD(上) RDD是什么? 例子 创建 RDD 并行化方式 读取外部数据集方式 RDD 操作 转化操作 行动操作 惰性求值 Spark学习笔记2--RDD(上) 笔记摘 ...
随机推荐
- React 学习笔记(一)
React + es6 一.createClass 与 component 的区别 The API (via 'extends React.Component') is similar to Reac ...
- Centos5.8 安装 ImageMagick 6.8.9-3
下载最新的ImageMagick源码包 ImageMagick-6.8.9-3.x86_64.rpm 直接prm -ivh 安装提示错误 error: Failed dependencies: lib ...
- Meet Python: little notes
Source: http://www.liaoxuefeng.com/ ❤ Escape character: '\' - '\n': newline; - '\t': tab; - '\\': \; ...
- C# Tostring 格式化输出字符串全解
C 货币 2.5.ToString("C") ¥2.50 D 十进制数 .ToString("D5") E 科学型 .ToString("E" ...
- BZOJ 1014 【JSOI2008】 火星人prefix
Description 火星人最近研究了一种操作:求一个字串两个后缀的公共前缀.比方说,有这样一个字符串:madamimadam,我们将这个字符串的各个字符予以标号:序号: 1 2 3 4 5 6 7 ...
- JavaScript操作XML
JavaScript操作XML (一) JavaScript操作XML是通过XML DOM来完成的.那么什么是XML DOM呢?XML DOM 是: 用于 XML 的标准对象模型 用于 XML 的标准 ...
- scala 学习笔记(03) 参数缺省值、不定个数参数、类的属性(Property)、泛型初步
继续学习,这一篇主要是通过scala来吐槽java的,同样是jvm上的语言,差距咋就这么大呢? 作为一个有.NET开发经验的程序员,当初刚接触java时,相信很多人对java语言有以下不爽(只列了极小 ...
- 浅谈设计模式--装饰者模式(Decorator Pattern)
挖了设计模式这个坑,得继续填上.继续设计模式之路.这次讨论的模式,是 装饰者模式(Decorator Pattern) 装饰者模式,有时也叫包装者(Wrapper),主要用于静态或动态地为一个特定的对 ...
- Block Chain, a protocol view
我做了个区块链的文档,给自己扫盲用的,有兴趣的可以看下,主要是自己画示意图比较好理解,示意图之后的专题部分,内容直接取自参考链接.网上的资料都是谈区块链有什么性质.有什么能力.有什么应用之类的,我主要 ...
- SQL基础之数据库快照
1.认识快照 如名字一样,数据库快照就可以理解为数据库某一时刻的照片,它记录了此时数据库的数据信息.如果要认识快照的本质,那就要了解快照的工作原理.当我们执行t-sql创建快照后,此时就会创建一个或多 ...