【Spark】----Spark on Yarn

时间:2022-08-27 15:19:32

最近从Hadoop 1.x 转到Hadoop 2.x 同时将一些java 程序转为Scala的程序将平台上的代码减少了很多,在实施的过程中,开到一些Spark相关的YARN的部署上都是基于之前的Hadoop 1.x的部分方式,在Hadoop2.2 +版本之上 基本上就不用这么部署了。其原因就是Hadoop YARN 统一资源管理。

在Spark官网上

Spark应用在集群上以独立的进程集合运行,在你的主程序(称为驱动程序)中以SparkContext对象来调节。 特别的,为了在集群上运行,
SparkContext可以与几个类型的集群管理器(Spark自身单独的集群管理器或者Mesos/YARN)相连接,这些集群管理器可以在应用间分配资源。一旦连接,Spark需要在集群上的线程池子节点,也就是那些执行计算和存储应用数据的工作进程。然后,它将把你的应用代码(以JAR或者Python定义的文件并传送到SparkContext)发送到线程池。最后,SparkContext发送任务让线程池运行。(所以是通过SparkContext发送到其他节点的,在此你只是需要得到SparkContext,就行啦)。
 
【Spark】----Spark on Yarn
 
关于这个架构有几个游泳的地方需要注意:
 
1.各个应用有自己的线程池进程,会在整个应用的运行过程中保持并在多个线程中运行任务。这样做的好处是把应用相互孤立,即在调度方面(各个驱动调度它自己的任务)也在执行方面(不同应用的任务在不同的JVM上运行)。然而,这也意味着若不把数据写到额外的存储系统的话,数据就无法在不同的Spark应用间(SparkContext的实例)共享。
 
2.对于潜在的集群管理器来说,Spark是不可知的。只要它需要线程池的进程和他们间的通信,那么即使是在也支持其他应用的集群管理器(例如,Mesos/YARN)上运行也相对简单。
 
3. 因为驱动在集群上调度任务,它应该运行接近到工作节点,在相同的局域网内更好。如果你想对远程的集群发送请求,较好的选择是为驱动打开一个RPC,让它就近提交操作而不是运行离工作节点很远的驱动。
 
 
 
集群管理类型
 
系统目前支持3中集群管理:
(1)单例模式 一种简单的集群管理,其包括一个很容易搭建集群的Spark
(2) Apache Mesos模式 一种通用的集群管理,可以运行Hadoop MapReduce和服务应用的模式
(3) Hadoop YARN模式 Hadoop 2.0 中的资源管理模式
 
其实,在Amazon EC2(亚马逊弹性计算云)中Spark的EC2启动脚本可以很容易的启动单例模式。
 
给集群发布代码
 
给集群发布代码的一种推荐的方式是通过SparkContext的构造器,这个构造器可以给工作节点生成JAR文件列表(Java/Scala)或者.egg文件和.zip包文件(Python)。你也可以执行SparkContext.addJar和addFile来动态的创建发送文件。
 
 
监控器
 
每个驱动程序有一个Web UI,典型的是在4040端口,你可以看到有关运行的任务,程序和存储空间大小等信息。你可以在浏览器中输入简单的URL方式来访问:http://<驱动节点>::4040.监控器也可以指导描述其它监控信息。(如果你使用的Spark YARN 模式的,只有运行Spark才能看到UI页面,你停止了,log数据就没了,但你可以将log持久化)。
 
任务调度
 
Spark可以通过在应用外(集群管理水平)和应用里(如果在同一个SparkContext中有多个计算指令)资源分配。

【Spark】----Spark on Yarn的更多相关文章

  1. 【原】Spark on YARN

    在YARN上运行Spark 在Spark0.6.0版本开始支持YARN模式,随后的版本在逐渐地完善. 在YARN上启动Spark 确保HADOOP_CONF_DIR或YARN_CONF_DIR属性的值 ...

  2. 【转】Spark on Yarn遇到的几个问题

    本文转自 http://www.cnblogs.com/Scott007/p/3889959.html 1 概述 Spark的on Yarn模式,其资源分配是交给Yarn的ResourceManage ...

  3. 【转】Spark:一个高效的分布式计算系统

    原文地址:http://tech.uc.cn/?p=2116 概述 什么是Spark Spark是UC Berkeley AMP lab所开源的类Hadoop MapReduce的通用的并行计算框架, ...

  4. 【CDN&plus;】 Spark 的入门学习与运行流程

    前言 上文已经介绍了与Spark 息息相关的MapReduce计算模型,那么相对的Spark的优势在哪,有哪些适合大数据的生态呢? Spark对比MapReduce,Hive引擎,Storm流式计算引 ...

  5. 【Spark】【复习】Spark入门考前概念相关题复习

    Spark考前概念相关题复习 AUthor:萌狼蓝天 哔哩哔哩:萌狼蓝天 博客园:我的文章 - 萌狼蓝天 博客:萌狼工作室 - 萌狼蓝天 (mllt.cc) 选择题 Hadoop 1.HADOOP的三 ...

  6. 【转】Spark History Server 架构原理介绍

    [From]https://blog.csdn.net/u013332124/article/details/88350345 Spark History Server 是spark内置的一个http ...

  7. 【Spark】Spark任务调度相关知识

    文章目录 准备知识 DAG 概述 shuffle 概述 SortShuffleManager 普通机制 bypass机制 Spark任务调度 流程 准备知识 要弄清楚Spark的任务调度流程,就必须要 ...

  8. 【转】Spark源码分析之-scheduler模块

    原文地址:http://jerryshao.me/architecture/2013/04/21/Spark%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90%E4%B9%8B- ...

  9. 【转】Spark源码分析之-deploy模块

    原文地址:http://jerryshao.me/architecture/2013/04/30/Spark%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90%E4%B9%8B- ...

  10. 【转载】Spark学习——入门

    要学习分布式以及数据分析.机器学习之类的,觉得可以通过一些实际的编码项目入手.最近Spark很火,也有不少招聘需要Spark,而且与传统的Hadoop相比,Spark貌似有一些优势.所以就以Spark ...

随机推荐

  1. Oracle触发器反向调用Java程序

    导入jar包 在oracle中导入需要的jar包,我们把编辑好的java类打成jar包,直接在oarcle里面写简单的调用就可以了, 1.操作系统需要拥有支持loadjava命令的jdk. 2.加载j ...

  2. 浅析基本AI五子棋算法

    五子棋是所有棋类博弈中比较简单的了,这里介绍的也只是一种非常基本的AI策略.其实,包括之前的AI贪吃蛇,感觉这两个AI其实体现的都是一种建模思想,把一个现实中的问题模型化,抽象化,得到其一般特征,再设 ...

  3. Linux 压缩系列常用命令

    tar 命令: http://man.linuxde.net/tar zip 命令: http://man.linuxde.net/zip unzip 命令: http://man.linuxde.n ...

  4. 一个服务器上面配置多个IP ,实现指定IP的域名请求

    //配置多个IP命名using System.Net; //********************************************************************** ...

  5. Windows cmd 颜色,字体,color font set up

    windows的cmds默认的字体很丑,丑的不认直视,『如花』一般. 但是总有用到的时候 这是我有优化的一种结果,怎么来弄呢 要字体颜色漂亮,先要在注册表的Console中注册你要使用的字体,这个至关 ...

  6. js保留两位小数数字

    /* * @descript: 保留两位小数,如果小数点大于两位小数,就向上取值保留两位小数<br/> * @time 2016-07-13 */function mathCeil(num ...

  7. 如何修复使用WSUS进行升级Win 10 更新1809的报错(0x8024200)

    备注:该文档有另一个姊妹篇,介绍如何修复下游服务器一直有处于需要文件下载的状况. /* Style Definitions */ table.MsoNormalTable {mso-style-nam ...

  8. 【Devops】【docker】【CI&sol;CD】Jenkins自动安装JDK需要提供Oracle的账号密码,否则报错:Unable ro auto-install JDK until the license is accepted

    Jenkins自动安装JDK需要提供Oracle的账号密码,否则报错:Unable ro auto-install JDK  until the  license is accepted 解决方法: ...

  9. SQLite的Integer类型

    SQLite 中的 INTEGER:带符号的整型,具体取决有存入数字的范围大小,根据大小可以使用1,2,3,4,6,8字节来存储. 在SQLite中,存储分类和数据类型也有一定的差别,如INTEGER ...

  10. java&amp&semi;nbsp&semi;POP3

    package com.skyzoo.Jutil; import java.io.BufferedReader; import java.io.IOException; import java.io. ...