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(上) 笔记摘 ...
随机推荐
- 基于jquery的tips悬浮消息提示插件tipso
<a href="javascript:;" class="disabled" data-tipso="Tips" id=" ...
- HTML 学习笔记 CSS(选择器)
CSS元素选择器 最常见的CSS 选择器就是元素选择器 换句话说 文档的元素就是最基本的选择器 如果设置HTML样式 选择器通常就是某个HTML元素 比如p h1 em a 甚至可以是HTML本身 h ...
- JavaScript 运算符
JavaScript 运算符 JavaScript 运算符用于赋值,比较值,执行算术运算等. JavaScript 算术运算符 算术运算符用于执行两个变量或值的运算. 赋值 y = 5, 以下表格将向 ...
- 获取assemblies信息in .net core
using System; using System.Linq; using System.Reflection; using System.Runtime.Loader; using Microso ...
- MySQL导入sql脚本错误:2006 - MySQL server has gone away
到如一些小脚本很少报错,但最近导入一个10+M的SQL脚本,却重复报错: Error occured at:2014-03-24 11:42:24 Line no.:85 Error Code: 20 ...
- page-cache层
pagecache层内存管理 如果使用page,尤其对于32位系统来说,kmap & kunmap,可以把做struct *page与虚拟地址的映射 用kmap做一个临时的映射,然后通过kun ...
- [转]Class 'Think\Log' not found
转自:http://www.thinkphp.cn/topic/26815.html 解决偶尔出现 Class 'Think\Log' not found 的奇葩问题(并非每次必现,偶尔删除缓存可以解 ...
- Incorrect string value异常解决
mysql数据库的一个问题 1366-Incorrect string value:'\xE5\x8D\xA1\xE5......' for column 'filename' at row 1 问题 ...
- js时间倒计时
看了网上的其他的例子,觉得写的都有点复杂,不好理解,于是自己动手写了个. 本来想封装成jquery插件,但是觉得因为功能很简单,没有必要做成jquery插件,引用的时候不需要引入jqery库,这里直接 ...
- [C语言]一个很实用的服务端和客户端进行UDP通信的实例
前段时间发了个TCP通信的例子,现在再来一个UDP通信的例子.这些可以作为样本程序,用到开发中.“裸写”socket老是记不住步骤,经常被鄙视…… 下面的例子很简单,写一个UDP的server用于收包 ...