Spark 3.x各模式部署 - Ubuntu(上)

简介: Spark 3.x各模式部署 - Ubuntu(上)

一、Spark介绍

Spark是一种计算框架,可以使用简单的编程模型对大型数据集进行快速、通用、分布式处理。

1. Spark发展史及生态圈

  • 2009年,Spark项目在加州大学伯克利分校AMPLab实验室诞生。
  • 2010年,Spark被开源,并在GitHub上发布。
  • 2013年,Spark成为Apache项目的孵化器项目。
  • 2014年2月,Spark成为Apache顶级项目。
  • 2014年,Databricks公司成立,致力于支持和发展Spark生态系统。
  • 2015年,Spark 1.0.0版本发布。
  • 2016年,Spark 2.0.0版本发布。
  • 2018年,Spark 2.3.0版本发布。
  • 2020年,Spark 3.0.0版本发布。

2. Spark核心功能及优势

  • 通用计算引擎

Spark作为一个通用计算引擎,可以支持批处理、流处理、交互式查询和机器学习等多种数据处理场景。

  • 弹性分布式数据集:RDD

RDD(Resilient Distributed Dataset)是Spark中的基本数据结构,它是一个不可变的分布式对象集合。RDD具有容错、并行处理等特点,是Spark中数据处理的核心概念。

  • 高性能

Spark使用内存计算,相比于Hadoop的MapReduce,Spark可以大幅提高数据处理速度。同时,Spark还支持数据存储格式优化、查询优化等功能,进一步提高计算性能。

  • 易用性

Spark支持Scala、Java、Python和R等多种编程语言,用户可以选择自己熟悉的语言进行开发。同时,Spark提供了丰富的API和库,降低了开发难度。

  • 生态系统

Spark拥有丰富的生态系统,包括Spark SQL、Spark Streaming、MLlib(机器学习库)和GraphX(图计算库)等组件,可以方便地处理各种类型的数据和应用场景。

3. 部署方式介绍

  • 本地模式

本地模式是一个最简的安装模式,在这种模式下,Spark可以在单机上运行,适合学习和测试。

  • 伪分布式模式

伪分布式模式也是学习阶段较常用的模式,在这种模式下,所有的Spark进程都运行在同一台机器上。这种模式可以模拟分布式模式下的运行状态,基本上可以完成分布式模式下的所有操作。

  • 全布式模式

在分布式模式下,Spark可以在集群中部署,将计算任务分布在多个节点上进行处理。分布式模式可以充分利用集群资源,提高计算性能和容错能力。在企业中主要采用的都是分布式模式,节点从数十个到上百个不等。在学习阶段,如果个人PC的性能足够强劲,也可以使用多台虚拟机代替。

二、Spark下载

1. 下载地址

在百度中搜索Spark,第一条就会显示我们需要的网站,目前Spark属于Apache基金会,所以我们打开网址时注意一下是apache.org

进入后来到Spark的官网,点击Download就可以打开下载界面:https://spark.apache.org/downloads.html

2. 版本选择

现在我们使用的是开源社区版,目前的主流版本为2.x.y3.x.y

在选择Hadoop的版本时,我们应该考虑到与其他生态圈软件的兼容问题。通常的组建方式有以下几种:

  • 根据各组件的兼容性要求手动选择版本并搭建
  • 使用CDH(Cloudera’s Distribution Including Apache Hadoop)自动选择版本并解决兼容问题
  • 使用Databricks(Databricks Unified Analytics Platform)自动选择版本并解决兼容问题

在学习阶段,由于进行的操作比较简单,不需要特别的在意版本的兼容问题,但是建议对各种方式都能有所了解。

3. 安装包下载

目前的3.x版本中对于不同版本的scala进行了支持,默认使用2.12,这会直接影响到计算程序运行时的兼容性,选择时请尤为注意。本文以3.3.2为例:

点击选项3中的链接进入镜像选择页面,直击链接:https://www.apache.org/dyn/closer.lua/spark/spark-3.3.2/spark-3.3.2-bin-hadoop3.tgz

可以直接使用wget命令下载到Linux系统。

三、前置环境

Spark需要Scala环境才能够运行,Scala依赖Java虚拟机,所以需要预先配置好JDKScala

1. JDK安装

  • 检查已有JDK环境
update-java-alternatives --list

使用该命令时需要预先安装java-common:sudo apt install java-common

  • 卸载不需要的版本

如果已经安装的版本不是所需要的,可以先进行卸载,软件名称就是上文中查询到的。

sudo apt remove java-1.8.0-openjdk-arm64
  • 安装对应版本的JDK

目前Spark 3.x的主要兼容版本为Scala 2.12.x2.13.x,使用JDK 1.8就可以很好的兼容。

sudo apt remove java-1.8.0-openjdk-arm64

安装完成后可以使用java -version命令进行验证。

  • 配置环境变量

使用apt的方式安装JDK后,环境变量中并没有JAVA_HOME,需要手动配置一下:

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-arm64
export PATH=$PATH:$JAVA_HOME/bin

2. Scala安装

如果使用apt工具进行Scala的安装需要添加软件源,并且同样需要配置环境变量,所以这里我们使用解压安装的方式。

  • 下载地址

我们以Scala 2.12版本为例,目前的最新版为2.12.17,复制tgz软件包下载链接。

  • 解压安装

使用wget命令下载,并解压缩

wget https://downloads.lightbend.com/scala/2.12.17/scala-2.12.17.tgz
tar -zvxf scala-2.12.17.tgz

  • 环境变量配置

编辑.bashrc文件,添加Scala相关路径。

vi ~/.bashrc
# 文件结尾添加以下内容
export SCALA_HOME=/home/hadoop/scala-2.12.17
export PATH=$PATH:$SCALA_HOME/bin

配置完成后保存退出,并使用命令进行版本验证。

source .bashrc
scala -version

3. 创建单独账户

使用大数据生态圈组件,建议创建一个单独的用户,如:hadoop。

sudo adduser hadoop

可以将hadoop用户添加到sudo组,使其拥有更高的权限:

sudo usermod -aG sudo hadoop

修改Spark软件压缩包的所属为hadoop:

sudo chown hadoop:hadoop hadoop-3.3.5-aarch64.tar.gz

移动软件包至hadoop用户家目录,并切换到hadoop用户:

sudo mv /path/to/spark-3.3.2-bin-hadoop3.tgz /home/hadoop/
su - hadoop


目录
相关文章
|
7月前
|
人工智能 Ubuntu 前端开发
Dify部署全栈指南:AI从Ubuntu配置到HTTPS自动化的10倍秘籍
本文档介绍如何部署Dify后端服务及前端界面,涵盖系统环境要求、依赖安装、代码拉取、环境变量配置、服务启动、数据库管理及常见问题解决方案,适用于开发与生产环境部署。
1456 1
|
10月前
|
Ubuntu 安全 数据安全/隐私保护
在Docker容器中部署GitLab服务器的步骤(面向Ubuntu 16.04)
现在,你已经成功地在Docker上部署了GitLab。这就是我们在星际中的壮举,轻松如同土豆一样简单!星际旅行结束,靠岸,打开舱门,迎接全新的代码时代。Prepare to code, astronaut!
618 12
|
分布式计算 Kubernetes Hadoop
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
844 6
|
分布式计算 资源调度 Hadoop
大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比
大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比
404 2
|
12月前
|
Ubuntu 安全 Docker
Ubuntu下部署及操作Docker技巧
以上就是在Ubuntu下部署及操作Docker的具体步骤。但这只是冰山一角,Docker的魅力远不仅如此。你可以将其视为存放各种工具的小箱子,随时随地取用,极大地提升工作效率。你也可以私人订制,适应不同的开发环境,就像一个拥有各种口味冰淇淋的冰箱,满足各种各样的需求。好了,现在你已经掌握了基本的Docker运用技巧,快去尝试使用吧!记住,沉浸在探索中,你会找到无尽的乐趣和满满的收获。
504 23
|
Ubuntu 测试技术 网络安全
Ubuntu系统下部署flatpress轻量级博客系统
【10月更文挑战第3天】Ubuntu系统下部署flatpress轻量级博客系统
336 3
Ubuntu系统下部署flatpress轻量级博客系统
|
Ubuntu API Python
Chat-TTS chat-tts-ui 实机部署上手测试!Ubuntu服务器实机 2070Super*2 8GB部署全流程
Chat-TTS chat-tts-ui 实机部署上手测试!Ubuntu服务器实机 2070Super*2 8GB部署全流程
552 1
|
10月前
|
人工智能 分布式计算 大数据
大数据≠大样本:基于Spark的特征降维实战(提升10倍训练效率)
本文探讨了大数据场景下降维的核心问题与解决方案,重点分析了“维度灾难”对模型性能的影响及特征冗余的陷阱。通过数学证明与实际案例,揭示高维空间中样本稀疏性问题,并提出基于Spark的分布式降维技术选型与优化策略。文章详细展示了PCA在亿级用户画像中的应用,包括数据准备、核心实现与效果评估,同时深入探讨了协方差矩阵计算与特征值分解的并行优化方法。此外,还介绍了动态维度调整、非线性特征处理及降维与其他AI技术的协同效应,为生产环境提供了最佳实践指南。最终总结出降维的本质与工程实践原则,展望未来发展方向。
471 0
|
分布式计算 大数据 Apache
ClickHouse与大数据生态集成:Spark & Flink 实战
【10月更文挑战第26天】在当今这个数据爆炸的时代,能够高效地处理和分析海量数据成为了企业和组织提升竞争力的关键。作为一款高性能的列式数据库系统,ClickHouse 在大数据分析领域展现出了卓越的能力。然而,为了充分利用ClickHouse的优势,将其与现有的大数据处理框架(如Apache Spark和Apache Flink)进行集成变得尤为重要。本文将从我个人的角度出发,探讨如何通过这些技术的结合,实现对大规模数据的实时处理和分析。
1118 2
ClickHouse与大数据生态集成:Spark & Flink 实战