Apache Hadoop 3.3.6 是 Hadoop 3.3.x 发行分支的更新。
建议用户阅读完整的发行说明。此页面提供了主要变更的概述。
从本发行版开始,Hadoop 使用 CycloneDX Maven 插件发布软件物料清单 (SBOM)。有关 SBOM 的更多信息,请访问 SBOM。
HDFS 路由器到路由器基于联合现在支持在 MySQL 上存储委派令牌,HADOOP-18535,这提高了令牌操作吞吐量,高于原始的基于 Zookeeper 的实现。
HADOOP-18671 将许多 HDFS 特定的 API 移至 Hadoop Common,以便依赖 HDFS 语义的某些应用程序可以在其他与 Hadoop 兼容的文件系统上运行。
特别是,recoverLease() 和 isFileClosed() 通过 LeaseRecoverable 接口公开。而 setSafeMode() 通过 SafeMode 接口公开。
abfs 存在一个严重错误修复 HADOOP-18546。ABFS。禁用在 abfs 流 close() 中清除正在进行的读取的列表。
hadoop 版本 3.3.2+ 中 abfs 连接器的所有用户都必须升级或通过将 fs.azure.readaheadqueue.depth
设置为 0
来禁用预取
查阅父级 JIRA HADOOP-18521 ABFS ReadBufferManager 缓冲区在并发 HTTP 请求中共享 以了解根本原因、受影响内容的详细信息和缓解措施。
HADOOP-18103。Hadoop 中的高性能矢量化读取 API
PositionedReadable
接口现已添加一个用于矢量化 IO(也称为分散/收集 IO)的操作
void readVectored(List<? extends FileRange> ranges, IntFunction<ByteBuffer> allocate)
所有请求的范围都将被检索到提供的字节缓冲区中 - 可能异步,也可能并行,结果可能会乱序出现。
readFully()
调用,因此提供同等的性能。readFully()
更高的读取性能。通过 file://
和 s3a://
对增强的 Apache ORC 和 Apache Parquet 客户端进行基准测试显示查询性能得到了显著提升。
进一步阅读:* FsDataInputStream。* Hadoop 矢量化 IO:您的数据刚刚变得更快! Apachecon 2022 演讲。
新的中间清单提交器使用清单文件来提交成功任务尝试的工作,而不是重命名目录。作业提交是读取所有清单、创建目标目录(并行化)和重命名文件(同样并行)的问题。
这在 Azure 存储和 Google GCS 上既快速又正确,应该在那里使用它,而不是经典的 v1/v2 文件输出提交器。
在 HDFS 上使用它也是安全的,它应该比 v1 提交器更快。然而,它针对云存储进行了优化,其中列表和重命名操作明显较慢;好处可能较少。
更多详细信息可在 清单提交器 中找到。文档。
HDFS-16400、HDFS-16399、HDFS-16396、HDFS-16397、HDFS-16413、HDFS-16457。
无需重新启动数据节点,即可更改许多数据节点配置选项。这使得无需在整个集群范围内重新启动数据节点即可调整部署配置。
请参阅 DataNode.java 以获取动态可重新配置属性的列表。
许多依赖项已升级以解决最近的 CVE。许多 CVE 实际上无法通过 Hadoop 利用,因此这项工作的很大一部分只是尽职调查。但是,所有库都在类路径上的应用程序可能存在漏洞,并且升级还应减少误报安全扫描程序报告的数量。
我们无法将每个依赖项都升级到最新版本。其中一些更改在根本上不兼容。如果您对特定库的状态有任何疑问,请查阅 Apache JIRA 问题跟踪器,以查看是否已提交问题、是否已讨论过有问题的库,以及管道中是否已有修复程序。请不要在未首先搜索任何现有问题的情况下提交有关依赖项 X.Y.Z 存在 CVE 的新 JIRA
作为一个开源项目,我们始终欢迎该领域的贡献,尤其是在测试活动分支、测试这些分支下游的应用程序以及更新的依赖项是否触发回归方面。
Hadoop HDFS 是一个分布式文件系统,允许远程调用者读取和写入数据。
Hadoop YARN 是一个分布式作业提交/执行引擎,允许远程调用者将任意工作提交到集群中。
除非 Hadoop 集群部署了 使用 Kerberos 进行调用者身份验证,否则任何可以访问服务器网络的人都可以不受限制地访问数据,并且可以在系统中运行他们想要的任何代码。
在生产环境中,通常有三种部署模式,在谨慎的情况下,这些模式可以保证数据和计算资源的私密性。1. 物理集群:配置 Hadoop 安全性,通常绑定到企业 Kerberos/Active Directory 系统。好。1. 云:具有私有 VLAN 和安全性的瞬态或持久单用户/租户集群。好。考虑使用 Apache Knox 来管理对集群的远程访问。1. 云:具有私有 VLAN 且完全没有安全性的瞬态单用户/租户集群。需要谨慎的网络配置,因为这是保护集群的唯一方法。考虑使用 Apache Knox 来管理对集群的远程访问。
如果您在云中部署 Hadoop 集群,但没有安全性,也没有配置 VLAN 来限制对受信任用户的访问,则您隐式地与任何具有网络访问权限的人共享您的数据和计算资源。
如果您以这种方式部署不安全的集群,则端口扫描器不可避免地会找到它并提交加密挖掘作业。如果发生这种情况,请不要将其报告为 CVE 或安全问题:这是完全可以预测的。如果您想让您的集群保持独占性,请保护您的集群。
最后,如果您使用的是由其他人部署/管理的 Hadoop 服务,请确定他们的产品提供了哪些安全性,并确保其满足您的要求。
Hadoop 文档包含您开始使用 Hadoop 所需的信息。从 单节点设置 开始,它向您展示如何设置单节点 Hadoop 安装。然后转到 集群设置,了解如何设置多节点 Hadoop 安装。
在生产环境中部署 Hadoop 之前,请阅读 安全模式下的 Hadoop,并按照其说明保护您的集群。