大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS

点一下关注吧!!!非常感谢!!持续更新!!!

目前已经更新到了:

Hadoop(已更完)

HDFS(已更完)

MapReduce(已更完)

Hive(已更完)

Flume(已更完)

Sqoop(已更完)

Zookeeper(已更完)

HBase(已更完)

Redis (已更完)

Kafka(已更完)

Spark(正在更新!)

章节内容

上节我们完成了如下的内容:


Spark项目下载

Spark环境配置、配置文件配置

项目分发 至 h122和h123服务器

Spark集群架构

在介绍完Spark的核心特性和组件之后,接下来详细探讨一下Spark的集群架构和部署模式。理解Spark的集群架构有助于更好地利用其强大的分布式计算能力,以满足不同的计算需求。

Spark集群主要由以下三个核心组件组成:


驱动程序

集群管理器

执行器

驱动程序(Driver Program)

驱动程序是Spark应用的入口,它负责运行用户定义的main函数,并创建SparkContext对象。SparkContext是与集群交互的接口,它负责调度任务,将任务分发到各个执行器(Executor)中执行。

驱动程序还负责监控任务的执行状态,并收集执行结果。在程序的生命周期中,驱动程序与集群管理器持续通信,确保作业的顺利运行。

集群管理器(Cluster Manager)

集群管理器负责管理集群的资源,并将资源分配给Spark应用。它负责协调驱动程序和执行器的交互,并处理任务的调度。Spark支持多种集群管理器,包括独立模式(Standalone)、YARN、Mesos和Kubernetes。


Standalone:这是Spark自带的集群管理器模式,适用于在小规模集群中独立运行Spark集群。Standalone模式易于设置和管理,适合入门和开发环境。

YARN(Yet Another Resource Negotiator):YARN是Hadoop生态系统中的资源管理器,广泛应用于大规模生产集群。Spark可以与YARN集成,以共享Hadoop集群的资源和数据。

Mesos:Mesos是一个开源的集群资源管理器,可以将集群中的资源划分给多个应用。Mesos支持多种框架,并且具有较高的扩展性和灵活性。

Kubernetes:Kubernetes是一个流行的容器编排平台,Spark可以部署在Kubernetes上,通过Kubernetes的资源管理和容器化能力,实现

更灵活的部署和扩展。

执行器(Executor)

执行器是在工作节点(Worker Node)上运行的进程,负责执行分配的任务。每个执行器都具有自己的内存和CPU资源,并独立执行任务。

执行器在整个Spark应用的生命周期内都会存在,它不仅执行任务,还会将数据缓存在内存中,以加快后续任务的处理速度。

Spark的集群模式

Spark支持多种集群部署模式,适应不同的工作环境和需求:


本地模式(Local Mode)

在本地模式下,Spark在单一节点上运行,无需集群管理器。这种模式主要用于开发、测试和调试,不适合生产环境。使用本地模式时,可以通过指定线程数(如local[*])来决定并行度。


集群模式(Cluster Mode)

在集群模式下,Spark应用部署在集群中,任务分发到多个工作节点上执行。驱动程序可以运行在本地也可以运行在集群中,前者称为客户端模式(Client Mode),后者称为集群模式(Cluster Mode)。


客户端模式:驱动程序在用户的本地机器上运行,适合需要频繁与用户交互的应用。用户提交应用时,集群管理器负责分配资源并启动执行器。

集群模式:驱动程序在集群的一个节点上运行,适合长时间运行的作业和生产环境。用户提交应用后,集群管理器会在集群中选择一个节点作为驱动程序运行的地方。

混合模式(Mesos/Kubernetes)

在Mesos或Kubernetes模式下,Spark可以与其他应用共享集群资源,并根据资源需求动态调整资源的分配。这种模式为大规模集群提供了更高的灵活性和资源利用率,适合企业级应用场景。


集群资源管理

在Spark集群中,资源管理是一个关键问题。不同的集群管理器采用不同的策略来分配资源,确保集群的高效运行。Spark支持的资源管理策略包括:


静态资源分配:在Standalone模式中,资源是预先配置好的,集群管理器会根据这些配置为Spark应用分配资源。

动态资源分配:在YARN和Kubernetes模式中,Spark可以根据当前的工作负载动态调整资源使用,释放不再需要的资源,从而提高集群的整体资源利用率。

集群监控与调优

为了确保Spark集群的稳定运行和高效利用,集群监控与调优是不可或缺的环节。Spark提供了多种监控工具和日志记录功能,帮助管理员了解集群的运行状态并进行调优。


Spark UI:这是一个基于Web的用户界面,显示作业的执行状态、任务的分配情况、资源的使用情况等详细信息。通过Spark UI,用户可以深入了解应用的执行过程,并找出性能瓶颈。

Ganglia、Prometheus等监控工具:这些工具可以与Spark集成,提供更细粒度的监控数据,帮助管理员实时监控集群的健康状态。

日志与指标:Spark生成的日志文件和性能指标数据也可以帮助管理员分析集群的运行情况,发现并解决潜在的问题。

Hadoop 集群启动

在 h121 节点上进行执行,我们启动服务:

start-all.sh

启动的结果如下图所示:

Spark 集群启动

接着我们需要到目录下,启动集群的Spark

cd /opt/servers/spark-2.4.5-bin-without-hadoop-scala-2.12/sbin
./start-all.sh

h121 节点

通过 jps 我可以可以看到:Master 和 Worker

h122 节点

通过 jps 我们可以看到:

h123 节点

通过 jps 我们可也看到:

查看结果

我们通过查看 h121 的日志,可以看到是 8081 的端口(我的8080好像是被占用了)

这个在Spark的目录下的 logs下,如果你也遇到了无法访问,可以看看这个logs

测试运行

这里Spark提供了一个官方的HelloWorld(前提你配置好环境变量,不然你需要到指定目录执行)

run-example SparkPi 10
• 1

可以看到如下的结果为:

SparkShell

我们可以简单的启动一个Shell来测试Spark的效果:

(后续有更深入的学习!)

spark-shell --master local-cluster[*]

这里有一些之前测试的图片:

先不管别的,先写一段感受一下:

val rdd1 = sc.makeRDD(1 to 100).map((_, 1))
rdd1.getNumPartitions

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
相关文章
|
29天前
|
缓存 监控 API
探索微服务架构中的API网关模式
【10月更文挑战第5天】随着微服务架构的兴起,企业纷纷采用这一模式构建复杂应用。在这种架构下,应用被拆分成若干小型、独立的服务,每个服务围绕特定业务功能构建并通过HTTP协议协作。随着服务数量增加,统一管理这些服务间的交互变得至关重要。API网关作为微服务架构的关键组件,承担起路由请求、聚合数据、处理认证与授权等功能。本文通过一个在线零售平台的具体案例,探讨API网关的优势及其实现细节,展示其在简化客户端集成、提升安全性和性能方面的关键作用。
70 2
|
30天前
|
分布式计算 资源调度 大数据
大数据-110 Flink 安装部署 下载解压配置 Standalone模式启动 打包依赖(一)
大数据-110 Flink 安装部署 下载解压配置 Standalone模式启动 打包依赖(一)
47 0
|
30天前
|
分布式计算 资源调度 大数据
大数据-110 Flink 安装部署 下载解压配置 Standalone模式启动 打包依赖(二)
大数据-110 Flink 安装部署 下载解压配置 Standalone模式启动 打包依赖(二)
65 0
|
5天前
|
缓存 监控 API
探索微服务架构中的API网关模式
随着微服务架构的兴起,API网关成为管理和服务间交互的关键组件。本文通过在线零售公司的案例,探讨了API网关在路由管理、认证授权、限流缓存、日志监控和协议转换等方面的优势,并详细介绍了使用Kong实现API网关的具体步骤。
19 3
|
5天前
|
存储 缓存 监控
探索微服务架构中的API网关模式
探索微服务架构中的API网关模式
18 2
|
8天前
|
SQL 存储 算法
基于对象 - 事件模式的数据计算问题
基于对象-事件模式的数据计算是商业中最常见的数据分析任务之一。对象如用户、账号、商品等,通过唯一ID记录其相关事件,如操作日志、交易记录等。这种模式下的统计任务包括无序计算(如交易次数、通话时长)和有序计算(如漏斗分析、连续交易检测)。尽管SQL在处理无序计算时表现尚可,但在有序计算中却显得力不从心,主要原因是其对跨行记录运算的支持较弱,且大表JOIN和大结果集GROUP BY的性能较差。相比之下,SPL语言通过强化离散性和有序集合的支持,能够高效地处理这类计算任务,避免了大表JOIN和复杂的GROUP BY操作,从而显著提升了计算效率。
|
29天前
|
存储 分布式计算 druid
大数据-152 Apache Druid 集群模式 配置启动【下篇】 超详细!(一)
大数据-152 Apache Druid 集群模式 配置启动【下篇】 超详细!(一)
37 1
大数据-152 Apache Druid 集群模式 配置启动【下篇】 超详细!(一)
|
16天前
|
SQL 存储 算法
基于对象 - 事件模式的数据计算问题
基于对象-事件模式的数据计算是商业中最常见的数据分析任务之一。这种模式涉及对象(如用户、账户、商品等)及其相关的事件记录,通过这些事件数据可以进行各种统计分析,如漏斗分析、交易次数统计等。然而,SQL 在处理这类任务时表现不佳,特别是在有序计算方面。SPL 作为一种强化离散性和有序集合的语言,能够高效地处理这类计算,避免了大表 JOIN 和大结果集 GROUP BY 的性能瓶颈。通过按 ID 排序和分步计算,SPL 能够显著提高计算效率,并支持实时数据处理。
|
29天前
|
分布式计算 大数据 分布式数据库
大数据-158 Apache Kylin 安装配置详解 集群模式启动(一)
大数据-158 Apache Kylin 安装配置详解 集群模式启动(一)
35 5
|
29天前
|
资源调度 大数据 分布式数据库
大数据-158 Apache Kylin 安装配置详解 集群模式启动(二)
大数据-158 Apache Kylin 安装配置详解 集群模式启动(二)
36 2