You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Hadoop 3.1.1创建FileSystem实例出现StackOverflowError求助

StackOverflowError when creating HDFS FileSystem instance

你的问题根源在于fs.defaultFS的配置值错误,将其设置为"/"会导致FileSystem在解析URI时陷入无限循环,最终触发StackOverflowError。

解决方案:

  • 必须将fs.defaultFS配置为HDFS集群NameNode的完整URI格式,而非单纯的"/"。格式为hdfs://<namenode-hostname>:<port>(默认端口通常是9000,需根据你的集群实际配置调整)。
  • 如果你不想手动指定,也可以让Configuration自动加载集群的core-site.xml配置文件(该文件中已正确配置fs.defaultFS)。

修改后的代码示例:

方式1:手动指定正确的NameNode URI

Configuration config = new Configuration();
// 替换为你的NameNode主机和端口
config.set("fs.defaultFS", "hdfs://your-namenode-host:9000");
FileSystem hdfs = FileSystem.get(new URI("hdfs://your-namenode-host:9000"), config);

方式2:加载集群配置文件(推荐)

确保你的项目能访问到Hadoop集群的core-site.xml和hdfs-site.xml(可将这些文件放在项目的resources目录下),然后直接初始化:

Configuration config = new Configuration();
// 会自动加载classpath下的core-site.xml等配置
FileSystem hdfs = FileSystem.get(config);

关于HADOOP-13792的说明:

HADOOP-13792修复的是特定场景下的URI解析循环问题,但你的情况并非该bug导致——即使在3.1.1版本中,错误的fs.defaultFS配置(比如"/")仍然会触发栈溢出,因为FileSystem无法从这个值解析出有效的分布式文件系统地址,进而陷入重复解析的循环。

内容的提问来源于stack exchange,提问作者Jelly

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 21:45:01