package hdfs;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
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.FSDataOutputStream;
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 App2 {
public static void main(String[] args) throws IOException, URISyntaxException {
final FileSystem fileSystem = FileSystem.get(new URI("hdfs://hadoop:9000"), new Configuration());
makdir(fileSystem);
//上传
putdata(fileSystem);
download(fileSystem);
listFile(fileSystem);
//删除
delete(fileSystem);
}
public static void listFile(final FileSystem fileSystem) throws IOException {
System.out.println("-------file list start-----------");
FileStatus[] listStatus = fileSystem.listStatus(new Path("/"));
for (FileStatus fileStatus : listStatus) {
System.out.println(fileStatus.getPath().toString());
}
System.out.println("-------file list end-----------");
}
public static void delete(final FileSystem fileSystem) throws IOException {
boolean delete = fileSystem.delete(new Path("/dir2"),true);
if (delete) {
System.out.println("-----deletet ok---------!");
}
}
public static void download(final FileSystem fileSystem) throws IOException {
FSDataInputStream in = fileSystem.open(new Path("/dir2/readme"));
IOUtils.copyBytes(in, System.out, 1024, false);
in.close();
System.out.println("------------getdata ok-------------------");
}
public static void putdata(final FileSystem fileSystem) throws IOException,
FileNotFoundException {
FSDataOutputStream out=fileSystem.create(new Path("/dir2/readme"));
FileInputStream in=new FileInputStream("/home/hadoop/hello");
IOUtils.copyBytes(in, out, 1024, true);
System.out.println("update ok");
}
public static void makdir(final FileSystem fileSystem) throws IOException {
boolean successful=fileSystem.mkdirs(new Path("/dir2"));
if(successful){
System.out.println("mkdir ok");
}
}
}