一、前提
- 安装Hadoop2.6.0以上;
- 安装JAVA JDK 1.7以上。
二、下载Spark
官方网站:http://spark.apache.org/downloads.html
1. 选择版本:Spark 1.6.2
2. 选择包类型:Pre-build with user-provided Hadoop [can use with most Hadoop distributions]
3. 选择下载类型:Select Apache Mirror
4. 下载Spark:点击接下来的链接,即可下载
三、安装Spark
假设Spark下载到当前用户的HOME目录下。
# 解压缩
sudo tar -zxf spark-1.6.2-bin-without-hadoop -C /usr/local/
cd /usr/local
sudo mv ./spark-1.6.2-bin-without-hadoop/ ./spark
# 修改权限
sudo chown -R hadoop:hadoop ./spark
配置Spark,修改配置文件spark-env.sh。
cd /usr/local/spark/conf
cp spark-env.sh.template spark-env.sh
vim spark-env.sh
添加配置信息。
export SPARK_DIST_CLASSPATH=$(/usr/local/hadoop/bin/hadoop classpath)
配置完成,无需Hadoop那样运行启动命令,可直接使用。使用示例程序,验证Spark是否安装成功。
cd /usr/local/spark
bin/run-example SparkPi
# 2>&1,将所有信息都输出到stdout中
bin/run-example SparkPi 2>&1 | grep "Pi is"
示例程序结果:
hadoop@ubuntu:/usr/local/spark$ bin/run-example SparkPi 2>&1 | grep "Pi is"
Pi is roughly 3.14576
四、使用Spark Shell编写代码
- 启动Spark Shell,会自动创建为sc的spark context对象和名为sqlContext的sql context对象。
cd /usr/local/spark
bin/spark-shell
运行spark shell后结果:
......
16/09/14 05:18:32 INFO repl.SparkILoop: Created spark context..
Spark context available as sc.
16/09/14 05:18:33 INFO repl.SparkILoop: Created sql context..
SQL context available as sqlContext.
scala>
- 加载text文件,spark创建sc,可加载本地文件和HDFS文件创建RDD。
scala> val textFile = sc.textFile("file:///usr/local/spark/README.md")
- 简单的RDD操作
# 获取RDD文件textFile的第一行内容
scala> textFile.first()
# 获取RDD文件textFile所有项的计数
scala> textFile.count()
# 抽取含有"Spark"的行,返回一个新的RDD
scala> val lineWithSpark = textFile.filter(line => line.contains("Spark"))
# 统计新的RDD的行数
scala> lineWithSpark.count()
# 通过组合RDD操作,实现简易MapReduce操作
scala> textFile.map(line => line</