实验七 安装配置Scala和Spark

实验任务:

1、安装Spark
2、使用Spark Shell
读取本地文件
读取HDFS文件
编写wordcount程序
3、用Scala编写Spark应用程序
4、用Java编写Spark应用程序

一、Spark与Scala版本兼容问题:

Spark运行在Java 8 +,Python 2.7 + / 3.4 +和R 3.1+上。对于Scala API,Spark 2.4.2使用Scala 2.12。您需要使用兼容的Scala版本(2.12.x)。
请注意,自Spark 2.2.0起,对2.6.5之前的Java 7,Python 2.6和旧Hadoop版本的支持已被删除。自2.3.0起,对Scala 2.10的支持被删除。自Spark 2.4.1起,对Scala 2.11的支持已被弃用,将在Spark 3.0中删除。
https://spark.apache.org/docs/latest/index.html

二、Scala 安装

2.1 官网下载安装Scala:scala-2.12.8.tgz

https://www.scala-lang.org/download/

为保持统一,我们将安装的程序都放在/usr目录下,在/usr目录下创建Scala文件夹
在这里插入图片描述

2.2 解压

tar -zxvf scala-2.12.8.tgz -C /opt/module
mv scala-2.12.8 scala

2.3 在/etc/profile中添加scala环境变量

在这里插入图片描述
使修改的内容立刻生效:
在这里插入图片描述

2.4测试Scala是否安装成功

在这里插入图片描述
Scala运行测试

三、Spark安装

spark的安装和hadoop有些相近,添加环境变量,修改配置文件。

3.1 官网下载安装Spark:spark-2.4.2-bin-hadoop2.7.tgz

https://www.apache.org/dyn/closer.lua/spark/spark-2.4.2/spark-2.4.2-bin-hadoop2.7.tgz

我的程序放置路径为:
在这里插入图片描述
解压、重命名

tar zxvf spark-2.4.2-bin-hadoop2.7.tgz

3.2 添加环境变量

在/etc/profile中添加spark环境变量,如下:
在这里插入图片描述
修改立刻生效
在这里插入图片描述

3.3 修改配置文件

配置文件在spark-2.4.2-bin-hadoop2.6/conf 文件夹下,因此进入文件配置

3.3.1 修改spark-env.sh

conf文件下只有spark-env.sh.template,因此我们copy一份
在这里插入图片描述
该文件中是一个模板文件里面有没有配置,我们再其中添加java,Scala,hadoop,spark的环境变量,以使其能够正常到运行,具体添加内容为:

export JAVA_HOME=/usr/java/jdk1.8.0_91
export SCALA_HOME=/usr/scala/scala-2.12.8
export SPARK_MASTER=192.168.56.112
export SPARK_WORKER_MEMORY=1g
export HADOOP_HOME=/home/hadoop/package/hadoop-2.7.2/etc/hadoop

3.3.2 修改slaves

操作步骤同上,
在这里插入图片描述
添加以下内容:
在这里插入图片描述

至此所有安装都已完成,剩下的就是用同样的方法去配置另外的机器,由于其他机器是clone出来的,所以路径都一样,直接将 配置好的spark文件夹和/usr/scala 文件夹和环境变量文件/etc/profile,copy到其他机器即可。

四、 测试spark集群

4.1启动spark

4.1.1先启动hadoop 环境

start-all.sh

4.1.2 启动spark环境

进入到SPARK_HOME/sbin下运行start-all.sh
/opt/module/spark/sbin/start-all.sh
[注] 如果使用start-all.sh时候会重复启动hadoop配置,需要./在当前工作目录下执行命令
jps 观察进程 多出 worker 和 mater 两个进程。
查看spark的web控制页面:http://bigdata128:8080/
显示spark的端口是7070

4.1.3启动Spark Shell

此模式用于interactive programming,先进入bin文件夹后运行:spark-shell
SecureCRT 下 spark-shell 下scala> 命令行无法删除,解决办法:
https://blog.csdn.net/nicolewjt/article/details/87368749

4.1.4退出Spark Shell

scala> :quit

如果不出问题的话,此时你的spark集群已经成功启动,查看集群情况,

http://192.168.56.112:8080/ // ip换成你自己的master地址

会出现一下界面,
在这里插入图片描述

五、使用Spark Shell编写代码

读取本地文件
在这里插入图片描述
显示第一行内容
在这里插入图片描述
读取HDFS文件
在这里插入图片描述
对上述hdfs根目录下f1.txt文件进行词频统计
在这里插入图片描述
查看结果
在这里插入图片描述

五、用Scala语言编写Spark独立应用程序
Spark2.1.0入门:第一个Spark应用程序:WordCount

六、用Java语言编写Spark独立应用程序

Java实现Spark应用程序(Application)
我们实现的统计分析程序,有如下几个功能点:
从HDFS读取日志数据文件
将每行的第一个字段(IP地址)抽取出来
统计每个IP地址出现的次数
根据每个IP地址出现的次数进行一个降序排序
根据IP地址,调用GeoIP库获取IP所属国家
打印输出结果,每行的格式:[国家代码] IP地址 频率

下面,看我们使用Java实现的统计分析应用程序代码,如下所示:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Zgy_Csm/article/details/90453612