Spark
------------------------------------------------
1.Lighting-fast cluster computing 快如闪电的计算
2.大规模快速通用的计算引擎
3.spark在内存中计算的速度是hadoop的百倍;在磁盘中计算是MapperReduce的10倍
4.DAG: //direct acycle graph,有向无环图
5.易于使用:java /Scala/python 提供了80+算子(操作符),容易构建并行应用 并行:集群计算+并行计算 并发:并发执行
6.通用:组合SQL,流计算
7.运行:hadoop
Spark模块
--------------------------------------
Spark core
Spark SQL
Spark Streaming 流计算
Spark MLlib 机器学习
Spark graph 图计算
到处运行
------------------------------------
体验spark
---------------------------------------
0.sc
SparkContext,Spark程序的入口点,封装了整个spark运行环境的信息
1.进入spark-shell
$>spark-shell
2.API
---------------------------------------
(1) SparkContext:Spark程序的入口点,封装了整个spark运行环境的信息
Spark功能的主要入口点,代表到spark集群的链接,可以创建RDD弹性分布式数据集、累加器和广播变量
每个JVM只能激活一个sparkContext对象,在创建新的sc之间,有stop掉active的sc
SparkConf:spark配置对象,设置Spark应用的各种参数,kv对的形式
(2)[RDD] resilient distributed databaset弹性分布式数据集,等价于集合
3.spark实现wor count
---------------------------------------
//加载文件
val rdd1 = sc.textFile("/home/centos/test.txt")
val rdd2 = rdd1.flatMap(line=>line.split(" "))
val rdd3 = rdd2.map(word=>(word,1))
val rdd4 = rdd3.reduceByKey(_ + _)
一行搞定单词统计:sc.textFile("/home/centos/test.txt").flatMap(_.split(" ")).map((_,1)).reduceByKey(_ + _).collect
单词过滤:sc.textFile("/home/centos/test.txt").flatMap(_.split(" ")).filter(_.contains("wor")).map((_,1)).reduceByKey(_ + _).collect
4.编写scala程序,引入spark类库,完成wordCount
-------------------------------------------------------------------------------------
(1)创建scala模块