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
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
查看安装版本 Java -version
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
解压安装文件,这里是有tar工具解压
tar -xf spark-2.4.1-bin-hadoop2.7.tgz
移动
配置参数和环境变量
sudo mv spark-2.4.1-bin-hadoop2.7 /usr/lib/spark
修改文件夹目录,方便配置环境变量,后期使用,以后可以选择和Hadoop集成。这里我们先使用单节点模式。暂时不做扩展。
5、启动Spark
我们可以启动一个终端,输入启动命令,来启动Spark进程,单独一个服务进程。
$SPARK_HOME/sbin/start-master.sh
后续我们可以用来搭建集群模式。当然也可以对接Hadoop存储系统。
6、测试Spark Shell
Spark的shell提供了一种学习API的简单方法,可以以交互方式分析数据,这个就是个客户的命令窗口,但是是个强大的工具。 它可以在Scala(在Java VM上运行,因此是使用现有Java库的好方法)或Python中使用。 通过在Spark目录中运行以下命令来启动它:
可以打开终端进行测试,输入 spark-shell: 客户的命令
$SPARK_HOME/bin/spark-shell
如果正常出现下面的提示信息,表示已经成功安装Spark。
这里使用可以使用Scala语言,也是基于Java JVM的一种语言。
Spark分析引擎的主要抽象是一个名为Dataset的分布式项目集合。我们 可以从Hadoop InputFormats(例如HDFS文件)或通过转换其他数据集来创建数据集,比如读取MySQL数据库或者MongoDB数据库的数据进行分析。 现在我们从Spark安装目录下的README文件的文本创建一个新的数据集,并且编写一顿代码统计字符单词的数量,代码比较简单,做例子参考。
val textFile = spark.read.textFile("README.md")
textFile.count()
这里能看到结果是105个。
对于官方的单词统计的例子word-count示例,我们将从参数--master local [8]开始,这表示spark shell的上下文启动8个线程在本地节点上作为master节点。
spark-shell --master local[8]
println("Hello Spark")
7、Spark管理界面
可以使用浏览器打开管理界面: http://10.0.0.48:4040。IP地址可以换成本机的IP或者域名。
可以看到我们Job,以及执行的时间,任务状态信息等。
后续集群模式,我们也可以使用这个页面来管理集群,默认看到的应该是空的,集群没有搭建完成,后续再学学集群的搭建,以及Hadoop其他组件的集成实战。
参考资料:
http://spark.apache.org/
https://en.wikipedia.org/wiki/Apache_Spark
阿里巴巴Java群超过4800人
进群方式:钉钉扫码入群
阿里巴巴MongoDB群