本章节介绍EMR 3.22.0发行版本的发布日期、组件升级、新功能和更新内容等信息。

发布日期

2019年7月28日

新功能

  • Kudu
    • 新增组件,Kudu填补Hadoop生态圈的功能空白,可提供类似HBase快速数据插入以及随机存取功能,允许用户进行数据修改,同时还提供类似HDFS/Parquet超大规模的数据分析以及查询功能。
      • 提供C++/Java API,以便用户进行二次开发。
      • 提供Impala/Spark以及Hive Metastore的集成。
    • Kudu版本基本开源社区Apache Kudu 1.10.0版本。
  • OpenLDAP
    • 新增组件,取代ApacheDS,ApacheDS下线。
    • 高可用。

组件升级

  • ZooKeeper

    升级到3.5.5版本。

  • Presto

    升级到0.221版本。

  • Bigboot

    升级到2.0.0版本。

更新内容

  • JindoFileSystem
    • 多种存储模式
      • Block模式:数据以Block形式存储在后端存储OSS上,本地Namespace服务维护元数据信息。在元数据性能和数据性能上,Block模式较优。Block模式支持不同的存储策略,包括WARM存储策略(本地一副本,OSS一副本)、COLD(仅 OSS 一副本)、 HOT(本地多副本,OSS 一副本)、TEMP(仅本地一副本)和ALL_HDD(本地多副本),默认为WARM,用户可以根据不同的应用场景对目录设置不同的存储策略。
      • Cache模式: 该模式主要兼容现有OSS存储方式。在Cache模式下,文件以对象的形式存储在OSS上,每个文件根据实际访问情况会在本地进行数据和元数据的缓存,从而提高访问数据以及元数据的性能。Cache模式提供不同元数据同步策略以满足用户在不同场景下的需求。
    • 外部客户端支持
      • 客户端SDK提供了E-MapReduce集群外访问E-MapReduce JindoFS 的文件系统的能力,通过客户端可以访问Block模式的Namespace,但外部客户端不能利用到E-MapReduce JindoFS在E-MapReduce集群内部构建的数据缓存,性能上相对于E-MapReduce集群内部使用也有一定的差距。
      • Cache模式则保留了原有OSS存储的语义,通过JindoFS在E-MapReduce集群内部实现了数据缓存加速,因此,E-MapReduce 集群外部可以直接通过OSS客户端访问数据,例如,OSS SDK或者E-MapReduce的OssFileSystem等。
    • 生态组件支持
      • JindoFS目前已经支持E-MapReduce上的众多计算引擎,例如,Spark、Flink、Hive、MapReduce、Impala和Presto等。
      • 针对计算和存储分离的场景,也可以把作业日志存储在JindoFS上,例如,YARN Container log和Spark Event log。
      • JindoFS可以作为HBase的HFile后端存储,扩展HBase的存储能力。
  • OssFileSystem
    • OssFileSystem增加自动检测坏盘逻辑,修复OSS写入时,由于坏盘导致缓存写入失败的情况。
    • 补全OssFileSytem相关配置。
  • Bigboot
    • 包括多Namespace支持、本地数据块以大文件形式存储、多模存储支持和外部客户端支持等多项重大更新。
    • 解决机器重启过程中Bigboot monitor状态不正确问题。
    • 增加Kudu组件的服务spec。
    • 增加各个服务spec的正确性检验。
  • Hadoop
    • HDFS
      • HDFS Federation适配,支持通过自定义配置和API创建HDFS Federation集群,避免创建Federation集群时的二次Format。
      • 优化坏盘检测逻辑,针对本地盘场景,可以通过dfsadmin触发DataNode BR时进行坏盘检测。
    • YARN
      • 修复MR作业Container日志存在JindoFS/OSS时, MapReduce JobHistory作业列表不更新的问题。
  • Spark
    • Relational Cache
      • 支持Relational Cache,Relational Cache通过预计算加速用户查询。用户可以创建Relational Cache对数据进行预计算,在执行用户查询时,Spark Optimizer自动发现合适的Cache,并改写SQL执行计划,基于Cache的数据继续计算,从而提升查询速度,适用于报表、Dashboard、数据同步和多维分析等场景。
        • 通过 DDL,进行CACHE/UNCACHE/ALTER/SHOW 等操作,Cache的数据支持Spark的所有数据源和数据格式。
        • 支持自动的Cache数据更新以及通过REFRESH命令更新Cache数据,支持基于分区的增量更新。
        • 支持基于Relational Cache的执行计划优化。
    • Streaming SQL
      • 规范Stream Query Writer的参数配置。
      • 优化Kafka数据表Schema兼容性检查。
      • Kafka数据表Schema不存在时自动创建到SchemaRegistry。
      • 优化Kafka Schema不兼容时的日志信息。
      • 修复查询结果写Kafka表时必须显式指定列名的问题。
      • 去掉流式SQL查询只支持Kafka和Loghub数据输入源的限制。
    • Delta
      • 新增 Delta (Delta详细信息)支持,用户可使用Spark创建Delta datasource,以支持流式数据写入、事务性读写、数据校验和数据回溯等应用场景。
        • 支持使用dataframe API从Delta读取数据或者写入数据到Delta。
        • 支持使用stucture streaming API以Delta作为source或者sink进行数据的读或写。
        • 支持使用Delta API对数据进行update/delete/merge/vaccum/optimize等操作。
        • 支持使用SQL创建基于Delta 的表,导入数据到Delta,读取Delta 表等操作。
    • Others
      • constraint feature,支持PK/FK。
      • 解决servlet等jar冲突问题。
  • Flink
    • log4j日志回滚。
  • Kafka
    • log4j日志回滚。
    • 升级fastjson。
  • Zeppelin
    • 升级依赖的commons-lang3包到3.7版本,修复pyspark无法写OSS的问题(本问题解决文案)。
  • Ranger
    • 增加Show grants支持。
  • Analytics-zoo
    • 修复Numpy安装错误问题。
  • Impala
    • 兼容Apache Kudu 1.10.0版本。