Apache Hadoop 3.4.1

Apache Hadoop 3.4.1 是 Hadoop 3.4.x 发布分支的一个更新版本。

变更概述

建议用户阅读完整的版本发布说明。本页概述了主要变更内容。

批量删除API

HADOOP-18679 批量删除API。

此版本提供了一个API,用于批量删除对象存储或文件系统中的文件/对象。

新版二进制发行包

HADOOP-19083 提供不包含AWS V2 SDK的hadoop二进制压缩包

Hadoop新增了一种二进制发行版压缩包变体,文件名中带有"lean"标签。该压缩包不包含完整的AWS SDK v2捆绑包,使文件大小减少了约50%。

S3A 改进

改进

HADOOP-18886 S3A: AWS SDK V2迁移:稳定性与S3Express支持

此版本完成了AWS SDK v2迁移和Amazon S3 Express One Zone存储支持的稳定化工作。S3 Select功能将不再受支持。

HADOOP-18993 S3A: 添加选项 fs.s3a.classloader.isolation (#6301)

本文介绍配置属性fs.s3a.classloader.isolation,其默认值为true。设置为false可禁用S3A类加载器隔离功能,该功能对于在用户提供的jar包中安装自定义凭证提供程序非常有用。

HADOOP-19047 支持S3A魔法提交的内存跟踪

S3A魔法提交器现在支持配置属性fs.s3a.committer.magic.track.commits.in.memory.enabled。将其设置为true可在内存中跟踪提交而非文件系统,从而减少远程调用次数。

HADOOP-19161 S3A: 新增配置项 "fs.s3a.performance.flags" 用于设置性能标志列表

S3A现在支持配置属性fs.s3a.performance.flag用于控制多项性能优化的激活。详情请参阅S3A性能文档。

ABFS 改进

改进

HADOOP-18516 [ABFS]:除自定义SASTokenProvider实现外,支持固定SAS令牌配置

ABFS 现在支持通过固定的共享访问签名令牌进行身份验证。详情请参阅 ABFS 文档中关于配置属性 fs.azure.sas.fixed.token 的说明。

HADOOP-19089 [ABFS] 撤销对根路径上setXAttr()和getXAttr()的支持

HADOOP-18869 此前在3.4.0版本中实现了对根路径xattrs的支持。为避免调用容器API的需求,该功能已在3.4.1版本中被移除。

HADOOP-19178 WASB驱动弃用及最终移除

此版本宣布弃用WASB文件系统,转而支持ABFS。更多指导请参阅ABFS文档。

错误

HADOOP-18542 Azure令牌提供程序需要租户和客户端ID,尽管它们是可选的

在Azure实例中运行时,不再需要在配置中为MSI身份验证指定租户和客户端ID。

传递性CVE修复

为了应对最近的常见漏洞和暴露(CVE),许多依赖项已升级。其中大部分漏洞实际上无法通过Hadoop利用,因此这些升级工作主要是出于尽职调查。然而,如果应用程序将所有库都放在类路径上,则可能存在漏洞。这些升级也应减少安全扫描器报告的误报数量。

我们尚未能将所有依赖项升级至最新版本。其中一些变更存在根本性的不兼容问题。如果您对某个特定库的状态有疑问,请查阅Apache JIRA问题跟踪系统,查看是否已提交相关问题、是否针对该库进行过讨论,以及修复方案是否已在处理中。在提交关于dependency-X.Y.Z存在CVE漏洞的新JIRA问题前,请务必先搜索是否已有相关现存问题

作为一个开源项目,我们始终欢迎这方面的贡献,特别是在测试活跃分支、测试这些分支的下游应用以及更新依赖项是否会引发回归问题方面。

安全公告

Hadoop HDFS是一个分布式文件系统,允许远程调用者读写数据。

Hadoop YARN是一个分布式作业提交/执行引擎,允许远程调用者向集群提交任意工作。

除非Hadoop集群部署了使用Kerberos的调用方认证,否则任何能够访问服务器网络的人都可以不受限制地访问数据,并能在系统中运行任意代码。

在生产环境中,通常有三种部署模式可以谨慎地保持数据和计算资源的私密性。1. 物理集群:配置Hadoop安全机制,通常与企业Kerberos/Active Directory系统绑定。良好。2. 云端:采用私有VLAN及安全机制的临时或持久性单用户/多租户集群。良好。考虑使用Apache Knox来管理集群的远程访问。3. 云端:采用私有VLAN但完全不设安全机制的临时单用户/租户集群。由于这是保护集群的唯一手段,需要谨慎配置网络。考虑使用Apache Knox来管理集群的远程访问。

如果在云端部署一个未启用安全机制的Hadoop集群,且未配置VLAN来限制仅允许可信用户访问,实际上您正在向任何具备网络访问权限的人共享您的数据和计算资源

如果以这种方式部署不安全的集群,端口扫描器必然会发现它并提交加密货币挖矿作业。如果遇到这种情况,请不要将其报告为CVE或安全问题:这是完全可以预见的。若想保持集群专属使用权,请务必做好集群安全防护

最后,如果您使用的是由他人部署/管理的Hadoop服务,请务必确认其产品提供的安全措施是否符合您的需求。

Protobuf 兼容性

在HADOOP-18197中,我们将hadoop-thirdparty中的Protobuf升级到了3.21.12版本。该版本可能与某些JDK8版本存在兼容性问题,您可能会遇到一些错误(具体细节请参考HADOOP-18197中的讨论)。

为解决此问题,我们建议将生产环境中的JDK版本升级至更高版本(> JDK8)。我们将在未来的3.4.x版本中通过升级hadoop-thirdparty的Protobuf版本来解决此问题。请注意,我们将在未来的3.4.x版本中停止对JDK8的支持。

入门指南

Hadoop文档包含您开始使用Hadoop所需的信息。首先从单节点设置开始,该指南展示了如何设置单节点Hadoop安装。然后继续学习集群设置以了解如何设置多节点Hadoop安装。

在生产环境中部署Hadoop之前,请阅读Hadoop安全模式并按照其说明保护您的集群。