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

HDInsight集群Spark写入文件未存储至Azure Blob存储问题

问题结论

该现象属于HDInsight的预期默认行为,不是配置错误。

原因说明

  • HDInsight部署时默认将Azure Blob Storage配置为集群的默认文件系统,对应core-site.xml中的fs.defaultFS配置项。所有不带显式文件系统schema的路径(比如直接写/testlocation),都会被自动路由到Azure Blob存储,这也是hadoop fs -ls /返回Blob存储文件列表的原因。
  • 代码中使用了显式的hdfs://hostname:8020前缀,这个schema会直接指向集群本地部署的HDFS NameNode服务,读写请求会直接落到节点本地磁盘上由DataNode管理的存储目录,完全不会经过默认文件系统的Blob存储映射,和执行hadoop fs -ls hdfs://hostname:8020/看到本地文件的观测结果完全一致。

调整方案

如果需要让Spark作业读写Azure Blob存储上的文件,两种写法都可以:

  1. 和hadoop CLI保持一致,使用不带hdfs前缀的相对路径:
df1mparquet = spark.read.parquet("/dataSet/parquet/")
df1mparquet.write.parquet("/dataSet/newlocation/")
  1. 写全限定路径时,使用Azure Blob对应的WASB/WASBS schema,不要用hdfs schema,格式为wasbs://<容器名>@<存储账户名>.blob.core.windows.net/<文件路径>。

注意:HDInsight集群的本地HDFS属于临时计算存储,集群删除、节点重置后数据会永久丢失,仅适合存放计算过程中的临时中间数据,需要持久化的业务数据不要写入本地HDFS路径。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 19:21:30