Spark运行standalone集群模式

spark的集群主要有三种运行模式standalone、yarn、mesos,其中常被使用的是standalone和yarn,本文了解一下什么是standalone运行模式,并尝试搭建一个standalone集群

1

一、standalone模式

standalone模式,是spark自己实现的,它是一个资源调度框架。这里我们要关注这个框架的三个节点:

  1. client
  2. master
  3. worker

spark应用程序有一个Driver驱动,Driver可以运行在Client上也可以运行在master上。如果你使用spark-shell去提交job的话它会是运行在master上的,如果你使用spark-submit或者IDEA开发工具方式运行,那么它是运行在Client上的。这样我们知道了,Client的主体作用就是运行Driver。而master除了资源调度的作用还可以运行Driver。

再关注master和worker节点,standalone是一个主从模式,master节点负责资源管理,worker节点负责任务的执行。

standalone的是spark默认的运行模式,它的运行流程主要就是把程序代码解析成dag结构,并再细分到各个task提交给executor线程池去并行计算

二、运行流程

了解standalone主要节点之后,我们看一下它的运行流程,如图:

img

1)当spark集群启动以后,worker节点会有一个心跳机制和master保持通信;

2)SparkContext连接到master以后会向master申请资源,而master会根据worker心跳来分配worker的资源,并启动worker的executor进程;

3)SparkContext将程序代码解析成dag结构,并提交给DagScheduler;

4)dag会在DagScheduler中分解成很多stage,每个stage包含着多个task;

5)stage会被提交给TaskScheduler,而TaskScheduler会将task分配到worker,提交给executor进程,executor进程会创建线程池去执行task,并且向SparkContext报告执行情况,直到task完成;

6)所有task完成以后,SparkContext向Master注销并释放资源;

三、standalone集群搭建

3.0、准备条件

机器(默认配置好了主机名、映射和免密登录)
hostname系统版本
masterCentOS7.6
slave1CentOS7.6
slave2CentOS7.6

3.1、sbin/spark-config.sh

在spark-config.sh文件中配置JAVAHOME

  1. vi spark-config.sh
  2. 添加内容export JAVA_HOME=/usr/local/apps/java/jdk1.8

3.2、conf/spark-env.sh

  1. cp spark-env.sh.template spark-env.sh
  2. vi spark-env.sh
  3. 添加以下内容
export JAVA_HOME=/usr/local/apps/java/jdk1.8
export SCALA_HOME=/usr/local/apps/scala/scala-2.12.2
export SPARK_MASTER_HOST=master
export SPARK_WORKER_MEMORY=25g
export SPARK_WORKER_CORES=34
export SPARK_LOCAL_IP=127.0.0.1
export SPARK_MASTER_PORT=7077
export SPARK_LOCAL_IP=master

其中SPARK_LOCAL_IP要配置为当前主机的hostname

3.3、conf/slaves

  1. cp slaves.template slaves
  2. 添加作为worker的机器地址
slave1
slave2

3.4、启动 Spark 集群

$ sbin/start-all.sh

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fmreEthG-1609913096682)(image/image3.png)]

3.5、jps查看

使用jps命令查看进程master下会有maser进程,slave下会有worker进程

3.6、在Web端查看Spark集群情况

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YGCNlCEM-1609913096683)(image/image4.png)]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/535553.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

docker原理

a.更快速的支付和部署:开发者可以使用一个标准的镜像来构建一套开发容器 ,开发完成之后,运维人员可以直接使用这个容器来部署代码。 b.更高效的虚拟化: Docker容器的运行不需要额外的hypervisor支持,它是内核级的虚拟化,因此 可以实现更高的性能和效。 I 0c更轻松的迁移和扩展…

创造型模式——工厂模式

工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的…

创造型模式——抽象工厂模式

抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 在抽象工厂模式中,接口是负责创建一个相关对象的…

创造型模式——单例模式

单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建…

创造性模式——原型模式

原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 这种模式是实现了一个原型接口,该接口用于创建当前对象的克隆。当直接创建…

Java集合:关于 LinkedList 的内容盘点

本篇内容包括:LinkedList 的概述、LinkedList 的结构既双向链表实现与LinkedList-Node 结构、LinkedList 的使用(构造方法&常用方法)、关于 Queue 队列的介绍、关于 ArrayList 和 LinkedList 的区别以及算法:翻转链表&#xf…

oracle迁移父子数据

现有需求如下,业务组织单元表中id字段数据在另外一个系统全部重复,但需要将此业务单元组织导入另一系统 业务组织单元表Isc_Specialorg_Unit 表中存在ID字段为子节点数据,parent_id为父节点数据,orgpath为组织路径 现在做如下操…

oracle表空间

概念 表空间和数据文件 ●表空间是逻辑存储概念,一个表空间是一个或多个数据文件的逻辑集合 ●存储对象(表、索引)逻辑的存储在表空间上,而存储对象的数据物理的存放在数据文件上 ●数据库至少需要一个叫做system的表空间,也就是系统表空间 ●…

oracle日志

日志分类 redo log files联机日志或重做日志 archived log files归档日志 1184198alert log files 告警日志 trace files user_ _dump_ _dest 用户信息日志如跟踪会话日志 background dump_ dest进程日志还有其他一-些不常用的日志 v$database的log_mode 数据库归档模式…

MySQL:分库分表知识点盘点

本篇内容包括:数据库瓶颈、分库分表以及分库分表相关问题 一、数据库瓶颈 不管是IO瓶颈,还是CPU瓶颈,最终都会导致数据库的活跃连接数增加,进而逼近甚至达到数据库可承载活跃连接数的阈值。在业务Service来看就是,可用…

oracle的sga

sga SGA的管理 ■有三种方式: ●8i:SGA的总大小由所有内存组件大小之和决定,不能直接定义SCA大小。对内部组件大小的修改必须在数据库重起 后 才能生为,所以叫做SGA的静态管理。 ●9i&#xff…

MySQL:主从相关知识点盘点

本篇内容包括:MySQL 主从复制简介、主从复制的原理以及主从搭建 一、MySQL 主从复制简介 在实际的生产中,为了解决Mysql的单点故障已经提高MySQL的整体服务性能,一般都会采用**「主从复制」**。 比如:在复杂的业务系统中&#x…

oracle导出expdp

expdp/impdp 是 oracle 10g 版本后推出的服务器端工具--数据泵,作用是为了将数据库中的逻辑对象,比如表、用户、全库、表空间进 行导入,导出 命令解析 ATTACH ATTACH [[schema_name.]job_name] schema_name 表示用户名,job_name 表示导出的作…

oracle检查点

检 查 点 概述 ■l当修改数据时,需要首先将数据读入内存中(Buffer Cache),修改数据的同时,Oracle会记录重做信息(Redo)用于恢复。因 为有了重做信息的存在,Oracle不需要在提交时…

文献翻译:Java theory and practice: Fixing the Java Memory Model, Part 2

Java theory and practice: Fixing the Java Memory Model, Part 2 译:Java 理论与实践:修复 Java 内存模型,第 2 部分 翻译自:http://www.ibm.com/developerworks/library/j-jtp03304/(原文写于2004年3月&#xff0…

常用系统函数oracle

单行函数日期函数ADD_MONTHS(date, n):用于从一个日期值增加或减少一些月份 MONTHS_BETWEEN(date1, date2):判断两个日期之间相差的月份 LAST_DAY(date): 函数返回包含日期的月份的最后一天 ROUND(date[,fmt]): 将日期d按照fmt指定的格式舍入,fmt为字符串 TRU…

oracle游标

游标(cursor )是一个私有的SQL工作区域,是一个指向上下文区的句柄或指针,位于内存中的 "临时表"。 游标是SQL的一个内存工作区,由系统或用户以变量的形式定义。游标的作用就是用于临时存储从数据库中提取的数据块。在某…

系统学习SpringFramework:Spring IOC

本篇内容包括:IOC 和 DI 的概念、Spring 容器,即 BenaFactory 与 AplicationConext 等 IOC 相关内容。 一、IOC 和 DI 的概念 1、IOC IoC(Inversion of control )即“控制反转”,它是一种设计思想而非一个技术实现。…

rowid

ROWID的格式rowidOOOOOOFFFBBBBBBRRR说明数据对象号相对文件号数据块号行号 上述表格是Oracle 9i及以上版本数据库中的rowid格式: 6位对象号3位相对文件号6位数据块号3位行号,是一个18位的64进制值。这个18位的64进制值在数据库内却是以10个bytes合计80个bit的二进制…

系统学习SpringFramework:循环依赖与三级缓存

本篇内容包括:Spring 中的循环依赖问题(包括 Spring 中的循环依赖问题和Spring 中的循环依赖的 5 种场景的介绍)、Spring 三级缓存介绍、4 个 Spring 无法自动解决的循环以来场景以及其对应的手动解决方式。 一、Spring 中的循环依赖问题 1、…