在使用 Apache Spark 的时候,作业会以分布式的方式在不同的节点上运行;特别是当集群的规模很大时,集群的节点出现各种问题是很常见的,比如某个磁盘出现问题等。我们都知道 ApacheSpark 是一个高性能、容错的分布式计算框架,一旦它知道某个计算所在的机器出现问题(比如磁盘故障),它会依据之前生成的 lineage 重新调度这个 Task。

我们现在来考虑下下面的场景:

• 有个节点上的磁盘由于某些原因出现间歇性故障,导致某些扇区不能被读取。假设我们的 Spark 作业需要的数据正好就在这些扇区上,这将会导致这个 Task 失败。

• 这个作业的 Driver 获取到这个信息,知道 Task 失败了,所以它会重新提交这个 Task。

• Scheduler 获取这个请求之后,它会考虑到数据的本地性问题,所以很可能还是把这个 Task 分发到上述的机器,因为它并不知道上述机器的磁盘出现了问题。

• 因为这个机器的磁盘出现问题,所以这个 Task 可能一样失败。然后 Driver 重新这些操作,最终导致了 Spark 作业出现失败!

上面提到的场景其实对我们人来说可以通过某些措施来避免。但是对于 Apache Spark 2.2.0 版本之前是无法避免的,不过高兴的是,来自 Cloudera 的工程师解决了这个问题:引入了黑名单机制 Blacklist(详情可以参见SPARK-8425,具体的设计文档参见Design Doc for Blacklist Mechanism),并且随着 Apache Spark 2.2.0 版本发布,不过目前还处于实验性阶段。

黑名单机制其实是通过维护之前出现问题的执行器(Executors)和节点(Hosts)的记录。当某个任务(Task)出现失败,那么黑名单机制将会追踪这个任务关联的执行器以及主机,并记下这些信息;当在这个节点调度任务出现失败的次数超过一定的数目(默认为2),那么调度器将不会再将任务分发到那台节点。调度器甚至可以杀死那台机器对应的执行器,这些都可以通过相应的配置实现。

我们可以通过 Apache Spark WEB UI 界面看到执行器的状态(Status):如果执行器处于黑名单状态,你可以在页面上看到其状态为 Blacklisted ,否则为 Active。如下图所示:

拥有了黑名单机制之后,上面场景的问题就可以很好的解决。

目前黑名单机制可以通过一系列的参数来控制,主要如下:

因为黑名单机制目前还处于实验性状态,所以上面的一些参数可能会在后面的 Spark 中有所修改。

结语

感谢您的观看,如有不足之处,欢迎批评指正。

如果有对大数据感兴趣的小伙伴或者是从事大数据的老司机可以加群:

658558542

欢迎大家交流分享,学习交流,共同进步。(里面还有大量的免费资料,帮助大家在成为大数据工程师,乃至架构师的路上披荆斩棘!)

最后祝福所有遇到瓶颈的大数据程序员们突破自己,祝福大家在往后的工作与面试中一切顺利。

转载于:https://blog.51cto.com/14145734/2342444

Apache Spark 黑名单(Blacklist)机制介绍相关推荐

  1. 使用Apache Spark让MySQL查询速度提升10倍以上

    作者:Alexander Rubin 链接:http://coyee.com/article/11012-how-apache-spark-makes-your-slow-mysql-queries- ...

  2. 提高spark任务稳定性1 - Blacklist 机制

    文章目录 背景 介绍 相关参数 实现细节 TaskSetBlacklist BlacklistTracker 黑名单判断的时机 如果所有的节点都被加入了黑名单? 结语 背景 一个 spark 应用的产 ...

  3. Apache Spark 介绍的演讲ppt (slice),全英文

    这里是本人制作的Apache Spark 介绍的演讲ppt,全英文.这里粘贴部分截图,具体可到相应的链接下载ppt文件,ppt文件中有动画: 下载地址:https://download.csdn.ne ...

  4. 新版本来袭:Apache Spark 1.5新特性介绍

    Apache Spark社区2015年9月9日发布了1.5版本,该版本由230+开发人员和80+机构参与,修复了1400多个补丁,该版本可以通过 http://spark.apache.org/dow ...

  5. Apache Spark 1.5新特性介绍

    Apache Spark社区刚刚发布了1.5版本,大家一定想知道这个版本的主要变化,这篇文章告诉你答案. DataFrame执行后端优化(Tungsten第一阶段) DataFrame可以说是整个Sp ...

  6. Apache Spark开发介绍

    Databricks的工程师,Apache Spark Committer介绍了Databricks和Spark的历史,包括了Spark 1.4中的重要特性和进展,涵盖了Spark早期版本的主要功能和 ...

  7. Apache Spark基础知识

    我的spark学习笔记,基于Spark 2.4.0 目录 一.简介 二.RDD编程 1 RDD介绍 2 RDD操作 2.0 读操作 2.1 常用Tramsformation算子 2.2 常用Actio ...

  8. Apache Spark 3.0 DStreams-Streaming编程指南

    目录 总览 一个简单的例子 基本概念 连结中 初始化StreamingContext 离散流(DStreams) 输入DStreams和接收器 基本资料 进阶资源 自订来源 接收器可靠性 DStrea ...

  9. 通过案例对 spark streaming 透彻理解三板斧之三:spark streaming运行机制与架构

    本期内容: 1. Spark Streaming Job架构与运行机制 2. Spark Streaming 容错架构与运行机制 事实上时间是不存在的,是由人的感官系统感觉时间的存在而已,是一种虚幻的 ...

  10. Apache Spark探秘:三种分布式部署方式比较

    2019独角兽企业重金招聘Python工程师标准>>> 目前Apache Spark支持三种分布式部署方式,分别是standalone.spark on mesos和 spark o ...

最新文章

  1. 浅谈民用无人机的行业化应用场景
  2. Chrome 技术篇-console控制台检测xpath、css唯一性
  3. 数据库被挂马的ASP处理方法
  4. 福州大学计算机学院董晨老师,福州大学代表队高分斩获第三届福建省高校网络空间安全大赛冠军...
  5. mybatis使用char类型字段查询oracle数据库时结果查询不到的问题
  6. 剑指offer——面试题54:表示数值的字符串
  7. d盘信号灯超时时间已到_20下教师资格证笔试成绩什么时候公布?今年面试是什么时候?这些时间节点抢先了解!...
  8. 打开 IBM Rational Rose Enterprise Edition 报错的处理
  9. antd使用g2plot统计图表(7)
  10. 10个免费图片站点(2020年最新)
  11. 大数据从入门到实战 --HDFS系统初体验
  12. 如何使用python画一个爱心
  13. 【前端——Node.js】:Express、数据库与身份认证
  14. 测试ip 或者 ip+端口 是否畅通
  15. webservice返回值为Map类型的处理方法
  16. 参考文献起止页码怎么写_怎么看论文的起止页码
  17. 全瓷牙冠-市场现状及未来发展趋势
  18. Java操作redis设置第二天凌晨过期
  19. C语言导致键盘按键错乱,c语言获得键盘的按键
  20. Python——十进制转十六进制

热门文章

  1. Atitit 传媒学院专业与课程表艾提拉总结 目录 1. 媒体分为感觉媒体、表示媒体、表现媒体、存储媒体和传输媒体 1 1.1. 1、感觉媒体 如文字、数据、声音、图形、图像等。 1 1.2. 表示
  2. Atitit 知识图谱 知识抽取 信息抽取的总结艾提拉总结 目录 1. 知识抽取 1 2. 数据源主要来自两种渠道( 2 2.1. 内部结构化数据vs 外部网页数据 2 3. 2. 知识图谱的数据来
  3. Atiitt 关于不可替代性的思索 目录 1.1. 不可替代性与 这份工作谁都能干无关 1 1.2. 不可替代性未必很好,因为其岗位可能很累或者收入很低 1 1.3. 不可替代性与报酬无关 1 2
  4. Atitit 研发体系 之道 attilax著 艾龙著 1. 发管理是一个完整的管理体系,从结构上来讲,它主要由四个方面的内容构架而成:组织结构与岗位设置 管理流程与工作流程、、项目及管道管理(
  5. linux:云端 ubuntu下挂载数据盘
  6. Gartner数据:RPA以75.6%增长率成2019年Q1增速最快的企业级软件(附全球十大RPA市场数据)
  7. (转)是时候说说Pivotal这个富二代了!
  8. 阿里云-高性能计算招聘
  9. php lumen timestamp,Lumen 5.4 时区设置
  10. java基础教程 吴仁群 试读_清华大学出版社-图书详情-《Java基础教程》