我想使用hadoop命令列出文件。”hadoop fs-ls文件路径”。我想写一个java代码来实现这一点。我可以写一小段java代码,制作一个jar并将其提供给MapReduceJob(AmazonEMR)来实现这一点吗?你能告诉我代码和步骤,我可以用它来实现这一点吗?
d8tt03nd1#
这是我的github存储库
制作文件夹,将文件放入hdfs,读取,上市和写入数据存在于javaapi文件夹中。您还可以浏览其他文件夹以获得java中的map reduce代码。
uujelgoq2#
您可以使用如下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); }
在map reduce触发器代码(main或run方法)中使用它来获取列表并为map reduce类传递参数方案2使用hadoopfs-ls命令创建shell脚本以读取文件列表提供此脚本作为emr引导脚本的一部分,以获取文件列表在同一个脚本中,您可以编写代码将路径保存在path/mnt下的文本文件中/从map reduce代码中读取此路径,并为Map器和reducer提供to arg列表
2条答案
按热度按时间d8tt03nd1#
这是我的github存储库
简单的命令,如:
制作文件夹,
将文件放入hdfs,读取,
上市和
写入数据存在于javaapi文件夹中。
您还可以浏览其他文件夹以获得java中的map reduce代码。
uujelgoq2#
您可以使用如下java代码列出hdfs中的文件
在map reduce触发器代码(main或run方法)中使用它来获取列表并为map reduce类传递参数
方案2
使用hadoopfs-ls命令创建shell脚本以读取文件列表
提供此脚本作为emr引导脚本的一部分,以获取文件列表
在同一个脚本中,您可以编写代码将路径保存在path/mnt下的文本文件中/
从map reduce代码中读取此路径,并为Map器和reducer提供to arg列表