EMR 弹性数据湖分析最佳实践

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
对象存储 OSS,20GB 3个月
简介: 本最佳实践讲解了如何基于阿里云产品快速搭建一个企业级的离线日志大数据分析系统,这里以搭建一个电商网站用户访问行为日志分析系统为例。
直达最佳实践:【 https://bp.aliyun.com/detail/36
观看视频:【 https://yqh.aliyun.com/live/detail/21999
阿里云最佳实践目前已覆盖23类常用场景,有200多篇最佳实践,这其中涉及110款以上阿里云产品的最佳使用场景。目前,最佳实践已成功帮助大量客户实现自助上云。

分享人

  • 解决方案架构师-明誉
  • 阿里云计算平台事业部产品经理-子关

本篇内容将从3个部分为读者介绍关于EMR弹性低成本离线大数据分析最佳实践,希望可以让大家对EMR有更深入的了解,并可以将这些特性应用到项目中,达到降本提效的目的。

  • 最佳实践原理讲解
  • EMR核心产品讲解
  • 最佳实践系统搭建

一、最佳实践方案讲解

1. 分析效果

image.png
在上图的demo中,分别进行了Hive on MR 和 Hive on tez 的日志数据分析, Hive on tez 的执行效率优于Hive on MR 。目前EMR的Hive引擎支持 Hive on tez 。
展示了完整的电商网站 demo 搭建、日志埋点、日志产生、日志投递、分析作业和分析工作流的建立,EMR计算集群弹性伸缩等核心步骤和能力可以参考本实践来熟悉如何基于阿里云公有云产品搭建和完善自己的离线大数据日志分析系统。

2. 场景描述

  1. 本最佳实践讲解了如何基于阿里云产品快速搭建一个企业级的离线日志大数据分析系统,这里以搭建一个电商网站用户访问行为日志分析系统为例。
  2. 其中用到的核心产品是阿里云推出的大数据分析平台EMR,其提供了一站式的大数据系统处理解决方案。
  3. 本最佳实践利用EMR结合阿里云日志服务SLS、对象存储OSS和云数据库RDS MySOL 版等产品构建一个海量低成本弹性的离线电商网站用户访问行为日志大数据分析系统。

适用客户有以下:互联网行业客户,例如电商交易客户等;业务为需要进行离线大数据分析,例如用户网站访问行为日志;数据已经使用了阿里云EMR或者准备使用;具备1-5名有Hadoop背景的工程人员;原有服务基于开源算法体系,但是受限现有人员和成本无法进一步提升。

3. 系统架构图

最佳实践的产品列表
image.png
系统架构是使用了阿里云的CADT工具进行部署,用户也可以根据本最佳实践提供的系统架构图进行一键式的本系统资源构建和部署最后用于实践的测试和验证。
image.png

4. 核心产品EMR

EMR是阿里云阿里云推出的企业级大数据分析平台E-MapReduce(简称EMR),EMR完全兼容开源Hadoop生态系统,并且基于阿里云大数据团队丰富的研发运维经验对相关组建提供了优化能力,例如权限认证、计算引擎、集群管理、作业管理和调度管理、基础资源的弹性能力等。并且EMR能够与阿里云的其他云产品进行无缝集成,例如本实践里EMR可以直接分析消费存储在OSS上的海量日志,提供了计算存储分离的离线大数据分析架构,方便用户进行运维管理、作业分析的同时,极大的节省了大数据分析系统的计算和存储成本。
image.png

5. 业务流程图

在这个离线大数据分析系统中,首先基于阿里云的SLB、ECS、RDS等云产品搭建了一个简单的电商交易网站,而且在网站页面代码里植入了用户访问行为埋点日志采集,结合阿里云日志服务SLS提供的Webtracking能力将用户访问日志实时传送到SLS的logstore里面。接下来通过SLS的logshipper能力将SLS中存储的日志准实时地投递存储到阿里云的对象存储OSS上面,最后通过阿里云EMR的离线大数据分析引擎Hive消费分析存储在OSS上的日志。在这个过程中展示了EMR在大数据分析作业的作业开发、工作流设计和管理大数据核心系统参数管理等的便捷能力,同时也展现了一迈在底层基础资源的弹性能力。通过本实践用户可以知道如何通过阿里云的多个云产品来完整的构建自己的计算存储分离架构的离线大数据分析系统,优化和节省计算及存储成本,同时也可以简化用户的大数据分析系统的运维成本。
image.png

6. 方案优势

阿里云弹性低成本离线大数据分析系统方案的优势如下:

  • 阿里云云原生产品组合丰富,生态完善。资源丰富,产品组合多样,"日志服务+存储服务+大数据分析平台"组合使用。
  • 阿里云具有成熟的企业级大数据分析平台EMR。完全兼容开源生态系统,并在开源生态基础上强化; 伴随社区生态的发展,全球部署;完整的企业级一体化平台,支持集群管理、作业管理&调度管理。
  • EMR可以提供计算与存储分离的大数据分析平台。 计算与存储分离架构,优化用户资源成本;计算资源弹性伸缩、集群快速部署。

二、EMR核心产品讲解

1. EMR软件栈

EMR是阿里云上一款开源大数据平台产品,EMR主要由四个主要组成部分。
image.png

  • 第一部分是对接开源生态,这部分主要对接了常用的开源大数据产品,产品和组件包括HDFS、YARN、Kudu等存储计算引擎,这部分100%采用开源组建,用户是在使用的时候可以完全无缝与现有的大数据产品使用习惯完全相同。
  • 第二部分是EMR在完全兼容开源API接口基础上实现了内核的核心增强,比如Spark、Flink、TensorFlow、Delta Lake等开源组件。
  • 第三部分是EMR自研的包括监控告警、智能运维、JindoFS、EMR Agent等集群管理和在使用开源大数据组件时和云生态对接的一些功能。
  • 第四部分是与阿里云密切配合的其他云产品,比如OSS、日志服务SLS、ECS、ECI、ACK等产品。

2. EMR VS开源大数据管理平台

EMR 与开源大数据自建平台相比,具有低成本、大规模、丰富云生态、高性能四个核心性能的增强。
在成本方面,通过实现弹性伸缩、Spot+预留实例的购买方式实现了计算成本降低20%以上,实现数据全生命周期管理、数据分层存储使存储成本降低了10%以上。
EMR具有丰富的集群管理经验,能够在数千台的大规模集群上实现快速的向HDFS、DataNode、NameNode的滚动重启、DAtaNode的Decommission优化、YARN大规模资源调度优化等功能。
EMR与开源云生态的结合,Dataworks、PAI是计算平台优秀的工作流处理和管理以及机器学习工具,可以与EMR无缝集成。同时EMR基于ECS可以实现一些部署集逻辑严格打散以及E2E的运维流程。
EMR相比较与开源性能大幅提升,如AE、物化视图、runtime filter、Remote Shuffle Service,极大地提升了在计算性能上、计算稳定性上的跃升。

三、最佳实践系统搭建

1. 通过CADT部署资源

  1. 登录云速搭CADT管理控制台。
  2. 单击新建 > 官方模板库新建
    image.png
  3. 找到“EMR弹性低成本离线大数据分析”模板,单击基于方案新建,可以根据具体业务需求使用该公共模版并配置自己需要的参数进行资源架构的创建。

    image.png

  4. 用户配置好相关参数,如VPC设置、vswitch配置、SLB配置、eip配置等等,单击右上角的保存,并设置应用名称
    image.png
  5. 单击部署应用
    image.png
  6. 按界面提示依次完成资源校验、确认应用成本并支付下单,创建资源。
    image.png

    image.png
    image.png

2. 搭建电商网站Demo

RDS数据库配置
  1. 进入 RDS 控制台,找到创建的实例,单击管理,找到并记录 RDS 的内网地址。
    image.png
  2. 进入数据库管理,创建新的数据库。
电商应用安装
  1. 在 SLB 控制台找到之前创建的 SLB 实例的 EIP 地址,进行拷贝,在浏览器打开。
    image.png
    image.png
  2. 检查安装环境
    image.png
  3. 环境正常,进行下一步安装。
  4. 从 RDS 中获取数据库内网访问地址,输入账号密码和数据库名称。
    image.png
  5. 填写电商网站的前台和后台地址,单击下一步
  6. 进行商店个性化配置,选择时区、货币、语言等。

7.进行后台管理员账号配置。请保存好设置的管理员账号和密码,以便后续步骤登录电商后台管理界面使用。
8.开始进行安装,忽略进度条。
image.png

  1. 稍等一会,使用 SLB 的 EIP 地址用浏览器打开,可以访问电商网站前端界面表示安装成功。
    image.png

3. 电商网站日志生产

OSS Bucket相关配置
  1. 在通过 CADT 部署资源中已经使用 CADT 部署了该实践所需的 OSS Bucket。

    image.png

  2. 双击选择创建的 OSS bucket,然后选择文件管理 > 上传文件,将 loghub-tracking.js脚本上传到该 bucket 下。
    image.png
  3. 同样在该 Bucket 的“文件管理”工作界面的 “新建目录”下创建一个名为 tes2 的目录供后续存放从 SLS 投递过来的日志。
    image.png
SLS日志服务WebTracking配置
  1. 在通过 CADT 部署资源中已经通过 CADT 开通了该实践所需的 SLS 的 Project 和logstore,并且开通了 WebTracking 功能,在日志服务控制台的接入数据界面找到WebTracking(支持模糊搜索)。
  2. 开始进行 WebTracking 功能配置。
    image.png
电商网站埋点
  1. 使用之前电商网站搭建时设置的管理员账号和密码登陆电商网站后台管理界面(http://SLB 的 EIP 地址/admin),进入内容配置页面,编辑主站的设计。

    image.png
    image.png

  2. 在 HTML Head 的 Scripts and Style Sheets 处,插入如下内容并保存(可以从附件中拷贝),注:第 2 行的 loghub-tracking.js 存放地址和第 4 行的日志服务 SLS 的 project名和 logstore 名请根据用户自己的实际情况进行修改。
    image.png
    image.png
  3. 访问电商网站页面就会把埋点日志上传到 SLS 日志系统。进入 Logstore 查看日志,模拟用户行为的日志数据已经生成并上传到了日志库。

4. 日志投递到OSS

开启日志投递
  1. 在开启日志服务数据投递到 OSS 之前,用户首先需要完成云资源访问授权,用户访问链接 https://help.aliyun.com/document_detail/29002.html,然后单击云资源访问授权,完成云资源对日志服务的访问授权。
    image.png
  2. logstore 的日志投递到 OSS 需要获取用户的 ARN,接下来获取 ARN,首先进入访问控制(RAM)控制台。
  3. 然后在 RAM 控制台选择“RAM 角色管理”, 单击“AliyunLogDefaultRole”这条 RAM角色,获取用户的 ARN。
  4. 接下来在日志服务控制台单击之间创建的 Project 进入日志库,开始进行日志投递到OSS 的配置;然后单击 OSS 以及“开启投递”,准备投递日志到 OSS 服务的相关配置。
    image.png
    image.png
  5. 单击确定,确定日志投递到 OSS 的配置。
    image.png
  6. 再次使用前面创建的 SLB 的 EIP 地址直接浏览器访问模拟的电商网站,就会执行脚本不停生成新的访问日志。
    image.png
查询OSS上的日志存储
  1. 在日志服务控制台选择创建的日志库,查看日志投递到 OSS 的任务每隔 5 分钟(默认,也可以自定义设置)已经生成并投递成功。

    image.png

  2. 在 OSS 控制台对应的 bucket 下的文件目录可以查询到已投递过来的日志。

5. EMR集群配置

弹性EMR集群
  1. 使用前面的 CADT 工具已经创建好了本实践所需的 EMR 集群。
  2. 硬件配置,按量付费。
  3. EMR 集群默认不开启公网访问,如需通过公网访问,需要给 Master 节点挂载 EIP。
  4. 勾选服务条款协议,确认配置完成集群创建。集群创建成功以后,可以在集群管理 > 服务列表查看集群所能支持的服务。
    image.png
  5. 创建弹性伸缩集群。

    1. EMR 控制台进入集群列表单击选择创建的集群,选择弹性伸缩,在弹性伸缩 > 弹性伸缩配置里选择新建弹性伸缩组,然后选择需要的计算机型和配置以及付费类型等,创建机器组。
    2. 对新建的机器组配置弹性伸缩规则。
    3. 添加扩容和缩容规则,伸缩规则支持按照规定时间伸缩和按照规定负载伸缩。
      image.png
    4. 开启弹性伸缩状态。
      image.png
    5. 在弹性伸缩记录可以查看机器组机器的扩容和缩容记录。
      image.png
相关文章
|
1月前
|
SQL 流计算 关系型数据库
基于OpenLake的Flink+Paimon+EMR StarRocks流式湖仓分析
阿里云OpenLake解决方案建立在开放可控的OpenLake湖仓之上,提供大数据搜索与AI一体化服务。通过元数据管理平台DLF管理结构化、半结构化和非结构化数据,提供湖仓数据表和文件的安全访问及IO加速,并支持大数据、搜索和AI多引擎对接。本文为您介绍以Flink作为Openlake方案的核心计算引擎,通过流式数据湖仓Paimon(使用DLF 2.0存储)和EMR StarRocks搭建流式湖仓。
359 4
基于OpenLake的Flink+Paimon+EMR StarRocks流式湖仓分析
|
2月前
|
SQL 分布式计算 Serverless
EMR Serverless Spark:一站式全托管湖仓分析利器
本文根据2024云栖大会阿里云 EMR 团队负责人李钰(绝顶) 演讲实录整理而成
169 2
|
4月前
|
存储 分布式计算 监控
揭秘阿里云EMR:如何巧妙降低你的数据湖成本,让大数据不再昂贵?
【8月更文挑战第26天】阿里云EMR是一种高效的大数据处理服务,助力企业优化数据湖的成本效益。它提供弹性计算资源,支持根据需求调整规模;兼容并优化了Hadoop、Spark等开源工具,提升性能同时降低资源消耗。借助DataWorks及Data Lake Formation等工具,EMR简化了数据湖构建与管理流程,实现了数据的统一化治理。此外,EMR还支持OSS、Table Store等多种存储选项,并配备监控优化工具,确保数据处理流程高效稳定。通过这些措施,EMR帮助企业显著降低了数据处理和存储成本。
144 3
|
4月前
|
安全 数据管理 大数据
数据湖的未来已来:EMR DeltaLake携手阿里云DLF,重塑企业级数据处理格局
【8月更文挑战第26天】在大数据处理领域,阿里云EMR与DeltaLake的集成增强了数据处理能力。进一步结合阿里云DLF服务,实现了数据湖的一站式管理,自动化处理元数据及权限控制,简化管理流程。集成后的方案提升了数据安全性、可靠性和性能优化水平,让用户更专注业务价值。这一集成标志着数据湖技术向着自动化、安全和高效的未来迈出重要一步。
88 2
|
4月前
|
存储 大数据 数据处理
Delta Lake革新浪潮:EMR中的数据湖守护者,如何重塑大数据生态?
【8月更文挑战第26天】Delta Lake是一款开源大数据处理框架,以数据版本控制和ACID事务特性著称,在大数据领域崭露头角。在阿里云EMR平台上,它为用户提供高效可靠的数据处理方式,通过结构化的存储、事务日志实现数据版本控制和回滚。Delta Lake在EMR中实现了ACID事务,简化数据湖操作流程,支持时间旅行查询历史数据版本,优化存储格式提高读取速度,这些优势使其在开源社区和企业界获得广泛认可。
58 2
|
4月前
|
分布式计算 大数据 数据处理
【大数据管理新纪元】EMR Delta Lake 与 DLF 深度集成:解锁企业级数据湖的无限潜能!
【8月更文挑战第26天】随着大数据技术的发展,Apache Spark已成为处理大规模数据集的首选工具。亚马逊的EMR服务简化了Spark集群的搭建和运行流程。结合使用Delta Lake(提供ACID事务保证和数据版本控制)与DLF(加强数据访问控制及管理),可以显著提升数据湖的可靠性和性能。本文通过一个电商公司的具体案例展示了如何在EMR上部署集成Delta Lake和DLF的环境,以及这一集成方案带来的几大优势:增强的可靠性、细粒度访问控制、性能优化以及易于管理的特性。这为数据工程师提供了一个高效且灵活的数据湖平台,简化了数据湖的建设和维护工作。
64 1
|
4月前
|
存储 机器学习/深度学习 弹性计算
阿里云EMR数据湖文件系统问题之OSS-HDFS全托管服务的问题如何解决
阿里云EMR数据湖文件系统问题之OSS-HDFS全托管服务的问题如何解决
|
4月前
|
Java Spring 开发者
掌握Spring事务管理,打造无缝数据交互——实用技巧大公开!
【8月更文挑战第31天】在企业应用开发中,确保数据一致性和完整性至关重要。Spring框架提供了强大的事务管理机制,包括`@Transactional`注解和编程式事务管理,简化了事务处理。本文深入探讨Spring事务管理的基础知识与高级技巧,涵盖隔离级别、传播行为、超时时间等设置,并介绍如何使用`TransactionTemplate`和`PlatformTransactionManager`进行编程式事务管理。通过合理设计事务范围和选择合适的隔离级别,可以显著提高应用的稳定性和性能。掌握这些技巧,有助于开发者更好地应对复杂业务需求,提升应用质量和可靠性。
52 0
|
4月前
|
存储 缓存 数据管理
阿里云EMR数据湖文件系统问题之JindoFS数据孤岛的问题如何解决
阿里云EMR数据湖文件系统问题之JindoFS数据孤岛的问题如何解决
|
4月前
|
存储 对象存储 云计算
阿里云EMR数据湖文件系统问题之JindoFS处理大量小文件的问题如何解决
阿里云EMR数据湖文件系统问题之JindoFS处理大量小文件的问题如何解决
下一篇
DataWorks