EMR提供的组件包括开源和自研两大类,涵盖数据开发、计算引擎、数据服务、资源管理、数据存储、数据集成等领域,您可以按需选择和配置。
在创建集群时,如果没有您想使用的组件,或者想使用的开源组件仅对存量用户开放,您可以自行安装并自行管理。
数据开发
数据开发层提供可视化工具和代码管理,涵盖数据的采集、清洗、建模、分析以及任务调度等一系列开发过程,旨在支持企业对数据资产的高效管理与利用。
在EMR中数据开发的服务推荐使用阿里云产品DataWorks和EMR Workflow。具体如下:
产品名称 | 产品说明 | 常用文档 |
产品名称 | 产品说明 | 常用文档 |
DataWorks | DataWorks提供数据集成、开发、治理、质量管理、运维和安全管控等全流程功能,适合需要复杂数据集成和治理的场景。 | |
EMR Workflow | EMR Workflow专注于工作流的调度和管理,100%兼容开源Apache DolphinScheduler。 |
如果您要使用开源的数据开发组件,可选择Hue和Superset。具体如下:
组件类型 | 组件名称 | 组件说明 | 常用文档 |
组件类型 | 组件名称 | 组件说明 | 常用文档 |
开源 | Hue | Hue仅对存量用户开放。 Hue是一个开源的Web界面,用于与Apache Hadoop生态系统进行交互。 | |
Superset | Superset仅对存量用户开放。 Superset是一个数据可视化工具,提供丰富的可视化和仪表盘功能。 |
计算引擎
EMR支持多种主流计算引擎,如批处理、交互分析、流式计算、机器学习等,通过对数据进行结构和逻辑的转换,满足不同的大数据应用场景。
组件类型 | 组件名称 | 组件说明 | 常用文档 |
组件类型 | 组件名称 | 组件说明 | 常用文档 |
开源 | Spark | Spark是一个快速通用的大数据处理引擎,提供内存中数据处理能力,并支持批处理、实时处理、机器学习和图计算等多种数据处理模式。 | |
Hive | Hive是一个基于Hadoop的数据仓库工具,通过提供类似SQL的查询语言(HiveQL)使用户可以方便地在Hadoop上进行大规模数据的存储、查询和分析。 | ||
StarRocks | StarRocks是新一代极速全场景MPP(Massively Parallel Processing)数据库,支持OLAP多维分析、高并发查询、实时分析查询等场景。 | ||
Doris | Doris是一个高性能、实时的分析型数据库,能够较好地满足报表分析、即席查询、数据湖联邦查询加速等使用场景。 | ||
ClickHouse | ClickHouse是一种开源列式数据库管理系统,专注于高效的在线分析处理(OLAP),适合海量数据快速查询。 | ||
Trino | Trino原名PrestoSQL,是一个开源的分布式SQL查询引擎,适用于交互式分析查询。 | ||
Flink | Flink是一个流式的数据流执行引擎,支持处理大规模、实时数据流。 | ||
Presto | Presto即PrestoDB,是一款灵活、可扩展的分布式SQL查询引擎,适用于交互式分析查询。 | ||
Tez | Apache Tez是一个面向大数据处理的分布式框架,提供高效、灵活的DAG(有向无环图)执行模型,主要用于替代MapReduce来优化查询和批处理任务的性能。 | ||
Phoenix | Phoenix是构建在HBase上的SQL中间层,允许使用标准的SQL语法来查询和管理存储在HBase中的数据。 | ||
Impala | Impala仅对存量用户开放。 Impala为存储在Apache Hadoop中的数据,提供高性能和低延迟的SQL查询。 | ||
Kudu | Kudu仅对存量用户开放。 Kudu是一个分布式、可扩展的列式存储管理器,提供低延迟的随机读写和高效的数据分析能力。 | ||
Druid | Druid仅对存量用户开放。 Druid是一个分布式内存实时分析系统,用于解决如何在大规模数据集下快速、交互式地查询和分析问题。 |
数据服务
数据服务层的组件提供数据加密、访问控制、数据查询、数据访问和API等服务,提升大数据环境中的数据安全、操作和分析效率。
组件类型 | 组件名称 | 组件说明 | 常用文档 |
组件类型 | 组件名称 | 组件说明 | 常用文档 |
开源 | Ranger | Ranger是一个集中式的安全管理框架,主要用于Hadoop生态系统的权限管理和审计。 | |
Kerberos | Kerberos是一种基于对称密钥技术的身份认证协议,能够为其他服务提供身份认证功能,并支持单点登录(SSO)。 | ||
OpenLDAP | OpenLDAP是LDAP协议的一个开源实现,用于管理和存储用户与资源信息,提供用户管理和身份认证的功能。 | ||
Kyuubi | Kyuubi是一个分布式和多租户的SQL网关,简化数据分析和查询处理,为数据湖查询引擎提供SQL等查询服务。 | ||
Zookeeper | Zookeeper是一个高效的分布式协调服务,用于管理和协调分布式应用程序中的配置、同步和命名等关键任务,提供一致性、高性能和可靠的集群管理解决方案。 | ||
Knox | Knox是一个REST API网关,旨在简化对Hadoop及其相关组件的安全访问,同时提供统一的身份验证和访问控制。 | ||
Livy | Livy是一个通过REST接口或RPC client库与Spark服务进行交互的服务。 | ||
Kafka Manager | Kafka Manager仅对存量用户开放。 Kafka Manager是专门为Kafka设计的集群管理工具,提供简洁的Web界面来管理和监控Kafka集群。 | ||
自研 | DLF-Auth | DLF-Auth是数据湖构建DLF产品提供,可以对DLF管理的数据库、数据表、数据列、函数等进行细粒度权限控制,实现数据湖上统一的数据权限管理。 |
资源管理
资源管理层的组件提供高效的资源调度与管理能力,实现任务的自动化安排、资源的智能分配和集群的弹性扩展,提升大数据处理的效率和可靠性。
组件类型 | 组件名称 | 组件说明 | 常用文档 |
组件类型 | 组件名称 | 组件说明 | 常用文档 |
开源 | YARN | YARN是Hadoop的资源管理系统,负责集群资源的调度和管理,支持不同类型的分布式计算任务在共享的集群资源上高效运行。 |
数据存储
数据存储层的组件支持结构化和非结构化数据的分布式存储,您可以选择适合的存储方式满足对应的计算引擎的要求。
组件类型 | 组件名称 | 组件说明 | 常用文档 |
组件类型 | 组件名称 | 组件说明 | 常用文档 |
自研 | OSS-HDFS | OSS-HDFS 是一种兼容 Hadoop 分布式文件系统接口的对象存储解决方案,支持大数据计算任务通过标准HDFS协议直接访问阿里云 OSS的数据。 | |
JindoCache | JindoCache是一种分布式缓存解决方案,用于加速大规模数据访问,通过在内存中缓存数据块,从而提高数据读取性能并减少对底层存储系统的压力。 | ||
ESS | ESS仅对存量用户开放。新用户建议使用Celeborn组件。 ESS是基于Shuffle推出的扩展组件,优化Shuffle在读写方面的问题。 | ||
JindoData | JindoData仅对存量用户开放。新用户建议使用JindoCache组件。 JindoData是自研的数据湖存储加速套件,主要面向大数据和AI生态,为阿里云和业界主要数据湖存储系统提供全方位访问加速解决方案。 | ||
SmartData | SmartData仅对存量用户开放。新用户建议使用OSS-HDFS组件。 SmartData是EMR产品的自研组件,为EMR各个计算引擎提供统一的存储优化、缓存优化、计算加速优化和多个存储功能扩展,涵盖数据访问、数据治理和数据安全。 | ||
开源 | Paimon | Paimon是一种流批统一的湖存储格式,支持高吞吐的写入和低延迟的查询。 | |
Hudi | Hudi是一种数据湖的存储格式,在Hadoop文件系统之上提供更新数据和删除数据的能力以及消费变化数据的能力。 | ||
Iceberg | Iceberg是一种开放的数据湖表格式,提供高性能的读写和元数据管理功能。 | ||
DeltaLake | DeltaLake是一个开源的数据存储层,提供ACID事务、可扩展的元数据处理以及统一的流式和批处理。 | ||
HDFS | HDFS是一种用于存储大型数据集的分布式文件系统,具有高容错性和高吞吐量的特点,能够在集群中的多个节点上以冗余方式存储数据。 | ||
HBase | HBase是一种分布式、面向列的开源数据库,其基于Hadoop文件系统构建,旨在为大型数据集提供低延迟的随机读写访问和高可靠性存储。 | ||
Celeborn | Celeborn是一个处理中间数据的服务,能够提升大数据引擎的稳定性、灵活性和性能。 | ||
HBASE-HDFS | HBASE-HDFS即HDFS,在存算分离场景用本地HBASE-HDFS存储WAL数据。 | ||
Alluxio | Alluxio仅对存量用户开放。 Alluxio是一个面向基于云的数据分析和人工智能的开源的数据编排技术,提供统一的数据访问入口,支持跨多种底层存储。 |
数据集成
数据集成层的组件提供数据批量传输、实时消息流处理和分布式日志收集的能力,提升数据传输效率和数据收集的可靠性。
组件类型 | 组件名称 | 组件说明 | 常用文档 |
组件类型 | 组件名称 | 组件说明 | 常用文档 |
开源 | Flume | Flume是一个分布式、可靠和高可用的系统,用于收集、聚合和移动大量日志数据流到中心化的数据存储中。 | |
Sqoop | Sqoop是一个用于在Hadoop和关系型数据库之间高效传输数据的工具,支持大规模数据导入和导出操作。 | ||
Kafka | Kafka仅对存量用户开放。 Kafka是一个开源的分布式事件流平台,具备高吞吐、低延迟和持久化能力,广泛用于构建实时数据流处理和数据管道的应用场景。 |
相关文档
EMR产品的整体架构,请参见什么是EMR on ECS。
关于EMR各版本支持的组件及对应版本,请参见各版本支持的组件。
关于EMR支持的应用场景以及应用场景要使用哪些组件,请参见大数据使用场景。
- 本页导读 (1)
- 数据开发
- 计算引擎
- 数据服务
- 资源管理
- 数据存储
- 数据集成
- 相关文档