版本 | 环境 |
---|---|
OS | veLinux(Debian 10兼容版) |
Python2 | 2.7.16 |
Python3 | 3.7.3 |
Java | ByteOpenJDK 1.8.0_302 |
组件 | Hadoop集群 | Flink集群 | Kafka集群 | Presto集群 | Trino集群 | HBase集群 | OpenSearch集群 | TensorFlow集群 |
---|---|---|---|---|---|---|---|---|
Flume | 1.9.0 | 1.9.0 | 1.9.0 | - | - | - | - | - |
OpenLDAP | 2.4.58 | 2.4.58 | 2.4.58 | 2.4.58 | 2.4.58 | 2.4.58 | 2.4.58 | 2.4.58 |
Ranger | 2.1.0 | 2.1.0 | 2.1.0 | 2.1.0 | 2.1.0 | 2.1.0 | - | 2.1.0 |
ZooKeeper | 3.7.0 | 3.7.0 | 3.7.0 | - | - | 3.7.0 | - | 3.7.0 |
Flink | 1.11 | 1.11 | - | - | - | - | - | - |
HDFS | 3.3.1 | 3.3.1 | - | 3.3.1 | 3.3.1 | 3.3.1 | - | 3.3.1 |
MapReduce2 | 3.3.1 | 3.3.1 | - | - | - | - | - | 3.3.1 |
YARN | 3.3.1 | 3.3.1 | - | - | - | - | - | 3.3.1 |
Airflow | 2.2.0 | - | - | 2.2.0 | 2.2.0 | - | - | - |
Hive | 3.1.2 | - | - | 3.1.2 | 3.1.2 | - | - | - |
Hue | 4.9.0 | - | - | 4.9.0 | 4.9.0 | - | - | - |
Kafka | - | - | 2.3 | - | - | - | - | - |
Knox | 1.5.0 | 1.5.0 | 1.5.0 | 1.5.0 | 1.5.0 | 1.5.0 | 1.5.0 | 1.5.0 |
Presto | 0.267 | - | - | 0.267 | - | - | - | - |
Presto on YARN | 0.267 | - | - | - | - | - | - | - |
Trino | 365 | - | - | - | 365 | - | - | - |
Trino on YARN | 365 | - | - | - | - | - | - | - |
Spark | 3.2.1 | - | - | - | - | - | - | 3.2.1 |
Sqoop | 1.4.7 | - | - | - | - | - | - | - |
Kerby | 2.0.1 | - | - | - | - | - | - | - |
Tez | 0.10.1 | - | - | - | - | - | - | - |
Iceberg | 0.12.0 | - | - | 0.12.0 | 0.12.0 | - | - | - |
Hudi | 0.10.0 | - | - | - | - | - | - | - |
HBase | - | - | - | - | - | 2.3.7 | - | - |
OpenSearch | - | - | - | - | - | - | 1.2.3 | - |
TensorFlow | - | - | - | - | - | - | - | 2.7.0 |
TensorFlow on YARN | - | - | - | - | - | - | - | 1.0.0 |
以下发布说明包括有关 EMR V1.2.0 的信息, 更改与 1.1.1 有关。EMRV1.2.0为火山引擎EMR V1.2.x的第一个版本。
发布日期: 2022 年 04 月 15 日
支持Apache Iceberg开放表格式,用于大型表快速查询,可提供原子提交、并发写入和 SQL 兼容表演进等功能。
增加了对Presto和Trino的支持,采用Iceberg connector 即可对Iceberg中数据进行操作。
增加了对Spark的支持,配置了Catalog之后,即可轻松使用Spark读写Iceberg数据。
增加对EMR Spark 3.2版本的Spark SQL DDL 和 DML 的支持。从而让您在最新Spark上使用 SQL 语句 upsert Hudi 表。
额外支持Hudi Bucket Index索引功能,提供轻量且高效的索引方式,优化Hudi数据插入时的TagLocation效率。
新增Spark子组件Ksana替换Spark Thrift Server
支持兼容Hive 客户端访问Ksana。
支持SparkSQL跨队列提交作业、细粒度作业资源隔离、动态资源分配和引擎预热。
支持集成Hue工具。
支持OpenLDAP和Ranger的用户身份认证和权限控制。
支持读取TOS
Hadoop 客户端新增读写TOS数据的能力;Hive可使用TOS作为数据存储介质。
支持多种方式访问TOS:自定义配置方式配置AK/SK、环境变量配置AK/SK和对VEECSforEMRRole角色授权TOS访问权限。
Hadoop、Presto 和 Trino 类型集群提供更加友好的权限管理支持,体现在:
Ranger 组件由必选调整为可选,用户在创建集群时可以通过选择是否安装 Ranger 组件来决定是否启用权限管理,同时也支持在集群运行期间以添加 Ranger 组件的形式开启权限管理。
对于开启了权限管理的集群,允许用户在组件粒度快捷控制开启或关闭 Ranger 鉴权,目前支持的组件包括 HDFS、YARN、Hive、Spark、Presto 和 Trino。
提供一套基于 RBAC 模型的权限配置交互 UI,并与 Ranger 之间实现权限配置数据互通。
新增Presto支持部分Hive内置UDF和UDAF功能,具体参考Presto使用说明。
新增TensorFlow 2.7.0组件与数据科学场景下的TensorFlow集群,主要面向大数据+AI场景,提供Spark离线大数据ETL和TensorFlow模型训练等能力。
新增HBase 2.3.7组件与NoSQL数据库场景下的HBase集群,是面向大数据领域的一站式NoSQL服务,适用于GB至PB级的大规模吞吐、检索、分析工作负载。
新增OpenSearch 1.2.3组件和搜索场景下的OpenSearch集群,提供分布式搜索与分析服务。
提供独立的交互式分析Presto/Trino集群,Presto/Trino组件能够独占集群资源,提供更快的分析性能。
新增访问链接功能,支持在EMR控制台的访问链接页面跳转到HDFS、Hive、Spark等开源组件的Web UI。
Airflow全面支持Celery调度,并部署多Scheduler,能够更加充分利用集群资源的同时增强服务组件高可用性。
安装启动服务时,为了避免随机端口占有组件的端口号, 已为各组件预留了端口号。
Hadoop集群HA模式增强:MASTER从2个节点变成3个节点,增强Hadoop集群下各个组件的高可用性。
新增守护精灵的功能, 对于组件进程的异常退出能主动拉起。每次拉起之间的间隔至少3分钟,在60分钟内,每个组件最多拉起6次。
组件滚动重启优化:YARN ResourceManger、HDFS NameNode和HBase HMaster新增滚动重启的能力,能够在不停止服务的情况下进行重启升级。
HA集群的MASTER节点ECS实例意外宕机后恢复,集群可通过守护精灵拉起组件,组件状态可自动恢复。
默认启用Ksana,而Spark Thrift Server不再默认启动。
Hue安全性增强。
SparkSQL访问Iceberg表时,暂时不支持使用Ranger进行权限管控。
当前版本的Ksana不支持使用Iceberg和Hudi表。
除了Hadoop、Presto和Trino类型集群,其他类型集群的Ranger界面插件可关闭,但是关闭后相应的插件仍然会生效。
TensorFlow集群中,在venv环境安装TensorFlow库时有概率因为网络问题失败。集群内置的Python3.9默认安装了TensorFlow库,推荐使用Python3.9来使用TensorFlow。
Hive暂时不支持Iceberg表的Insert语句。
下面列出了 EMR 和此版本一起安装的组件。
组件 | 版本 | 描述 |
---|---|---|
zookeeper_server | 3.7.0 | 用于维护配置信息、命名、提供分布式同步的集中式服务。 |
zookeeper_client | 3.7.0 | ZooKeeper命令行客户端。 |
hive_metastore | 3.1.2 | Hive元数据存储服务。 |
hive_server | 3.1.2 | 用于将 Hive 查询作为 Web 请求接受的服务。 |
hive_client | 3.1.2 | Hive命令行客户端。 |
hdfs_namenode | 3.3.1 | 用于跟踪HDFS文件名和数据块的服务。 |
hdfs_datanode | 3.3.1 | 存储HDFS数据块的节点服务。 |
hdfs_secondary_namenode | 3.3.1 | 对NameNode数据进行周期性合并的服务。 |
hdfs_client | 3.3.1 | HDFS客户端命令行。 |
hdfs_journalnode | 3.3.1 | 用于管理 HA 模式下HDFS日志的服务。 |
hdfs_zkfc | 3.3.1 | 用户维护HA模式下HDFS NameNode从动态的服务。 |
hue_server | 4.9.0 | 用于使用 Hadoop 生态系统应用程序分析数据的 Web 应用程序。 |
knox_gateway | 1.5.0 | 用于与Hadoop生态的RESTAPI和UI交互的应用程序网关。 |
openldap | 2.4.58 | 后台认证以及用户数据权限管控服务。 |
ranger_admin | 2.1.0 | Ranger安全管理的中心接口服务。 |
solr | 2.1.0 | 用于保存Ranger审计数据的服务。 |
ranger_usersync | 2.1.0 | 拉取用户和组的Ranger服务。 |
spark_jobhistoryserver | 3.2.1 | 用于查看完整的 Spark 应用程序的生命周期的已记录事件的 Web UI。 |
ksana | 1.0 | 为字节EMR团队自研组件,定位于SparkSQL数据仓库构建引擎,取代了Spark Thrift Server,兼容Hive的使用方式。 |
spark_client | 3.2.1 | Spark命令行客户端。 |
livy_server | 3.2.1 | 提供REST接口来与Spark交互的服务。 |
sqoop | 1.4.7 | 提供数据库与HDFS导入导出功能。 |
iceberg | 0.12.0 | Apache Iceberg 是一种适用于超大型分析数据集的开放表格式。 |
hudi | 0.10.0 | 增量处理框架,以支持低延迟和高效率的数据管道。 |
yarn_resourcemanager | 3.3.1 | 分配和管理集群资源与分布式应用程序的 YARN 服务。 |
yarn_nodemanager | 3.3.1 | 管理单个节点上的容器的 YARN 服务。 |
yarn_client | 3.3.1 | YARN命令行客户端。 |
mapreduce2_historyserver | 3.3.1 | 保存作业执行信息的MapReduce服务。 |
mapreduce2_client | 3.3.1 | MapReduce命令行客户端。 |
tez_client | 0.10.1 | Tez命令行客户端。 |
flink_client | 1.11 | Flink命令行客户端。 |
airflow_webserver | 2.2.0 | Airflow提供的web服务。 |
airflow_scheduler | 2.2.0 | Airflow的调度器。 |
presto_cli | 0.267 | Presto命令行客户端。 |
presto_coordinator | 0.267 | Presto中负责query解析,任务调度,结果汇总的,集群监控的节点。 |
presto_worker | 0.267 | Presto中负责所有Query相关数据的计算工作。 |
trino_cli | 365 | Trino命令行客户端。 |
trino_coordinator | 365 | Trino中负责query解析,任务调度,结果汇总的,集群监控的节点。 |
trino_worker | 365 | Trino中负责所有Query相关数据的计算工作。 |
kerby_server | 2.0.1 | Kerberos认证服务。 |
flume_agent | 1.9.0 | Flume中的数据采集工具。 |
flume_client | 1.9.0 | Flume命令行客户端。 |
kafka_broker | 2.3 | Kafka中的消息处理节点。 |
hbase_master | 2.3.7 | 适用于负责协调区域和执行管理命令的 HBase 集群的服务。 |
hbase_regionserver | 2.3.7 | 用于服务于一个或多个 HBase 区域的服务。 |
hbase_client | 2.3.7 | HBase 命令行客户端。 |
opensearch | 1.2.3 | OpenSearch服务。 |
opensearch_dashboard | 1.2.3 | OpenSearch的可视化仪表盘。 |
tensorflow | 2.7.0 | 适用于高性能数值计算的 TensorFlow 开源软件库。 |
tensorflow_on_yarn | 1.0.0 | TensorFlow YARN应用程序和库。 |