mapreduce-generate-hdfs路径

oaxa6hgo  于 2021-05-29  发布在  Hadoop
关注(0)|答案(2)|浏览(260)

我想在Map程序代码上生成hdfs路径。文件系统拥有我们可以从cli执行的所有方法,如put、get、mkdir等。。。但是当hdfs中已经存在一个目录时,如何在我的mapper或reducer代码中生成它的路径就不知道了。
我正在使用 MR2 ..
谢谢。

63lcw9qa

63lcw9qa1#

您可以在mapper/reducer代码中使用setup()方法,并使用文件系统api创建目录。如果您想检查目录/文件是否已经存在,那么使用filesystem类中的“exists”方法。

0x6upsns

0x6upsns2#

阅读 input.txtHDFS ```
public class HdfsRead {
public static void main(String[] args) throws IOException {

        String uri = args[0];

        Configuration conf = new Configuration();
        FileSystem fs = FileSystem.get(URI.create(uri), conf);
        FSDataInputStream in = null ;
        try
        {byte [] buffer = new byte[256];
            in = fs.open(new Path(uri));
                IOUtils.copyBytes(in, System.out, 4096, false);    

        }
        finally
        {
            IOUtils.closeStream(in);
        }   
    }
}
检查文件是否已存在,删除它

FileSystem fs = FileSystem.get(conf);
Path path = new Path(args[0]);
if(fs.exists(path)){
fs.delete(path);
}

commandline argument
args[0] = "hdfs://localhost:9000/input.txt"

相关问题