Spark3.1.2读取S3时提示No FileSystem for scheme:S3a错误如何解决
Spark 3.1.2 访问S3a协议报错java.io.IOException: No FileSystem for scheme: S3a 解决方案
1 代码层面修复
- 解除s3a实现类及相关认证配置的注释:你当前代码中所有Hadoop s3a相关配置均被注释,Spark无法识别s3a协议对应的文件系统实现,必须解除对应行注释
- 修正路径协议大小写:Hadoop文件系统对协议头大小写敏感,将路径中
S3a://修改为全小写s3a://
修正后的完整代码示例:
import os from pyspark.sql import SparkSession spark = SparkSession.builder \ .appName("s3reader") \ .getOrCreate() sc = spark.sparkContext # 解除以下配置注释,填写你实际的认证信息和端点 sc._jsc.hadoopConfiguration().set("fs.s3a.impl", "org.apache.hadoop.fs.s3a.S3AFileSystem") sc._jsc.hadoopConfiguration().set("fs.s3a.access.key", "替换为你的实际访问密钥AK") sc._jsc.hadoopConfiguration().set("fs.s3a.secret.key", "替换为你的实际秘密密钥SK") sc._jsc.hadoopConfiguration().set("fs.s3a.endpoint","替换为你的实际S3端点地址") sc._jsc.hadoopConfiguration().set("fs.s3a.path.style.access", "true") # 协议头改为全小写s3a df = spark.read.json("s3a://silver/testfolder/4a2426b2-856c-4e9b-b698-b3dcdca74f48") print(df)
2 依赖兼容性修复
Spark 3.1.2默认适配Hadoop 3.2.x版本,你当前使用的hadoop-aws:2.7.4、aws-java-sdk:1.7.4版本过低,与Spark内置Hadoop版本不兼容,若完成第一步修改后仍报错,按以下步骤调整:
- 先删除
/usr/local/spark/jars目录下现有的旧版aws相关jar包 - 替换为匹配的依赖版本:
hadoop-aws:3.2.0、aws-java-sdk-bundle:1.11.375 - 也可以直接在提交任务时通过
--packages参数自动拉取适配的依赖,无需手动上传jar包,提交命令如下:
spark-submit --packages org.apache.hadoop:hadoop-aws:3.2.0,com.amazonaws:aws-java-sdk-bundle:1.11.375 /home/cloud/sparks3test.py
3 全局配置方案(可选)
如果需要所有Spark任务默认支持s3a协议,无需每次在代码中配置,可在Spark的core-site.xml文件中添加以下配置:
<configuration> <property> <name>fs.s3a.impl</name> <value>org.apache.hadoop.fs.s3a.S3AFileSystem</value> </property> <property> <name>fs.AbstractFileSystem.s3a.impl</name> <value>org.apache.hadoop.fs.s3a.S3A</value> </property> <!-- 可同时添加全局的AK、SK、端点配置 --> <property> <name>fs.s3a.access.key</name> <value>全局AK</value> </property> <property> <name>fs.s3a.secret.key</name> <value>全局SK</value> </property> <property> <name>fs.s3a.endpoint</name> <value>全局端点地址</value> </property> <property> <name>fs.s3a.path.style.access</name> <value>true</value> </property> </configuration>
内容的提问来源于stack exchange,提问作者odonnry
相关产品推荐
相关产品推荐

