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

本文涉及的产品
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
日志服务 SLS,月写入数据量 50GB 1个月
简介: 大数据-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搭建和管理企业级网站应用
目录
打赏
0
6
6
0
100
分享
相关文章
【赵渝强老师】大数据主从架构的单点故障
大数据体系架构中,核心组件采用主从架构,存在单点故障问题。为提高系统可用性,需实现高可用(HA)架构,通常借助ZooKeeper来实现。ZooKeeper提供配置维护、分布式同步等功能,确保集群稳定运行。下图展示了基于ZooKeeper的HDFS HA架构。
Spark Master HA 主从切换过程不会影响到集群已有作业的运行, 为什么?
Spark Master 的高可用性(HA)机制确保主节点故障时,备用主节点能无缝接管集群管理,保障稳定运行。关键在于: 1. **Driver 和 Executor 独立**:任务执行不依赖 Master。 2. **应用状态保持**:备用 Master 通过 ZooKeeper 恢复集群状态。 3. **ZooKeeper 协调**:快速选举新 Master 并同步状态。 4. **容错机制**:任务可在其他 Executor 上重新调度。 这些特性保证了集群在 Master 故障时仍能正常运行。
大数据实时计算产品的对比测评:实时计算Flink版 VS 自建Flink集群
本文介绍了实时计算Flink版与自建Flink集群的对比,涵盖部署成本、性能表现、易用性和企业级能力等方面。实时计算Flink版作为全托管服务,显著降低了运维成本,提供了强大的集成能力和弹性扩展,特别适合中小型团队和业务波动大的场景。文中还提出了改进建议,并探讨了与其他产品的联动可能性。总结指出,实时计算Flink版在简化运维、降低成本和提升易用性方面表现出色,是大数据实时计算的优选方案。
zdl
219 56
大数据时代的引擎:大数据架构随记
大数据架构通常分为四层:数据采集层、数据存储层、数据计算层和数据应用层。数据采集层负责从各种源采集、清洗和转换数据,常用技术包括Flume、Sqoop和Logstash+Filebeat。数据存储层管理数据的持久性和组织,常用技术有Hadoop HDFS、HBase和Elasticsearch。数据计算层处理大规模数据集,支持离线和在线计算,如Spark SQL、Flink等。数据应用层将结果可视化或提供给第三方应用,常用工具为Tableau、Zeppelin和Superset。
805 8
【赵渝强老师】基于大数据组件的平台架构
本文介绍了大数据平台的总体架构及各层的功能。大数据平台架构分为五层:数据源层、数据采集层、大数据平台层、数据仓库层和应用层。其中,大数据平台层为核心,负责数据的存储和计算,支持离线和实时数据处理。数据仓库层则基于大数据平台构建数据模型,应用层则利用这些模型实现具体的应用场景。文中还提供了Lambda和Kappa架构的视频讲解。
437 3
【赵渝强老师】基于大数据组件的平台架构
揭秘 Elasticsearch 集群架构,解锁大数据处理神器
Elasticsearch 是一个强大的分布式搜索和分析引擎,广泛应用于大数据处理、实时搜索和分析。本文深入探讨了 Elasticsearch 集群的架构和特性,包括高可用性和负载均衡,以及主节点、数据节点、协调节点和 Ingest 节点的角色和功能。
87 0
单机顶集群的大数据技术来了
大数据时代,分布式数仓如MPP成为热门技术,但其高昂的成本让人望而却步。对于多数任务,数据量并未达到PB级,单体数据库即可胜任。然而,由于SQL语法的局限性和计算任务的复杂性,分布式解决方案显得更为必要。esProc SPL作为一种开源轻量级计算引擎,通过高效的算法和存储机制,实现了单机性能超越集群的效果,为低成本、高效能的数据处理提供了新选择。
【赵渝强老师】Memcached集群的架构
Memcached 是一个高性能的分布式内存对象缓存系统,通过在内存中维护一个巨大的 Hash 表来存储各种格式的数据,如图像、视频、文件及数据库检索结果等。它主要用于减轻数据库压力,提高网站系统的性能。Memcached 不支持数据持久化,因此仅作为缓存技术使用。其数据分布式存储由客户端应用程序实现,而非服务端。
125 0
【赵渝强老师】Memcached集群的架构
【赵渝强老师】Docker Swarm集群的体系架构
Docker Swarm自1.12.0版本起集成至Docker引擎,无需单独安装。它内置服务发现功能,支持跨多服务器或宿主机创建容器,形成集群提供服务。相比之下,Docker Compose仅限于单个宿主机。Docker Swarm采用主从架构,Swarm Manager负责管理和调度集群中的容器资源,用户通过其接口发送指令,Swarm Node根据指令创建容器运行应用。

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等