使用Pentaho Data Integration读取AWS S3数据时遇文件系统URI错误
PDI读取AWS S3数据错误问题分析与解决
核心问题1:S3路径格式与密钥配置错误
你直接把Access Key和Secret Key硬编码到文件路径里的方式不符合PDI的规范,这是导致"Incorrect file system URI"错误的根本原因。PDI读取S3数据时,密钥不能嵌入路径,而是要通过Hadoop配置文件单独设置。
你当前用的路径格式完全错误,正确的S3路径应该用s3a协议(Hadoop推荐的S3文件系统实现,比旧的s3/s3/s3格式更稳定):
s3a://oldsalesdata-tt/SalesforAWSandHadoop.csv
核心问题2:密钥配置方式错误
不要把密钥写在路径里,正确配置步骤:
- 找到PDI安装目录下的
data-integration/plugins/pentaho-big-data-plugin/hadoop-configurations/<你的Hadoop版本>文件夹 - 编辑
core-site.xml,添加以下配置项(替换成你的实际密钥和S3区域端点):
<property> <name>fs.s3a.access.key</name> <value>你的Access Key</value> </property> <property> <name>fs.s3a.secret.key</name> <value>你的Secret Key</value> </property> <property> <name>fs.s3a.endpoint</name> <value>s3.amazonaws.com</value> <!-- 比如us-west-2.amazonaws.com,根据你的S3区域调整 --> </property>
- 重启PDI让配置生效
辅助问题:repositories.xml缺失影响预览
RepositoriesMeta - No repositories file found这个错误是因为PDI没有找到存储库配置文件,会干扰预览功能:
- 打开PDI,点击左上角Connect按钮,选择Create new repository创建一个本地存储库
- 创建完成后,
repositories.xml会自动生成,预览功能即可正常使用
关于路径修改后文件找不到的问题
你把路径改成s3/s3后出现文件找不到,是因为这个是旧版本Hadoop的废弃格式,PDI 9.3已经不再支持,必须用s3a协议才能正常识别S3存储。
最终解决步骤
- 把Hadoop文件输入的路径改为
s3a://oldsalesdata-tt/SalesforAWSandHadoop.csv - 按上述方法在
core-site.xml中配置S3密钥和端点 - 创建PDI本地存储库解决repositories.xml缺失问题
- 重启PDI后重新测试预览和运行
内容的提问来源于stack exchange,提问作者Tauno
相关产品推荐
相关产品推荐

