JavaパッケージHDFS API操作
......
一:環境紹介hadoop:2.6
Ubuntu:15.10
eclipse:3.8.1
二:操作は
フォルダが存在するかどうかを判断 isExist(folder); フォルダの作成 mkdir(folder);
フォルダの削除 rmr(folder); すべてのフォルダを一覧表示 ls(folder); すべてのフォルダを再帰的にリスト lsr(folder); ファイルのアップロード put(local, folder); ファイルのダウンロード get(folder,local1); ファイルの削除 rm(folder); ファイルの表示 cat(folder);
3:コードプレゼンテーション
package user_thing_tuijian;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils;
public class hdfsGYT {
private static final String HDFS = "hdfs://127.0.0.1:9000/";
public hdfsGYT(String hdfs, Configuration conf ){
this.hdfsPath = hdfs;
this.conf = conf;
}
public hdfsGYT() {
// TODO Auto-generated constructor stub
}
private String hdfsPath;
private Configuration conf = new Configuration() ;
public static void main(String[] args) throws IOException, URISyntaxException{
hdfsGYT hdfsgyt = new hdfsGYT();
String folder = HDFS + "mr/groom_system/small2.csv";
String local = "/home/thinkgamer/Java/hadoop_shizhan/src/user_thing_tuijian/small2.csv";
String local1 = "/home/thinkgamer/Java/hadoop_shizhan/src/user_thing_tuijian";
//
//hdfsgyt.isExist(folder);
//
//hdfsgyt.mkdir(folder);
//
//hdfsgyt.rmr(folder);
//
//hdfsgyt.ls(folder);
//
//hdfsgyt.lsr(folder);
//
//hdfsgyt.put(local, folder);
//
//hdfsgyt.get(folder,local1);
//
//hdfsgyt.rm(folder);
//
//hdfsgyt.cat(folder);
}
//
private void cat(String folder) throws IOException, URISyntaxException {
// hdfs
FileSystem fs = FileSystem.get(new URI(HDFS),new Configuration());
Path path = new Path(folder);
FSDataInputStream fsdis = null;
System.out.println("cat: " + folder);
try {
fsdis =fs.open(path);
IOUtils.copyBytes(fsdis, System.out, 4096, false);
} finally {
IOUtils.closeStream(fsdis);
fs.close();
}
}
//
private void rm(String folder) throws IOException, URISyntaxException {
// hdfs
FileSystem fs = FileSystem.get(new URI(HDFS),new Configuration());
Path path = new Path(folder);
if(fs.deleteOnExit(path)){
fs.delete(path);
System.out.println("delete:" + folder);
}else{
System.out.println("The fiel is not exist!");
}
fs.close();
}
//
private void get(String remote, String local) throws IllegalArgumentException, IOException, URISyntaxException {
//
FileSystem fs = FileSystem.get(new URI(HDFS), new Configuration());
fs.copyToLocalFile(new Path(remote), new Path(local));
System.out.println("Get From : " + remote + " To :" + local);
fs.close();
}
//
private void put(String local, String remote) throws IOException, URISyntaxException {
//
FileSystem fs = FileSystem.get(new URI(HDFS), new Configuration());
fs.copyFromLocalFile(new Path(local), new Path(remote));
System.out.println("Put :" + local + " To : " + remote);
fs.close();
}
//
private void lsr(String folder) throws IOException, URISyntaxException {
// hdfs
FileSystem fs = FileSystem.get(new URI(HDFS),new Configuration());
Path path = new Path(folder);
//
FileStatus[] fileList = fs.listStatus(path);
for (FileStatus f : fileList) {
System.out.printf("name: %s | folder: %s | size: %d
", f.getPath(), f.isDir() , f.getLen());
try{
FileStatus[] fileListR = fs.listStatus(f.getPath());
for(FileStatus fr:fileListR){
System.out.printf("name: %s | folder: %s | size: %d
", fr.getPath(), fr.isDir() , fr.getLen());
}
}finally{
continue;
}
}
fs.close();
}
//
private void ls(String folder) throws IOException, URISyntaxException {
// hdfs
FileSystem fs = FileSystem.get(new URI(HDFS),new Configuration());
Path path = new Path(folder);
//
FileStatus[] fileList = fs.listStatus(path);
for (FileStatus f : fileList) {
System.out.printf("name: %s | folder: %s | size: %d
", f.getPath(), f.isDir() , f.getLen());
}
fs.close();
}
//
private void rmr(String folder) throws IOException, URISyntaxException {
// hdfs
FileSystem fs = FileSystem.get(new URI(HDFS),new Configuration());
Path path = new Path(folder);
fs.delete(path);
System.out.println("delete:" + folder);
fs.close();
}
//
public void mkdir(String folder) throws IOException, URISyntaxException {
// hdfs
FileSystem fs = FileSystem.get(new URI(HDFS),new Configuration());
Path path = new Path(folder);
if (!fs.exists(path)) {
fs.mkdirs(path);
System.out.println("Create: " + folder);
}else{
System.out.println("it is have exist:" + folder);
}
fs.close();
}
//
private void isExist(String folder) throws IOException, URISyntaxException {
// hdfs
FileSystem fs = FileSystem.get(new URI(HDFS),new Configuration());
Path path = new Path(folder);
if(fs.exists(path)){
System.out.println("it is have exist:" + folder);
}else{
System.out.println("it is not exist:" + folder);
}
fs.close();
}
}