微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

通过Java程序传递Hadoop程序命令

任何人都可以让我知道是否有任何方法可以从Java程序将hadoop命令传递给hdfs(例如:创建删除目录和文件“ hadoop fs -mkdir / test”)?我正在尝试通过java程序在hdfs中创建和删除目录和文件.

也有任何方法可以通过java程序检查hdfs中文件/目录的大小.我正在尝试检查hdfs中目录的大小,如果大小为0,那么我想删除文件.我需要通过java程序来做所有这些事情.

请帮忙.

解决方法:

看一下FileSystem,它允许您创建,删除文件等.创建文件并打印其大小的简单类:

import org.apache.hadoop.conf.Configured;
import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.util.Tool;
import org.apache.hadoop.util.ToolRunner;

public class Sample extends Configured implements Tool {
    public static void main(String[] args) throws Exception {
        ToolRunner.run(new Sample(), args);
    }

    @Override
    public int run(String[] strings) throws Exception {
        FileSystem fs = FileSystem.get(getConf());
        fs.mkdirs(new Path("/sample/dir"));
        FSDataOutputStream out = fs.create(new Path("/sample/dir/file.txt"));
        out.writeBytes("hello");
        out.close();
        System.out.println(fs.getFileStatus(new Path("/sample/dir/file.txt")).getLen());
        return 0;
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐