Apache Spark是自由开源的分布式内存计算平台,目前已经成为 Apache 基金会的顶级项目。该平台可以快速、多计算范式、可靠地处理海量数据,除了基本批处理型外,还支持流计算、图计算、SQL分析和机器学习。
Mesos:类似于YARN的功能
- 转换Transformation
- 输出Action
程序示例:
val file = sc.textFile("hdfs://xxx") val errors = file.filter(line=>line.contains("ERROR")) errors.count()
相当于分布式数组,即Spark语言的数据结构
属性:
1) partition (A list of partitions)
2) compute (A function for computing each split)
3) dependencies (A list of dependencies on other RDDs)
4) partitioner
5) preferredLocations (Optionally, a list of perferred locations to compute each split on (e.g. block locations for an HDFS file)
(1) map(func):对调用map的RDD数据集中的每个element都使用func, 然后返回一个新的RDD,这个返回的数据集是分布式的数据集
(2) filter(func):对调用filter的RDD数据集中的每个元素都使用func,然后返回一个包含使用func为true的元素构成的RDD
(3) reduceByKey(func, [numTasks]):就是用一个给定的reduce func再作用在groupByKey产生的(K,Seq[V]), 如求和、求平均数
(1) reduce(func):就是执行聚集,但是传入的函数是两个参数输入,一个返回值,这个函数必须满足交换律和结合律
(2) collect():一般在filter产生足够小的结果时,再用collect封装返回一个数组
(3) count():返回的是dataset中的element的个数
(4) first():返回的是dataset中的第一个元素
(5) take(n):返回前n个elements,这个是driver program返回的