阿里云EMR2.0平台:让大数据更简单_emr 数据-程序员宅基地

技术标签: 云原生  阿里云  云栖号技术分享  云计算  

摘要:本文整理自阿里云资深技术专家李钰(绝顶)在 阿里云EMR2.0线上发布会 的分享。本篇内容主要分为三个部分:
1.EMR 平台概述
2.EMR2.0 新平台核心能力
3.总结

一、EMR 平台概述

EMR 平台是开源大数据的云原生运行环境,阿里云EMR 根据云原生的特点,在弹性伸缩、稳定性、智能化和研发效能四个方面进行了大量的功能优化:

  • Elasticity 弹性伸缩,算力按需申请释放,突破IDC物理限制;
  • Stability 稳定性,故障节点自动替换补偿,关键事件自动告警;
  • Intelligence 智能化,智能探查资源浪费,预警集群潜在风险;
  • Efficiency 研发效能,业务高效开发调试,作业一键调度上线。

二、EMR2.0 新平台核心能力

Elasticity 弹性

基于时间的弹性伸缩能力

  • 弹性规则:定时增加或者减少 ECS 实例数量;
  • 适用场景:业务负载变化存在时间周期性;
  • 成本节省:通过采取这种策略,与预置固定资源相比可以节省大量资源;使用抢占式实例可以进一步降低成本;
  • 使用方式:在节点组上设置扩容规则的时候,选择按时间扩容;支持以下设置:执行频率和执行时间;规则的有效期;重试过期时间;单次扩容的节点数等。

基于指标的弹性伸缩能力

  • 弹性规则:通过预设的基于负载指标的规则,动态调整 ECS 实例数量;
  • 适用场景:业务负载动态变化,无固定时间周期性;
  • 成本节省:通过采取这种策略,可以动态的适应业务负载的变化;使用抢占式实例可以进一步降低成本;
  • 使用方式:在节点组上设置扩容规则的时候,选择按负载扩容;支持以下设置:集群负载指标(比如“YARN 资源队列 pending 应用数”);指标统计周期和统计规则;重复几次后扩容;单次扩容的节点数;冷却时间等。

支持抢占式实例

  • 能力:支持实例规格筛选,单节点组可选择多达10种不同规格;成本优化策略支持自动选取低价实例规格出价;
  • 效果:生产实证可降低80%+成本;典型客户案例支撑;
  • 使用方式:
    • 创建抢占式实例节点组:在集群创建完成后,新增抢占式实例的节点组;
    • 选择实例规格:
      • 节点组的配置中选择抢占式实例规格,最多可以选择十种规格,可以根据每种规格的释放率和折扣率进行取舍;
      • 同时也支持按照资源筛选规格,比如:4核16G;
    • 支持两种不同的策略:
      • 优先级策略,节点组所有实例都必须使用抢占式实例,然后按照设定的优先级顺序申请抢占式实例;
        • 优势:最大化的降低成本;
        • 劣势:抢占式实例库存不足时,业务无法及时获取到所需资源;
      • 成本优化策略,会智能的优先使用抢占式实例,在抢占式实例库存不足时会补充按量实例;
        • 优势:在及时响应业务资源需求和综合成本上达到较好的平衡。

性能大幅提升

EMR新平台相比于老平台在性能上得到了大幅提升,主要体现在以下三个方面:

a. 高并行能力

  • 节点组内和多节点组间均支持并行扩容
  • 支持缩容期间并行扩容,支持突发业务变化

b. 快速响应能力

  • 更高的弹性速度,100节点扩容时间<2分钟
  • 更快的感应速度,指标检测周期<30秒;

c. 大规模服务能力

  • 单次支持扩容节点数>1000;

下图中右边的柱状图显示了 EMR1.0 和 EMR2.0 平台弹性扩容速度的对比,可以看到,EMR2.0 新平台对于不同规模的弹性扩容速度都可以稳定的控制在两分钟之内,扩容时间不会随扩容节点数增加线性增长。

Stability 稳定性

支持节点故障容忍和补偿

EMR新平台支持节点故障容忍和补偿,主要体现在两个方面:

a. 故障节点不影响扩容

  • Core/Task 节点 CPU 打满不影响扩容;
  • Core/Task 节点 OS Hang 不影响扩容;
  • Core/Task 节点宕机不影响扩容;

b. 计算节点故障自动替换补偿

  • Task 节点 OS Hang 支持自动补偿;
  • Task 节点磁盘满支持自动补偿;
  • Task 节点网络问题支持自动补偿;

节点故障容忍和补偿需要手动开启。根据后台统计,在开启后,集群全场景稳定性可提升1个9。

更加全面的服务巡检和事件通知

a. 服务巡检

  • 集群服务页面可以看到所有的大数据引擎服务,以及每个引擎组件的健康状态;
  • 针对不同组件的健康检查项进行持续巡检,并实时上报;
  • 帮助用户及时发现和解决问题;

b. 事件通知

  • 在集群监控页面,增加了事件中心,事件可按时间/类型/等级进行筛选;
    • 比如:在下图右下的截图中显示Critical等级事件“Spark_HistoryServer组件健康状态异常”,用户可以筛选Critical级别事件,并进行针对性的处理;
  • 关键性事件可订阅实时告警,从而更及时的发现问题并进行处理;

Intelligence 智能化

EMR 新平台智能化能力主要体现在 EMR 新产品 EMR Doctor 的能力。EMR Doctor 致力于帮助用户更好的进行大数据集群的管理和运维。

EMR Doctor 通过集群日报和实时检测的功能达到避免资源浪费、风险提前预警和实时分析建议的核心效果。

EMR Doctor 避免资源浪费

a. 通过健康检查服务的集群日报功能查看集群是否存在资源浪费;

  • 针对集群日报中不健康的报告可以点击“查看报告”;
  • 比如:在下图左下的截图中显示“内存利用率较低”;

b. 通过任务评分倒排 Top N,找到资源浪费最多的作业进行优化;

  • 在发现“内存利用率较低”的问题后进入详情页面找到资源浪费最多的作业;
  • 点击进入作业详情页面,根据提供的优化建议对这些作业进行优化;

c. 通过持续优化,最大化利用资源,避免浪费。

EMR Doctor 风险提前预警

集群日报功能的另一个核心效果是风险提前预警。

a. 可能影响集群健康的问题

  • 小文件或者冷数据占比过大;
  • 数据本地化率低;
  • 计算任务激增导致资源消耗过快;

b. 可能的解决方案:

  • 小文件数量过多:提前进行整合处理;
  • 冷数据占比过大:进行数据分层,将冷数据分层放置到低成本存储(例如 OSS)上,降低整体成本;
  • 数据本地化率低:进行提前提升,避免业务访问延迟
  • 计算任务激增导致资源消耗过快:提前增加资源,避免资源不足导致的业务等待和受损;

总体来说,针对集群出现的健康问题,集群日报能够给出预警,实现提前发现、提前处理。

EMR Doctor 实时分析建议

  • 通过健康检查服务的实时检测功能,触发实时分析并查看建议;
  • 实时检测功能覆盖 Yarn 队列实时资源用量,当前资源浪费作业 Top N,存储数据实时本地化率等;
  • 集群整体变慢或者业务无法提交时,可以触发实时检测辅助诊断和运维。

Efficiency 研发效能

EMR 新平台推出全新 EMR Studio 的 Serverless 服务,主要包括两方面:全托管 Notebook 服务和全托管 Workflow 服务,通过这两个服务实现交互式大数据开发和调式,以及一键式作业调度上线的功能。

EMR Studio 交互式大数据开发和调试

  • EMR Studio 全托管 Notebook 服务:支持多种大数据引擎,包括:Spark、Hive、Trino、Impala、ClickHouse、StarRocks 等;
  • 即开即用,没有集群创建流程,无需额外购买云资源;
  • 兼容 Jupyter 使用习惯,无缝对接 EMR 各计算/存储引擎,方便用户通过 Notebook 提交作业到 EMR 资源集群,进行运行和验证。

EMR Studio 一键式大数据作业调度和上线

  • EMR Studio 全托管 Workflow 服务;
  • 即开即用,没有集群创建流程,无需额外购买云资源;
  • 兼容 Apache DolphinScheduler,无缝对接 EMR 集群;方便用户在工作流定义中加入 EMR Notebook 上面已经开发和调试完的作业,进行调度和上线;

同时,EMR Studio Workflow 还计划支持调度其他云产品创建的作业,比如阿里云VVP 等。

EMR Notebook 和 Workflow 产品目前均处于邀测状态,欢迎有兴趣的朋友联系我们申请试用。

总结:EMR 新平台的“黑科技”

最后,让我们一起回顾一下EMR新平台的“黑科技”。

a. Elasticity 降本增效

  • 快速灵活的弹性伸缩能力;
  • 全方位支持抢占式实例;

b. Stability 稳定便捷

  • 故障节点自动发现和补偿;
  • 自动实时巡检;
  • 事件告警通知;

c. Intelligence 智能辅助

  • 避免资源浪费;
  • 风险提前预警;
  • 实时分析建议;

d. Efficiency 高效开发

  • 交互式开发调试;
  • 一键调度上线;

以上是 EMR 2.0 新平台的核心能力,欢迎大家使用和反馈。

原文链接

本文为阿里云原创内容,未经允许不得转载。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/yunqiinsight/article/details/129156823

智能推荐

c# 调用c++ lib静态库_c#调用lib-程序员宅基地

文章浏览阅读2w次,点赞7次,收藏51次。四个步骤1.创建C++ Win32项目动态库dll 2.在Win32项目动态库中添加 外部依赖项 lib头文件和lib库3.导出C接口4.c#调用c++动态库开始你的表演...①创建一个空白的解决方案,在解决方案中添加 Visual C++ , Win32 项目空白解决方案的创建:添加Visual C++ , Win32 项目这......_c#调用lib

deepin/ubuntu安装苹方字体-程序员宅基地

文章浏览阅读4.6k次。苹方字体是苹果系统上的黑体,挺好看的。注重颜值的网站都会使用,例如知乎:font-family: -apple-system, BlinkMacSystemFont, Helvetica Neue, PingFang SC, Microsoft YaHei, Source Han Sans SC, Noto Sans CJK SC, W..._ubuntu pingfang

html表单常见操作汇总_html表单的处理程序有那些-程序员宅基地

文章浏览阅读159次。表单表单概述表单标签表单域按钮控件demo表单标签表单标签基本语法结构<form action="处理数据程序的url地址“ method=”get|post“ name="表单名称”></form><!--action,当提交表单时,向何处发送表单中的数据,地址可以是相对地址也可以是绝对地址--><!--method将表单中的数据传送给服务器处理,get方式直接显示在url地址中,数据可以被缓存,且长度有限制;而post方式数据隐藏传输,_html表单的处理程序有那些

PHP设置谷歌验证器(Google Authenticator)实现操作二步验证_php otp 验证器-程序员宅基地

文章浏览阅读1.2k次。使用说明:开启Google的登陆二步验证(即Google Authenticator服务)后用户登陆时需要输入额外由手机客户端生成的一次性密码。实现Google Authenticator功能需要服务器端和客户端的支持。服务器端负责密钥的生成、验证一次性密码是否正确。客户端记录密钥后生成一次性密码。下载谷歌验证类库文件放到项目合适位置(我这边放在项目Vender下面)https://github.com/PHPGangsta/GoogleAuthenticatorPHP代码示例://引入谷_php otp 验证器

【Python】matplotlib.plot画图横坐标混乱及间隔处理_matplotlib更改横轴间距-程序员宅基地

文章浏览阅读4.3k次,点赞5次,收藏11次。matplotlib.plot画图横坐标混乱及间隔处理_matplotlib更改横轴间距

docker — 容器存储_docker 保存容器-程序员宅基地

文章浏览阅读2.2k次。①Storage driver 处理各镜像层及容器层的处理细节,实现了多层数据的堆叠,为用户 提供了多层数据合并后的统一视图②所有 Storage driver 都使用可堆叠图像层和写时复制(CoW)策略③docker info 命令可查看当系统上的 storage driver主要用于测试目的,不建议用于生成环境。_docker 保存容器

随便推点

网络拓扑结构_网络拓扑csdn-程序员宅基地

文章浏览阅读834次,点赞27次,收藏13次。网络拓扑结构是指计算机网络中各组件(如计算机、服务器、打印机、路由器、交换机等设备)及其连接线路在物理布局或逻辑构型上的排列形式。这种布局不仅描述了设备间的实际物理连接方式,也决定了数据在网络中流动的路径和方式。不同的网络拓扑结构影响着网络的性能、可靠性、可扩展性及管理维护的难易程度。_网络拓扑csdn

JS重写Date函数,兼容IOS系统_date.prototype 将所有 ios-程序员宅基地

文章浏览阅读1.8k次,点赞5次,收藏8次。IOS系统Date的坑要创建一个指定时间的new Date对象时,通常的做法是:new Date("2020-09-21 11:11:00")这行代码在 PC 端和安卓端都是正常的,而在 iOS 端则会提示 Invalid Date 无效日期。在IOS年月日中间的横岗许换成斜杠,也就是new Date("2020/09/21 11:11:00")通常为了兼容IOS的这个坑,需要做一些额外的特殊处理,笔者在开发的时候经常会忘了兼容IOS系统。所以就想试着重写Date函数,一劳永逸,避免每次ne_date.prototype 将所有 ios

如何将EXCEL表导入plsql数据库中-程序员宅基地

文章浏览阅读5.3k次。方法一:用PLSQL Developer工具。 1 在PLSQL Developer的sql window里输入select * from test for update; 2 按F8执行 3 打开锁, 再按一下加号. 鼠标点到第一列的列头,使全列成选中状态,然后粘贴,最后commit提交即可。(前提..._excel导入pl/sql

Git常用命令速查手册-程序员宅基地

文章浏览阅读83次。Git常用命令速查手册1、初始化仓库git init2、将文件添加到仓库git add 文件名 # 将工作区的某个文件添加到暂存区 git add -u # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,不处理untracked的文件git add -A # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,包括untracked的文件...

分享119个ASP.NET源码总有一个是你想要的_千博二手车源码v2023 build 1120-程序员宅基地

文章浏览阅读202次。分享119个ASP.NET源码总有一个是你想要的_千博二手车源码v2023 build 1120

【C++缺省函数】 空类默认产生的6个类成员函数_空类默认产生哪些类成员函数-程序员宅基地

文章浏览阅读1.8k次。版权声明:转载请注明出处 http://blog.csdn.net/irean_lau。目录(?)[+]1、缺省构造函数。2、缺省拷贝构造函数。3、 缺省析构函数。4、缺省赋值运算符。5、缺省取址运算符。6、 缺省取址运算符 const。[cpp] view plain copy_空类默认产生哪些类成员函数

推荐文章

热门文章

相关标签