如何通过 EMR 构建弹性低成本离线海量日志大数据分析

点击上方蓝字关注我们,获取最新技术资讯

内容概述

本实践结合阿里云 EMR 以及日志服务 LOG 、对象存储 OSS 、抢占式 ECS 实例、弹性伸缩等产品,以电商网站日志埋点采集存储投递并利用 EMR 进行日志消费分析来展示了如何构建弹性低成本的离线海量日志大数据分析最佳实践。

场景描述

主流的三大分布式计算框架系统分别为 Hadoop 、Spark 和 Storm ,  Hadoop 可以运用在很多商业应用系统,可以轻松集成结构化、半结构化以及非结构化数据集, Spark 采用了内存计算,允许数据载入内存作反复查询,融合数据仓库、流处理和图形计算等多种计算范式, Spark 能够与 Hadoop 很好地结合,Storm 用于处理高速、大型数据流的分布式实时计算系用,为 Hadoop 添加可靠的实时数据处理能力。

海量离线数据分析可以应用于多种商业系统环境,例如电商海量日志分析、用户行为画像分析;科研行业例如海量离线计算分析和数据查询;游戏行业的游戏日志分析、用户行为分析;商业用户数据仓库解决方案的 BI 分析、多维分析报表;大型企业的海量 IT 运维日志分析等。

方案架构

方案优势

  • 弹性低成本,集群快速部署

  • 支持多种大数据计算模式

  • 无缝对接开源生态

  • 一站式管理平台

解决问题

  • 大数据平台运维管理成本高

  • 计算资源弹性能力不足

  • 海量日志数据下的存储容量不足

  • 离线分析场景下的计算资源成本控制

内容概览

重点节选"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机制重新启动执行任务在”弹性伸缩记录”可以查看机器组机器的扩容和缩容记录

????完整最佳实践内容,直接点击下方“ 阅读原文 ”获取,具体了解 EMR 弹性低成本离线大数据分析最佳实践 !

END

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

????戳阅读原文,具体了解最佳实践~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值