• 云计算与大数据——Spark的安装和配置


    大数据与云计算——Spark的安装和配置

    Spark的简单介绍:

    Apache Spark是一个基于内存的分布式计算框架,它提供了高效、强大的数据处理和分析能力。与传统的Hadoop MapReduce相比,Spark的主要优势在于其能够将数据集缓存在内存中,从而大大减少了磁盘I/O操作,提高了数据处理速度。

    Spark提供了多种编程接口,包括Scala、Java、Python和R等,同时还提供了交互式Shell,易于使用和快速调试。Spark的核心是分布式的RDD(Resilient Distributed Datasets),它对数据进行了抽象和封装,方便了数据的处理和管理。

    Spark还可与多种数据存储系统集成,包括Hadoop HDFS、Apache Cassandra、Amazon S3等。同时,Spark还提供了多种高级库和工具,如Spark SQL、Spark Streaming、MLlib等,方便进行数据查询、流式处理和机器学习等任务。

    总之,Spark已经成为了目前最受欢迎的大数据计算框架之一,广泛应用于数据处理、机器学习、实时数据处理等领域。
    在这里插入图片描述

    安装和配置

    在安装和配置Spark之前,要确保Hadoop 已经成功安装,并正常启动。没有部署好hadoop的可以查看之前的文章。
    云计算与大数据——部署Hadoop集群并运行MapReduce集群(超级详细!)

    Spark安装在 HadoopMaster节点上。下面的所有操作都在HadoopMaster节点上进行。
    1)解压并安装Spark
    本文章所需要的spark安装包已上传到个人博客主页→资源处,有需要的小伙伴可以自行下载。
    tar -zxvf spark-3.3.0-bin-hadoop3.3.2.tgz安装包

    也可以在网盘里面下载:
    链接:https://pan.baidu.com/s/1aI6djw4B-3Pz_AAkDBJ5WQ?pwd=1234

    使用下面的命令,解压Spark 安装包:

    tar -zxvf spark-3.3.0-bin-hadoop3.3.2.tgz
    
    • 1

    在这里插入图片描述
    执行ls -l命令后的界面如下图所示,这些内容是Spark包含的文件。
    在这里插入图片描述

    cd bin
    ./spark-shell
    
    • 1
    • 2

    执行spark-shell命令后的界面如图所示。
    在这里插入图片描述
    配置Hadoop环境变量
    在Yarn上运行Spark需要配置环境变量

    Vim ~/.bashrc
    
    • 1

    在这里插入图片描述
    修改内容后保存退出。

    Source ~/.bashrc
    
    • 1

    使配置生效。
    在这里插入图片描述
    验证spark安装
    进入Spark安装主目录,执行如下命令。

    1.Spark 在YARN上运行,以集群模式启动Spark应用程序
    这里指定使用 YARN 集群管理器作为主节点。
    先执行这个命令:

    bin/spark-submit \
    > --class org.apache.spark.examples.SparkPi \
    > --master yarn \
    > --deploy-mode cluster \
    > ./examples/jars/spark-examples_2.12-3.3.0.jar \
    > 10
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    bin/spark-submit:启动 Spark 应用程序提交工具。
    –class org.apache.spark.examples.SparkPi:指定要运行的 Java 类,这里使用了 Spark 官方提供的计算 pi 数值的例子程序 SparkPi。

    –master yarn:设置 Spark 应用程序的主节点 URL,这里指定使用 YARN 集群管理器作为主节点。

    –deploy-mode cluster:指定应用程序的部署模式。在这种模式下,Spark 驱动程序将在 YARN 集群中启动,并协调整个应用程序。另一种可选的部署模式是 client 模式,其中驱动程序会直接在提交命令的客户端上启动。

    ./examples/jars/spark-examples_2.12-3.3.0.jar:指定要提交的应用程序代码包的位置和名称。在这个例子中,使用了 Spark 的示例程序提供的 JAR 文件。

    指定运行 Spark 应用程序时要传递给它的参数。在这个例子中,将计算 pi 数值的精度设置为 10。

    启动脚本调用的是spark-submit,所以直接看bin/spark-submit脚本,跟spark-shell一样,先检查是否设置了${SPARK_HOME},然后启动spark-class,并传递了org.apache.spark.deploy.SparkSubmit作为第一个参数,然后把前面Spark-shell的参数都传给spark-class

    –master 指定master节点
    –class 指定执行的类
    –executor-memory executor内存大小
    –total-executor-cores 总的executor 数目
    
    • 1
    • 2
    • 3
    • 4

    不对核心数目做限制的时候,是最快的。只有两个核心的时候,很慢。
    运行截图如下:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    2.然后我们再这里设置为本地模式local并使用两个 CPU 核心启动。

    bin/spark-submit --class org.apache.spark.examples.SparkPi --master local[2]  --num-executors 2 --driver-memory 1g --executor-memory 1g --executor-cores 1 ./examples/jars/spark-examples_2.12-3.3.0.jar 10
    
    • 1

    其中
    bin/spark-submit:启动 Spark 应用程序提交工具。
    –class org.apache.spark.examples.SparkPi:指定要运行的 Java 类,这里使用了 Spark 官方提供的计算 pi 数值的例子程序 SparkPi。

    –master local[2]:设置 Spark 应用程序的主节点 URL,这里设置为本地模式并使用两个 CPU 核心。实际上,Spark 可以连接到许多不同类型的集群管理器(例如 YARN、Mesos 或 Kubernetes)作为主节点。

    –num-executors 2:设置 Spark 应用程序要使用的执行器数量。在本地模式下,这通常应该小于或等于计算机的 CPU 核心数。

    –driver-memory 1g:设置驱动程序进程可以使用的内存量。 Spark 驱动程序负责协调整个应用程序,并将结果返回给客户端或保存到磁盘中。

    –executor-memory 1g:设置每个执行器进程可以使用的内存量。执行器进程是 Spark 在集群中实际执行计算任务的工作者。

    –executor-cores 1:设置每个执行器进程可以使用的 CPU 核心数量。

    ./examples/jars/spark-examples_2.12-3.3.0.jar:指定要提交的应用程序代码包的位置和名称。在这个例子中,使用了 Spark 的示例程序提供的 JAR 文件。

    我们在这里指定运行 Spark 应用程序时要传递给它的参数。
    在这里插入图片描述
    运行正常出现的界面信息:

    在这里插入图片描述

    在这里插入图片描述
    新建一个终端,进入到hadoop目录下的userlogs日志文件,找到了我们的spark应用结果日志文件,可以在里面找到计算结果和相关信息。

    cd $HADOOP_HOME/logs/userlogs
    ls
    
    • 1
    • 2

    在这里插入图片描述

    cd application_1668847055201_0007
    ls
    
    • 1
    • 2

    在这里插入图片描述

    查看执行结果文件信息

    cat container_1668847055201_0007_01_000001/stdout
    
    • 1

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    其中计算结果和相关运行信息如下图所示。我们可以看到Spark 应用程序成功地计算出了 pi 数值的近似值,并将结果打印到了控制台上。结果中的 Pi is roughly 3.1416631416631415 表示计算出的 pi 的近似值为 3.1416631416631415。
    在这里插入图片描述

  • 相关阅读:
    YOLOv8改进 | SPPF | 双通道特征处理的池化结构——SPPFCSPC【全网独家】
    【golang】建议收藏的golang瑞士军刀-9个工具方法
    一维时间序列信号的奇异小波时频分析方法(Python)
    springboot使用jasypt给配置文件密码加密
    实验一 Linux基本操作
    【茗创科技】如何看待心理学实验中的数据缺失?
    基于SSM的高校毕业设计选题管理系统(有报告)。Javaee项目。
    Java | Leetcode Java题解之第200题岛屿数量
    个保法(PIPL)颁布实施一周年,给行业带来了哪些变化?
    抽象类和接口
  • 原文地址:https://blog.csdn.net/Myx74270512/article/details/133255229