2.1Spark下载与安装
JDK的安装
JDK的版本最好是1.8以上,使用的是ubuntu系统
安装源
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
安装jdksudo apt-get install oracle-java8-installersudo update-java-alternatives -s java-8-oracle测试
java -version
javac -version
注:JDK的默认安装目录为:JAVA_HOME="/usr/lib/jvm/java-8-oracle"Spark的安装
spark的下载网址是:http://spark.apache.org/downloads.html
选择需要的版本下载,最好下载预编译版(prebuilt)
对spark进行解压,即完成了安装。
减少日志信息输出,每次打开spark会输出一大堆提醒信息,为了减少输出,降低安全等级
进入conf文件夹复制log4j.properties.template副本到conf目录
并改名log4j.properties
打开log4j.properties修改log4j.rootCategory=INFO, console为log4j.rootCategory=WARN, consoleSpark的打开
ipython_notebook打开spark
进入spark目录,在终端输入PYSPARK_DRIVER_PYTHON=ipython PYSPARK_DRIVER_PYTHON_OPTS='notebook' ./bin/pysparkpython打开spark
进入spark目录终端输入bin/pyspark直接打开Spark_shell
进入spark目录终端输入./bin/spark_shell
Spark的简单应用
RDD 是 Spark 对分布式数据和计算的基本抽象,也就是说Spark中的数据类型就是RDD
统计行数
scala> val lines = sc.textFile("README.md") // 创建一个名为lines的RDD
lines: spark.RDD[String] = MappedRDD[...]
scala> lines.count() // 统计RDD中的元素个数
res0: Long = 127
scala> lines.first() // 这个RDD中的第一个元素,也就是README.md的第一行
res1: String = # Apache Spark
一个独立应用:单词统计
Spark中程序的执行需要多个节点共同完成,,其中包含一个驱动器和多个执行器,驱动器程序一般要管理多个执行器(executor)节点
初始化 SparkContextimport org.apache.spark.SparkConfimport org.apache.spark.SparkContext展示了创建 SparkContext 的最基本的方法,你只需传递两个参数:
import org.apache.spark.SparkContext._
val conf = new SparkConf().setMaster("local").setAppName("wordCount")
val sc = new SparkContext(conf)
• 集群 URL:告诉 Spark 如何连接到集群上。在这几个例子中我们使用的是 local,这个
特殊值可以让 Spark 运行在单机单线程上而无需连接到集群。
• 应用名:在例子中我们使用的是 My App。当连接到一个集群时,这个值可以帮助你在
集群管理器的用户界面中找到你的应用。// 读取我们的输入数据val input = sc.textFile(inputFile)
// 把它切分成一个个单词
val words = input.flatMap(line => line.split(" "))
// 转换为键值对并计数
val counts = words.map(word => (word, 1)).reduceByKey{case (x, y) => x + y}
// 将统计出来的单词总数存入一个文本文件,引发求值
counts.saveAsTextFile(outputFile)