Spark是一个开源的高性能大数据分析引擎,在Hadoop生态系统中非常的重要组成部分,主要的作用就是分析处理大数据,Spark在大数据生态中的作用是替代之前的mapreduce引擎。Spark的性能测试表名将大数据分析处理的性能提高了100倍。Apache Spark使用最先进的DAG调度程序,查询优化器和物理执行引擎,实现批处理和流数据的高性能分析处理。

Spark可以使用Java,Scala,Python,R和SQL快速编写大数据应用程序。Spark提供80多个高级操作符,可以轻松构建并行应用程序。这也是我们为什么要学习Spark的原因。

1、大数据分析引擎Spark介绍

Apache Spark是高性能开源大数据分析引擎。 它提供Java,Scala,Python和R中的高级API,以及支持通用执行图的优化引擎。 它还支持一组丰富的高级工具,包括用于SQL和结构化数据处理的Spark SQL,用于机器学习的MLlib,用于图形处理的GraphX和Spark Streaming。

Apache Spark是一个开源的分布式通用集群计算框架。最初由加州大学伯克利分校的AMPLab开发,Spark代码库后来被捐赠给Apache软件基金会,该基金会从那时起就一直在维护它.Spark提供了一个接口,用于使用隐式数据并行和容错来编程整个集群。

官方网站;http://spark.apache.org

基于Spark的商品推荐大数据分析系统_spark


2、Spark版本

最新的版本,2.4,可以下载最新的版本进行安装。

Version Original release date Latest version Release date

0.5 2012-06-12 0.5.1 2012-10-07

0.6 2012-10-14 0.6.2 2013-02-07[36]

0.7 2013-02-27 0.7.3 2013-07-16

0.8 2013-09-25 0.8.1 2013-12-19

0.9 2014-02-02 0.9.2 2014-07-23

1.0 2014-05-26 1.0.2 2014-08-05

1.1 2014-09-11 1.1.1 2014-11-26

1.2 2014-12-18 1.2.2 2015-04-17

1.3 2015-03-13 1.3.1 2015-04-17

1.4 2015-06-11 1.4.1 2015-07-15

1.5 2015-09-09 1.5.2 2015-11-09

1.6 2016-01-04 1.6.3 2016-11-07

2.0 2016-07-26 2.0.2 2016-11-14

2.1 2016-12-28 2.1.3 2018-06-26

2.2 2017-07-11 2.2.3 2019-01-11

2.3 2018-02-28 2.3.3 2019-02-15

2.4 2018-11-02 2.4.0 2018-11-02

2.4 2019-03-31 2.4.1 2019-03-31

https://spark.apache.org/downloads.html

3、安装Java

安装开源的JDK8,免费,不会引起收费问题。

sudo apt install default-jdk

基于Spark的商品推荐大数据分析系统_大数据_02


查看安装版本 Java -version

基于Spark的商品推荐大数据分析系统_基于Spark的商品推荐大数据分析系统_03


4、安装Spark

我们选择下载最新的spark-2.4.1,这里先安装单节点,独立模式。

wget https://mirrors.tuna.tsinghua.edu.cn/apache/spark/spark-2.4.1/spark-2.4.1-bin-hadoop2.7.tgz

基于Spark的商品推荐大数据分析系统_scala_04


解压安装文件,这里是有tar工具解压

tar -xf spark-2.4.1-bin-hadoop2.7.tgz

移动
配置参数和环境变量

sudo mv spark-2.4.1-bin-hadoop2.7 /usr/lib/spark

基于Spark的商品推荐大数据分析系统_spark_05


修改文件夹目录,方便配置环境变量,后期使用,以后可以选择和Hadoop集成。这里我们先使用单节点模式。暂时不做扩展。

5、启动Spark
我们可以启动一个终端,输入启动命令,来启动Spark进程,单独一个服务进程。

$SPARK_HOME/sbin/start-master.sh

基于Spark的商品推荐大数据分析系统_java_06


后续我们可以用来搭建集群模式。当然也可以对接Hadoop存储系统。

6、测试Spark Shell

Spark的shell提供了一种学习API的简单方法,可以以交互方式分析数据,这个就是个客户的命令窗口,但是是个强大的工具。 它可以在Scala(在Java VM上运行,因此是使用现有Java库的好方法)或Python中使用。 通过在Spark目录中运行以下命令来启动它:

可以打开终端进行测试,输入 spark-shell: 客户的命令

$SPARK_HOME/bin/spark-shell

如果正常出现下面的提示信息,表示已经成功安装Spark。

基于Spark的商品推荐大数据分析系统_大数据_07


这里使用可以使用Scala语言,也是基于Java JVM的一种语言。

Spark分析引擎的主要抽象是一个名为Dataset的分布式项目集合。我们 可以从Hadoop InputFormats(例如HDFS文件)或通过转换其他数据集来创建数据集,比如读取MySQL数据库或者MongoDB数据库的数据进行分析。 现在我们从Spark安装目录下的README文件的文本创建一个新的数据集,并且编写一顿代码统计字符单词的数量,代码比较简单,做例子参考。

val textFile = spark.read.textFile("README.md")
textFile.count()

基于Spark的商品推荐大数据分析系统_spark_08


这里能看到结果是105个。

对于官方的单词统计的例子word-count示例,我们将从参数--master local [8]开始,这表示spark shell的上下文启动8个线程在本地节点上作为master节点。

spark-shell --master local[8]
println("Hello Spark")

基于Spark的商品推荐大数据分析系统_spark_09


7、Spark管理界面

可以使用浏览器打开管理界面: http://10.0.0.48:4040。IP地址可以换成本机的IP或者域名。

基于Spark的商品推荐大数据分析系统_spark_10


可以看到我们Job,以及执行的时间,任务状态信息等。