以下是代码:
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.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils;
public class App2 {
/**
*
* 使用 FileSystem
*
* eclipse 创建方法快捷键:alt+shift+M
* eclipse 创建局部变量快捷键 alt+shift+L
*
* */
public static final String HDFS_PATH = "hdfs://192.168.9.204:9000";
private static final String DIR_PATH = "/user/yinkaipeng";
private static final String FILE_PATH = "/test";
public static void main(String[] args) throws Exception, URISyntaxException {
FileSystem fileSystem = FileSystem.get(new URI(HDFS_PATH),new Configuration());
// 创建文件夹
CreatePackage(fileSystem);
// 上传文件
//UploadFile(fileSystem);
// 下载文件
//Download(fileSystem);
//删除文件
//deleteFile(fileSystem);
}
private static void deleteFile(FileSystem fileSystem) throws IOException {
fileSystem.delete(new Path(FILE_PATH), true);
System.out .println("OK!");
}
private static void UploadFile(FileSystem fileSystem) throws IOException,
FileNotFoundException {
final FSDataOutputStream out = fileSystem.create(new Path(FILE_PATH));
final FileInputStream in = new FileInputStream("c:/log.txt");
IOUtils.copyBytes(in, out, 1024, true);
}
private static void CreatePackage(FileSystem fileSystem) throws IOException {
fileSystem.mkdirs(new Path(DIR_PATH));
}
private static void Download(FileSystem fileSystem) throws IOException {
final FSDataInputStream in2 = fileSystem.open(new Path(FILE_PATH));
IOUtils.copyBytes(in2, System.out, 1024, true);
}
}
感觉像访问数据库一样吧! 也就是一条shell。