暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Spark大数据计算引擎的介绍与安装

小甜菜Pro 2023-02-06
544

Spark是一种专为大规模数据处理而设计的基于内存的快速、通用、可扩展的大数据计算引擎,适用于各种原先需要多种不同的分布式平台的场景,包括批处理,迭代算法,交互式查询,流处理。它弥补了MapReduce程序的不足,每次计算产生的中间结果并不是从磁盘中读写,而是先将磁盘中的数据读取到内存中,然后产生的中间结果数据不再写入磁盘,最后直接在内存中进行迭代处理,这样可以避免从磁盘中频繁读写数据造成的不必要开销。
目前,Spark生态系统已经发展成为一个可应用于大规模数据处理的统一分析引擎,它是基于内存计算的大数据并行计算框架,适用于各种各样的分布式平台系统,这个生态系统主要包括Spark Core(核心组件)、Spark SQL(结构化数据)、Spark Streaming(实时计算)、MLlib(机器学习库)和GraphX(图计算)等组件。

Spark Core是整个Spark的基础,它提供了分布式任务调度和基本的I/O功能,从以上图中不难看出Spark Core是Spark SQL、Spark Streaming、MLlib和GraphX的基础。在Spark Core中包含了对弹性分布式数据集RDD(Resilient Distributed Datasets)的 API定义,RDD是只读的分区记录的集合,只能基于在稳定物理存储中的数据集和其他已有的 RDD上执行确定性操作来创建。
Spark SQL可以使用熟知的SQL查询语言来运行数据分析,在处理结构化数据时,开发人员无须编写MapReduce程序,直接使用SQL命令就能完成更加复杂的数据查询操作。并且Spark SQL的重要特点是能够统一处理关系表和RDD。
Spark Streaming可以实现实时的数据串流处理,具有大数据量、容错性、可扩充性等特点。它的核心原理是将流数据分解成一系列短小的批处理作业,每个短小的批处理作业都可以使用Spark Core进行快速处理。
MLlib是一个可扩充的Spark机器学习库,可以使用许多常见的机器学习算法,简化大规模机器学习的时间,其算法包括分类、回归、聚类、协同过滤算法等。
GraphX是Spark提供的分布式图处理框架,拥有图计算和图挖掘算法的API接口以及丰富的功能和运算符,极大地方便了对分布式图的处理需求,能在海量数据上运行复杂的图算法。
Spark部署模式分为Local模式(本地单机运行模式)、Standalone模式、Yarn模式和Mesos模式。
Standalone模式是集群单机模式,它有完整的资源调度管理服务,无须依赖其他任何的资源管理系统,可以独立部署到一个集群中。在该模式下,集群架构为主从模式,存在一台Master节点和多台Slave节点,但该模式的资源调度管理功能不如其他单独的资源管理系统性能强大。
Yarn模式被称为Spark on Yarn模式,即把Spark作为一个客户端,将作业提交给Yarn服务,由于在生产环境中,很多时候都要与Hadoop使用同一个集群,因此采用Yarn来管理资源调度,可以有效提高资源利用率。
Mesos模式被称为Spark on Mesos模式,Mesos也是一款和Yarn类似的资源调度管理系统,可以为运行在它上面的Spark提供服务。由于Mesos和Spark存在一定的血缘关系,因此,Spark在进行设计开发的时候,就充分考虑到了对Mesos的支持。
在实际生产环境中通常要同时运行Hadoop和Spark,从兼容性的角度上看,Yarn模式是更好的选择,因此下面介绍如何安装Spark On Yarn模式。演示使用三台主机,其主机名依次为master、slave1和slave2,并且全部使用root用户,同时已经安装完成Hadoop集群(若没有安装Hadoop集群,请查看本公众号中的搭建Hadoop3.x分布式集群
文章,或者在公众号后台回复20230116
获取该图文)。演示所使用的Spark版本为3.3.1,Hadoop版本为3.3.4。
1、下载Spark。打开官网https://spark.apache.org
并按照以下图示进行下载。

2、将下载好的安装包上传至master
主机中/root/download
路径下。

3、tar -zxvf root/download/spark-3.3.1-bin-hadoop3.tgz -C usr/local
命令解压安装包。

4、mv usr/local/spark-3.3.1-bin-hadoop3 usr/local/spark
命令重命名默认文件夹。

5、vim root/.bashrc
修改系统环境变量,在文件最后添加以下代码。

export SPARK_HOME=/usr/local/spark
export PATH=$PATH:$SPARK_HOME/bin

使用:wq
保存并退出,同时使用source root/.bashrc
命令让环境变量立即生效。

6、cp usr/local/spark/conf/spark-env.sh.template /usr/local/spark/conf/spark-env.sh
命令拷贝配置文件。

7、vim /usr/local/spark/conf/spark-env.sh
命令修改配置文件,在文件末尾添加以下代码,这里会涉及到Hadoop的安装路径,这里要根据实际情况进行调整。

export HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop
export YARN_CONF_DIR=/usr/local/hadoop/etc/hadoop
export LD_LIBRARY_PATH=/usr/local/hadoop/lib/native

8、$HADOOP_HOME/bin/hadoop fs -mkdir -p /tmp/spark-yarn
命令在HDFS上创建/tmp/spark-yarn
路径。

9、$HADOOP_HOME/bin/hadoop fs -put /usr/local/spark/jars/* /tmp/spark-yarn
命令将jar包上传至刚创建好的路径中。

10、cp /usr/local/spark/conf/spark-defaults.conf.template /usr/local/spark/conf/spark-defaults.conf
命令拷贝默认配置文件。

11、vim /usr/local/spark/conf/spark-defaults.conf
命令修改配置文件,在文件末尾添加spark.yarn.jars
参数。

spark.yarn.jars=hdfs:///tmp/spark-yarn/*.jar

使用:wq
保存并退出。

到这里Spark On Yarn模式就安装完成了,以上步骤8至步骤11是为了设置spark.yarn.jars
参数,若不进行设置也是可以运行的,但是会出现Client: Neither spark.yarn.jars nor spark.yarn.archive is set, falling back to uploading libraries under SPARK_HOME.
警告信息,建议进行设置。接下来可以执行以下命令测试是否成功安装。
$SPARK_HOME/bin/spark-submit \
--master yarn \
--deploy-mode client \
--class org.apache.spark.examples.SparkPi /usr/local/spark/examples/jars/spark-examples_2.12-3.3.1.jar 20

--master yarn
用来指定将任务提交到yarn中去执行;--deploy-mode client
指定为本地客户端模式,在本地启动driver,并且本地会产生一个程序的客户端;--class org.apache.spark.examples.SparkPi /usr/local/spark/examples/jars/spark-examples_2.12-3.3.1.jar 20
用来指定应用程序的主类即入口类。以上命令实现的功能是粗略求出圆周率的值,运行结果如下图所示。

本文介绍了Spark大数据计算引擎的入门常识和如何安装Spark On Yarn模式,以上就是本期分享的全部内容,想要获取本文中的安装包可以在公众号后台回复20230206
,若各位小伙伴有什么不懂的问题请在后台留言,感谢观看!

文章转载自小甜菜Pro,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论