大数据-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搭建和管理企业级网站应用
目录
相关文章
|
1月前
|
分布式计算 资源调度 Hadoop
大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比
大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比
64 2
|
1月前
|
消息中间件 分布式计算 关系型数据库
大数据-140 - ClickHouse 集群 表引擎详解5 - MergeTree CollapsingMergeTree 与其他数据源 HDFS MySQL
大数据-140 - ClickHouse 集群 表引擎详解5 - MergeTree CollapsingMergeTree 与其他数据源 HDFS MySQL
44 0
|
15天前
|
存储 分布式计算 Hadoop
数据湖技术:Hadoop与Spark在大数据处理中的协同作用
【10月更文挑战第27天】在大数据时代,数据湖技术凭借其灵活性和成本效益成为企业存储和分析大规模异构数据的首选。Hadoop和Spark作为数据湖技术的核心组件,通过HDFS存储数据和Spark进行高效计算,实现了数据处理的优化。本文探讨了Hadoop与Spark的最佳实践,包括数据存储、处理、安全和可视化等方面,展示了它们在实际应用中的协同效应。
59 2
|
16天前
|
存储 分布式计算 Hadoop
数据湖技术:Hadoop与Spark在大数据处理中的协同作用
【10月更文挑战第26天】本文详细探讨了Hadoop与Spark在大数据处理中的协同作用,通过具体案例展示了两者的最佳实践。Hadoop的HDFS和MapReduce负责数据存储和预处理,确保高可靠性和容错性;Spark则凭借其高性能和丰富的API,进行深度分析和机器学习,实现高效的批处理和实时处理。
56 1
|
7天前
|
存储 缓存 分布式计算
【赵渝强老师】基于RBF的HDFS联邦架构
最新版Hadoop实现了基于Router的联盟架构,增强了集群管理能力。Router将挂载表从客户端中分离,解决了ViewFS的问题。RBF架构包括Router和State Store两个模块,其中Router作为代理服务,负责解析ViewFS并转发请求至正确子集群,State Store则维护子集群的状态和挂载表信息。
|
7天前
|
存储 分布式计算 负载均衡
【赵渝强老师】基于ViewFS的HDFS联邦架构
本文介绍了HDFS联盟(Federation)的概念及其在大数据存储中的应用。HDFS联盟通过允许多个NameNode管理不同的命名空间,实现了负载均衡和NameNode的水平扩展。文章还详细解释了基于ViewFS的联盟架构,以及该方案的局限性。附带的视频进一步讲解了相关概念。
|
1月前
|
分布式计算 Hadoop 大数据
大数据体系知识学习(一):PySpark和Hadoop环境的搭建与测试
这篇文章是关于大数据体系知识学习的,主要介绍了Apache Spark的基本概念、特点、组件,以及如何安装配置Java、PySpark和Hadoop环境。文章还提供了详细的安装步骤和测试代码,帮助读者搭建和测试大数据环境。
53 1
|
1月前
|
SQL 分布式计算 大数据
大数据平台的毕业设计01:Hadoop与离线分析
大数据平台的毕业设计01:Hadoop与离线分析
100 0
|
1月前
|
SQL 分布式计算 关系型数据库
Hadoop-24 Sqoop迁移 MySQL到Hive 与 Hive到MySQL SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
Hadoop-24 Sqoop迁移 MySQL到Hive 与 Hive到MySQL SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
84 0
|
1月前
|
存储 机器学习/深度学习 分布式计算
大数据技术——解锁数据的力量,引领未来趋势
【10月更文挑战第5天】大数据技术——解锁数据的力量,引领未来趋势