内容概述

弹性低成本,集群快速部署
支持多种大数据计算模式
无缝对接开源生态
一站式管理平台
大数据平台运维管理成本高
计算资源弹性能力不足
海量日志数据下的存储容量不足
离线分析场景下的计算资源成本控制
内容概览

重点节选"EMR集群Task节点弹性伸缩"介绍
1. 本实践使用OSS作为EMR的后端存储实现典型的“计算与存储分离“的大数据分析架构,从EMR 3.20.0开始,阿里云EMR已经支持JindoFS来解决在大规模数据计算下场景下出现的由于大量小文件查询、长作业、列式存储带来的对象存储的HTTP(S)效率不够高效、OSS宽带限制等带来的影响分析作业效率的问题;目前阿里云EMRJindoFS已经支持EMR集群上的大部分计算组件,包括Hadoop、Hive、Spark、Flink、Presto、Impala等;如果用户在使用OSS作为EMR后端存储在大数据计算分析时出现由于上述原因导致的性能问题,可以考虑开启JindoFS(SmartData服务);本实践暂未开启JindoFS,如何开启与配置阿里云EMRJindoFS服务请根据对应的EMR版本查阅阿里云官网帮助文档;
2. 对于EMR的后端存储使用OSS还是云盘HDFS存储,一般可以从数据迁移、计算性能、数据可用性、弹性存储、弹性计算、计量计费、数据湖与数据集成、冷数据与生命周期这几个维度再结合用户的实际场景业务需求来决定,可以参考如下文章的一些说明:https://yq.aliyun.com/articles/371984
硬件配置,这里以按量付费,可用区选择创建的可用区C,集群实例的Master实例、Core实例、Task实例均选择4核16G,通用型ecs.g5.xlarge,系统盘为SSD云盘120GB,数据盘为SSD云盘80GB;Master实例和Core选择2台,Task实例选择1台为例(实际集群实例规格选择需用户根据实际业务需求选择),开启高可可用
1. 不同节点实例上部署的服务进程不同,例如对于集群类型为Hadoop的EMR集群,Master节点部署Hadoop HDFS的NameNode服务,Hadoop YARN的Resource Manager服务;Core节点部署DataNode服务,Hadoop YARN的NodeManager服务;Task节点只进行计算,为增加算力进行设计,默认关闭,需要时可以添加,只部署Hadoop YARN的NodeManager服务,不存储数据。
注:EMR集群默认不开启公网访问,如需通过公网访问,需要给Master节点挂载EIP,本实践为了演示方便,给Master节点挂载了EIP进行访问,具体挂载过程不再赘述。勾选服务条款协议,确认配置完成集群创建集群创建成功以后,可以在“集群管理”-“服务列表”查看集群所能支持的服务如下

创建弹性伸缩集群
EMR控制台进入“集群列表”单击选择创建的集群,选择“弹性伸缩”,在”弹性伸缩”>”弹性伸缩配置”里选择”新建弹性伸缩组”,然后选择需要的计算机型和配置以及付费类型等,创建机器组

对新建的机器组配置弹性伸缩规则



添加扩容和缩容规则,伸缩规则支持按照规定时间伸缩和按照规定负载伸缩,这里为了演示方便,进行按规定时间进行伸缩,用户可以根据实际业务场景需要灵活选择按照时间或者负载进行伸缩




同时需要注意:
1. 按照规定时间进行伸缩,扩容和缩容规则的设置间隔时间必须大于30分钟;
2. 弹性伸缩规则可能由于各种原因到了规定的时间无法执行,建议用户设置合理的重试过期时间(支持设置为0到21600秒),在重试过期时间段内,会每隔30秒尝试执行一次弹性伸缩活动,本实践设置为120秒为例;
3. 如果当前弹性伸缩出的实例数小于弹性伸缩活动设置的最小实例数,一般会立即触发扩容先满足伸缩最小实例数(与设置的规则无关系)
4. 冷却时间请用户根据实际对伸缩活动与业务的关系进行设置;
5. EMR仅Task实例(不会部署HDFS,不存储数据,仅用于计算提升集群的计算力)可以支持弹性伸缩,并且可以选择抢占式实例,在使用抢占式实例进行Spark/MR/Flink等任务计算时,可能会由于抢占式实例被释放导致任务失败或者作业失败,需要YARN的Failover机制重新启动执行任务在”弹性伸缩记录”可以查看机器组机器的扩容和缩容记录

END
阿里巴巴开源大数据技术团队成立 Apache Spark中国技术社区,定期推送精彩案例,技术专家直播,问答区 Spark 技术同学在线提问答疑,只为营造纯粹的 Spark 氛围,欢迎钉钉扫码加入!





