内容提要
本文介绍了如何利用亚马逊云科技的EMR Serverless服务构建无服务器数据仓库,包括操作要点、优化和开放集成测试。还提到了优化EMR Serverless性能的方法和EMR Studio的功能。总结了无服务器数据仓库平台的优势。
延伸解读
Application 与 Job 的生命周期管理差异
EMR Serverless 中,Application 是资源池,创建后长期存在,适合通过控制台一次性配置;而 Job 是短期计算单元,生命周期短,建议用命令行管理。这种区分意味着日常运维重点应放在 Job 的提交、监控和状态轮询上,而非频繁调整 Application。文章给出的 CLI 示例和状态监控脚本也印证了这一点。
性能优化的三个通用方向
文章提出三种不依赖具体作业上下文的优化方法:使用最新 EMR 版本、选择 ARM 架构、将 Hive 作业转换为 Spark SQL。其中 Hive on Tez 在 EMR Serverless 上已比本地 Hive on Spark 更快,转 Spark SQL 可进一步提升性能。这些方法实施门槛较低,适合作为默认优化起点。
开放集成测试降低调试成本
传统 Spark 集成测试需先打包 jar 或脚本再上传执行,发现 bug 后无法直接调试,必须回到本地 IDE。EMR Studio 提供 Jupyter 笔记本方式,可连接上下游数据源直接编写和测试代码,最后再打包提交为 Serverless 作业。这减少了打包-上传-调试的循环,尤其适合业务逻辑复杂的场景。
解耦架构带来的实际收益
新平台将调度工具、计算引擎和存储介质解耦,避免了原有 CDH 集群中任一模块故障导致整体不可用的问题。计算引擎采用 Serverless 可按 Job 动态匹配算力,S3 存储可近乎无限扩容。文章提到原有最长任务需十几小时,新平台仅需 2-3 小时,且支持精细化权限管控和成本分摊。
Q&A
EMR Serverless 的主要功能是什么?
EMR Serverless 是一个资源池概念,允许企业高效管理计算任务,支持动态算力匹配和无服务器架构。
如何优化 EMR Serverless 的性能?
可以通过使用最新的 EMR 版本、选择 ARM 架构和将 Hive 作业转换为 Spark SQL 作业来优化性能。
EMR Studio 在开发中有什么优势?
EMR Studio 提供开放的集成测试方式,简化了开发流程,允许在 Jupyter 笔记本中编写和测试代码。
EMR Serverless 如何管理作业角色的权限?
作业角色需要访问特定的 S3 存储桶和 Glue Catalog 的权限,通过 IAM 角色进行管理。
无服务器数据仓库平台的优势是什么?
无服务器数据仓库平台解决了算力瓶颈,提升了运行效率,并实现了数据调度、计算引擎和存储介质的解耦。
如何通过命令行管理 EMR Serverless 作业?
可以使用 AWS CLI 命令来创建和管理 EMR Serverless 作业,包括提交作业和监控状态。