今天正式开始学习Spark。
从Sparkg官网下载1.5.2版本,然后解压到本地一个目录。
我的机器环境:
系统:DELL笔记本,windows 7 64 bit,4核CPU,8G内存,256M闪存硬盘。
JVM: JDK 1.8.0_65
Scala: 2.10.2
我下载的是Spark with hadoop 2.6 版本,但是容易误导人的是,Spark并不自带Hadoop客户端的DLL。
Spark并不依赖于Hadoop,但是因为Spark可以无缝的集成Hadoop的HDFS和YARN,因此如果要在windows上使用HDFS和YARN,那么需要将Hadoop 客户端的DLL拷贝到%PATH%路径中。在Windows平台上,这意味着,你需要自己手工编译Hadoop。
操作一:跑Spark的run-example脚本:
C:\toolkit\spark-1.5.2-bin-hadoop2.6>.\bin\run-example SparkPi 10
操作二:打开Spark提供的交互式Shell:
C:\toolkit\spark-1.5.2-bin-hadoop2.6>bin\spark-shell --master local[2]
–master 参数用来指定集群里master的地址。如果等于local[N], 那就使用本地线程模拟。一般local[N]用于本地测试。
使用这个交互式Shell可以帮助你探索Spark的使用。
SQL context available as sqlContext.
scala> val textFile = sc.textFile("README.md")
textFile: org.apache.spark.rdd.RDD[String] = MapPartitionsRDD[1] at textFile at <console>:21
scala> textFile.count()
res0: Long = 98
scala> textFile.first
res1: String = # Apache Spark
scala> val linesWithSpark = textFile.filter(line => line.contains("Spark"))
linesWithSpark: org.apache.spark.rdd.RDD[String] = MapPartitionsRDD[2] at filter at <console>:23
scala> linesWithSpark.collect
res2: Array[String] = Array(...)
scala>
操作三:使用spark-submit提交一个作业:
C:\toolkit\spark-1.5.2-bin-hadoop2.6\bin>spark-submit --class org.apache.spark.examples.LocalPi --master local[4] ..\lib\spark-examples-1.5.2-hadoop2.6.0.jar
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
Pi is roughly 3.13252