Spark课后实验报告

Spark实验报告

  • 一、兼容问题
  • 二、下载安装Scala和Spark
    • 1、Scala的下载安装
    • 2、Spark的下载安装
  • 三、使用Spark Shell命令编写代码
  • 四、分享参考资料

一、兼容问题

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和Spark

1、Scala的下载安装

Scala官网:https://www.scala-lang.org/download/
传输到Linux中进行安装
解压安装:

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

测试:

scala -version

启动:

scala

2、Spark的下载安装

Spark官网:
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.tar.gz

重命名:

mv spark-2.4.2-bin-hadoop2.7  spark

启动spark:
①先启动hadoop 环境

start-all.sh

②启动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
③启动Spark Shell
此模式用于interactive programming,先进入bin文件夹后运行:spark-shell
SecureCRT 下 spark-shell 下scala> 命令行无法删除,解决办法:
https://blog.csdn.net/nicolewjt/article/details/87368749
④退出Spark Shell

scala> :quit

三、使用Spark Shell命令编写代码

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

四、分享参考资料

Spark学习之路 (五)Spark伪分布式安装
https://www.cnblogs.com/qingyunzong/p/8903714.html#_label4_0

spark1.2.0版本搭建伪分布式环境
https://blog.csdn.net/stark_summer/article/details/43495623

Spark2.1.0入门:第一个Spark应用程序:WordCount
http://dblab.xmu.edu.cn/blog/1311-2/

子雨大数据之Spark入门教程(Scala版)
http://dblab.xmu.edu.cn/blog/spark/#more-924

Spark入门:Spark运行架构
http://dblab.xmu.edu.cn/blog/972-2/

Spark入门:RDD的设计与运行原理
http://dblab.xmu.edu.cn/blog/985-2/

分布式计算归根到底还是一个Map和Reduce操作,Map操作对每个数据块进行计算,Reduce操作对结果进行汇总,现在一些NoSQL分布式数据库其实也是这么一套计算框架,只是map和reduce太基础,太简陋,实现相关的业务时开发比较复杂,不符合生产力发展的需求,这样Spark对map和reduce进行了抽象和封装提出了RDD的概念

RDD的提出是Spark的最大的进步,它让我们不再关注计算本身,以前我们老想着map,reduce啥的,RDD对数据集进行抽象,我们的关注点变成了数据集本身,又借鉴了函数式编程的一些思想,我们可以对数据集做各种各样的操作(spark的transformation和action),Spark框架底层转换了map和reduce的操作,大大的提高了生成力。当然还加入了一些优化,比如map的输出不需要落地,其实要做大数据的计算怎么可能不落地。做大数据的聚集操作时磁盘和网络IO依旧是制约速度的主要原因 https://www.cnblogs.com/gaoxing/p/4916785.html

《深入理解SPARK:核心思想与源码分析》一书对Spark1.2.0版本的源代码进行了全面而深入的分析,旨在为Spark的优化、定制和扩展提供原理性的指导。阿里巴巴集团专家鼎力推荐、阿里巴巴资深Java开发和大数据专家撰写。
本书分为三篇:
准备篇(第1~2章),介绍了Spark的环境搭建、设计理念与基本架构,帮助读者了解一些背景知识。
核心设计篇(第3~7章),着重讲解SparkContext的初始化、存储体系、任务提交与执行、计算引擎及部署模式的原理和源码分析。通过这部分的内容,读者可以通过源码剖析更加深入理解Spark的核心设计与实现,以便在实际使用中能够快速解决线上问题并对性能进行调优。
扩展篇(第8~11章),主要讲解基于Spark核心的各种扩展及应用,包括SQL处理引擎、Hive处理、流式计算框架Spark Streaming、图计算框架GraphX、机器学习库MLlib等内容。通过阅读这部分内容,读者可以扩展实际项目中对Spark的应用场景,让Spark焕发活力。

与 Hadoop 对比,如何看待 Spark 技术?
https://www.zhihu.com/question/26568496/answer/41608400

Spark RDD API(scala)
https://www.cnblogs.com/jinggangshan/p/8116948.html

一文读懂大数据计算框架与平台
http://gngj.gog.cn/system/2017/05/02/015659295.shtml

你可能感兴趣的:(Spark课后实验报告)