任何人都可以让我知道是否有任何方法可以从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] 举报,一经查实,本站将立刻删除。