org.apache.hadoop
hadoop-aws
2.7.7
//配置configuration
public static Configuration miniConfig() {
Configuration configuration = new Configuration();
configuration.set("fs.s3a.access.key", "user");
configuration.set("fs.s3a.secret.key", "pwd");
configuration.set("fs.s3a.path.style.access", "true");
configuration.set("fs.s3a.block.size", "512");
configuration.set("fs.s3a.endpoint", "http://localhost:9000");
configuration.set("fs.s3a.impl", "org.apache.hadoop.fs.s3a.S3AFileSystem");
return configuration;
}
public static void main(String[] args) throws Exception {
S3AFileSystem s3AFileSystem = new S3AFileSystem();
s3AFileSystem.initialize(URI.create("s3a://bucket/test.json"),miniConfig());
//文件状态
S3AFileStatus fileStatus = s3AFileSystem.getFileStatus(new Path("s3a://bucket/test.json"));
//文件列表
RemoteIterator locatedFileStatusRemoteIterator = s3AFileSystem.listFiles(new Path("s3a://ndp/static"), true);
while (locatedFileStatusRemoteIterator.hasNext()) {
LocatedFileStatus next = locatedFileStatusRemoteIterator.next();
}
//读取文本文件
FSDataInputStream open = s3AFileSystem.open(new Path("s3a://bucket/test.json"), 4096);
BufferedReader bf = new BufferedReader(new InputStreamReader(open));
String line = null;
List res = new ArrayList<>();
while ((line=bf.readLine())!=null){
res.add(line);
}
}