我想使用hadoop命令列出文件。 " hadoop fs -ls filepath"。我想编写一个Java代码来实现这一目标。我可以编写一小段java代码,制作一个jar并将其提供给Map reduce job(Amazon EMR)来实现这一目标吗?能否请您指出我可以实现的代码和步骤?
答案 0 :(得分:1)
您可以使用JAVA代码列出HDFS中的文件,如下所示
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.FileUtil;
import org.apache.hadoop.fs.Path;
...
Configuration configuration = new Configuration();
FileSystem hdfs = FileSystem.get(new URI("hdfs://localhost:54310"), configuration);
FileStatus[] fileStatus = hdfs.listStatus(new Path("hdfs://localhost:54310/user/path"));
Path[] paths = FileUtil.stat2Paths(fileStatus);
for (Path path : paths) {
System.out.println(path);
}
在地图中使用此缩减触发器代码(主要或运行方法)以获取列表并将其传递给地图缩小类
选项2
答案 1 :(得分:0)
制作文件夹,
把文件放到hdfs,
阅读,
上市和
写入数据存在于JAVA API文件夹中
您可以浏览其他文件夹以获取java中的map-reduce代码。