实验七 安装配置Scala和Spark

    xiaoxiao2022-07-07  186

    实验任务:

    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是否安装成功

    三、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实现的统计分析应用程序代码,如下所示:

    最新回复(0)