本章在本机模式下单机运行。
Spark本身是Scala写的,运行在JAVA虚拟机(JVM)上,支持Scala、Python、JAVA接口。
1. 下载Spark
spark.apache.org 官网直接下载。
spark支持本地模式,也就是非分布式,还支持运行在mesos,yarn上也可以运行在Spark自带的独立调度器上。
2. Spark中Python和Scala的SHELL
# 打开spark-shell,在bin目录下
./spark-shell
# 修改日志级别, /conf/log4j.properties,将INFO改为WARN,只显示警告及更严重的日志信息
log4j.rootCategory=INFO, console
log4j.rootCategory=WARN, console
// scala行数统计
val lines = sc.textFile("../README.md") // 创建一个名为lines的RDD
lines.count() // 统计RDD中元素个数
lines.first() // 提取RDD中的第一个元素
sc // 查看变量sc
ctrl+D 或者 :q 退出SHELL
3. Spark核心概念简介
每个Spark应用都由一个驱动器程序(driver program)来发起集群上的各种并行操作。驱动器程序包含应用的main函数,并且定义了集群上的分布式数据集,还对数据集应用了相关操作。上述例子中实际的驱动器程序就是spark-shell本身。
驱动器程序通过一个SparkContext对象来访问Spark。这个对象代表对计算集群的一个连接。spark-shell启动时自动创建一个SparkContext对象(sc)。
通过sc来创建RDD。在RDD上就可以进行各种操作。
// 筛选出含有 Python 字符串的行
val pythonLines = lines.filter(line => line.contains("Python"))
pythonLines.first()