1.首先安装scala(找到合适版本的具体地址下载)
在/usr/local/目录下
wget https://www.scala-lang.org/download/****
2.安装spark
(由于我的Hadoop是2.7.6版本的,因此我所用的spark是在官网上的适用hadoop-2以上版本的)
wget http://mirrors.tuna.tsinghua.edu.cn/apache/spark/spark-2.4.3/spark-2.4.3-bin-hadoop2.7.tgz tar -zxvf spark-2.4.3-bin-hadoop2.7.tgz rm spark-2.4.3-bin-hadoop2.7.tgz
3.配置环境变量
vim /etc/profile
4.刷新环境变量
source /etc/profile
5.复制配置文件
cp slaves.template slaves cp spark-env.sh.template spark-env.sh
6.接着进行以下配置
vim /etc/profile(查看其它配置文件直接复制即可) vim ./spark-2.4.3-bin-hadoop2.7/conf vim spark-env.sh
7.启动spark环境
1)先启动Hadoop环境
/usr/local/hadoop-2.7.6/sbin/start-all.sh
2) 启动Spark环境
/usr/local/spark-2.4.3-bin-hadoop2.7/sbin/start-all.sh
8.查看spark的web控制界面
显示端口为7077
9.查看Hadoop的web端界面
10.验证Spark是否安装成功
bin/run-example SparkPi
注意:命令执行后出现一大堆东西,只需要从中找到下面这个图中的东西,就说明安装成功。
bin/run-example SparkPi 2>&1 | grep "Pi is"
11.使用Spark Shell编写代码
1)启动Spark Shell
bin/spark-shell
2)加载text文件
spark创建sc,可以加载本地文件和HDFS文件创建RDD。这里用Spark自带的本地文件README.md文件测试。
scala>val textFile=sc.textFile("file:///usr/local/spark-2.4.3-bin-hadoop2.7/README.md")
加载HDFS文件和本地文件都是使用textFile,区别是添加前缀(hdfs://和file://)进行标识。
3)简单RDD操作
scala> textFile.first() // 获取RDD文件textFile的第一行内容 scala> textFile.count() // 获取RDD文件textFile的所有项的计数
scala> val lineWithSpark=textFile.filter(line=>line.contains("Spark"))// 抽取含有“Spark”的行,返回一个新的RDD
scala> lineWithSpark.count() //统计新的RDD的行数
4)可以通过组合RDD操作进行组合,可以实现简易MapReduce操作
scala> textFile.map(line=>line.split(" ").size).reduce((a,b)=>if(a>b) a else b) //找出文本中每行的最多单词数
5)退出Spark shell
:quit