E-MapReduce(简称EMR)新版控制台提供了数据湖集群,一个更灵活、可靠,以及高效的大数据计算集群。同时,您可以基于该集群轻松构建一个可扩展的数据管道。本文为您介绍数据湖集群支持的特性,以及与旧版Hadoop集群之间的差异。

数据湖集群特性介绍

可靠性

如果您启用了集群的高可用服务,则EMR把3台Master节点分布在底层不同的硬件上以降低故障风险。另外,考虑到Master节点在损坏情况下的修复时间,数据湖集群不再支持2台Master模式。同时在高可用集群模式下,EMR不再支持本地MySQL(单机部署,非高可用) 作为Hive metastore数据库,仅支持DLF和外部RDS两种方式。

数据湖集群的创建以及扩容的过程中,会评估ECS的健康状况,从而避免异常ECS加入集群;同时EMR管理器会自动识别在集群后期运行过程中出现的磁盘损坏和长时间不可读写等极端情况的问题,并启动补偿机制。

灵活性

调整数据湖集群的所有服务为可选,允许您根据实际需求来规划集群应用,您甚至可以只勾选HDFS从而拥有一个独立的分布式存储系统的集群,或者只勾选Presto从而拥有一个独立的Ad-Hoc集群。

由于数据湖集群默认支持Private Zone,所以集群内部节点的访问不再依赖hosts文件,从而避免因依赖hosts文件引发的问题。

附加安全组与挂载公网

Hadoop集群默认有一个安全组,他简单并易于使用,但无法精细化管理一个集群对外开放的端口。例如,一个集群需要对外开放HDFS的50070端口,如果此时增加一个端口入规则,则该规则会对集群所有节点有效,但实际上Core或Task并不需要开放该端口。因此数据湖集群对每一个节点组增加了最多两个附加安全组,从而可以精细化控制节点组出入端口的规则。

另外,EMR数据湖集群将挂载公网功能移到了节点组,这样可以更好的搭配附加安全组实现精细化的对外开放公网的管理。

Spark部署

数据湖集群在原有Hadoop2 + Spark2和Hadoop3 + Spark3的基础上,增加了Hadoop2 + Spark3和Hadoop3 + Spark2的组合部署模式。您可以根据实际情况,选择满足自己的软件组合。另外,数据湖集群支持Kyuubi,一个企业级的数据湖计算引擎Gateway,为SparkSQL提供标准化的JDBC接口,可实现多租户和多种计算资源管理方式。

域名支持

数据湖集群优化了节点的域名,从原来的emr-header-1.cluster-13***格式调整为master-1-1.c-494bea2977d9***格式。

如果是高可用集群,则取值master-1-{1-3}并加上集群ID作为后缀组成hostname。同时,机器名显示为emr-user@master-1-1({IP}),这意味着您可以在终端上看到当前节点的IP地址,从而进一步方便您平时的运维工作。

登录用户以及私钥对

通过私钥对的方式登录集群时,其默认用户名从root调整为emr-user,这样做的出发点在于更推荐在平时节点运维时使用emr-user用户。如果您仍然想使用root用户,可以在登录集群后通过sudo命令切换为root用户。

使用私钥对默认可以登录数据湖集群所有节点而不仅是Master节点。如果您仍使用密码方式登录集群,则可以继续使用root用户。

新增emr-metadata命令

数据湖集群的每个节点默认增加一个可执行命令emr-metadata,该命令会输出当前节点关于集群的相关元数据信息。例如,集群ID、节点的角色、instanceId以及网络与硬件配置等,这可以提供您在使用引导脚本的过程中所依赖的本地节点信息。

与Hadoop集群的主要差异

模块 功能项 新版数据湖集群 Hadoop集群
集群 集群创建时间 平均时间小于5分钟。 平均时间小于10分钟。
集群节点组新增节点 平均时间小于3.5分钟。 平均时间小于10分钟。
开放API 支持。 支持。
域名支持 Private Zone。 hosts地址映射。
磁盘扩容 支持热扩容,无需重启服务。 不支持热扩容,需重启服务。
添加服务 不支持。 支持。
节点组 交换机 可以在新建节点组时选择交换机。 仅支持在集群创建时选择,集群创建后不可更改。
挂载公网
  • 可以在创建集群时选择是否为节点组开启公网。
  • 没有节点组类型的限制。
  • 仅支持在集群创建时选择是否开启公网,创建后如果您需要使用公网IP地址访问,请在ECS上申请开通公网IP地址,详情请参见弹性公网IP中的申请EIP的内容。
  • 仅支持Master节点组挂载公网。
附加安全组 支持。 不支持。
部署集
  • 可以在创建集群时选择是否开启部署集开关。
  • 可以在新增Core节点组时,选择是否开启部署集开关。
功能受限。
节点组状态 支持。 不支持。
混合节点 支持同规格的不同机型混合。
  • 仅支持同规格机型。
  • 弹性伸缩节点支持混合节点。
弹性伸缩 弹性伸缩 弹性伸缩与节点组解耦,从独立的功能模块转为节点组操作,使用更加便捷。 需要专用的弹性伸缩组,该节点组不可进行手动扩缩容。
伸缩规则
  • 配置规则不依赖于是否运行弹性伸缩活动,可灵活修改配置(仅影响下一次触发)。
  • 同一节点组多个规则同时触发时,会按照用户规则排序依次生效。
  • 配置规则受到弹性伸缩状态限制,修改后无法立即生效。
  • 同一节点组多个规则同时触发时,随机生效。
伸缩记录 丰富了弹性伸缩记录信息。 提供基础的伸缩记录列表。
指标采集频率 每30秒采集一次。 每30秒采集一次。
伸缩活动生效时间 规则应用后1~30秒。 规则应用后1~2分钟。
扩缩容 扩缩容活动
  • 弹性伸缩活动与手动扩缩容活动运行机制相同。区别仅在于触发条件不同:
    • 弹性伸缩需要弹性伸缩规则触发。
    • 手动扩缩容需要人为触发。
  • 支持暂停弹性伸缩活动。
  • 多个Task节点组的扩缩容活动彼此独立,互不影响。
  • 弹性缩容根据节点负载和创建时间,智能选中目标节点,减少业务影响。
  • 弹性伸缩活动和手动扩缩容活动是两套机制,两者无法兼容。
  • 弹性伸缩活动不支持暂停状态。
  • 同时仅支持一个节点组进行(弹性)扩缩容。
  • 弹性缩容节点选择具有随机性。
高可用与软件应用 高可用 不再支持本地MySQL作为Hive Metastore数据库。 支持本地MySQL作为Hive Metastore数据库。
支持部署集,3台Master分布在不同底层硬件以降低硬件风险。 默认不支持部署集。
NameNode与Resource Manager部署于3节点,并不再支持2 Master模式。 Namenode与Resource Manager仅部署于2节点,支持2 Master模式。
集群应用组件 支持可选 必选 + 可选。
Spark2与Hadoop3组合 支持。 不支持。
Spark3与Hadoop2组合 支持。 EMR-3.38.0之后版本支持同时部署。

已知限制

当前数据湖集群暂不支持的服务有Kerberos和Kudu。