标签:
package hdfs;
import java.io.IOException;
import java.io.InputStream;
import java.net.URI;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.junit.Before;
import org.junit.Test;
//import org.omg.CORBA_2_3.portable.InputStream;
public class HDFSAPITest {
FileSystem fs=null;
@Before
public void init(){
System.setProperty("HADOOP_USER_NAME","hadoop");
Configuration conf=new Configuration();
try{
//指定Hadoop服务器地址和端口号
URI uri=new URI("hdfs://192.168.75.88:9000");
fs=FileSystem.get(uri,conf);
}catch(Exception e){
e.printStackTrace();
}
}
@Test
public void put(){
try {
//从本地系统读文件的时候,记得添加file:///协议
fs.copyFromLocalFile(
new Path("file:///f:/ha.txt"),new Path("/aaa/") );
System.out.println("上传结束");
} catch (IOException e) {
// TODO: handle exception
e.printStackTrace();
}
}
@Test
public void download(){
try {
//从本地系统读文件的时候,记得添加file:///协议
fs.copyToLocalFile(
false, new Path("/c"), new Path("file:///f:/"), true);
System.out.println("下载结束");
} catch (IllegalArgumentException e) {
e.printStackTrace();
}catch(IOException e){
e.printStackTrace();
}
}
@Test
public void mmkdir(){
try{
boolean flag=fs.mkdirs(new Path("/abc2"));
System.out.println("目录创建结果:"+(flag?"sussess":"fail"));
}catch(Exception e){
e.printStackTrace();
}
}
@Test
public void delete(){
try {
//第一个参数的目录的时候,只有该目录是空的,那么第二参数才可以设置为false
//否则第二个参数需要设置为true
//如果第一个参数是文件的时候,那么第二个参数是true或false都行
boolean flag=fs.delete(new Path("/b"),true);
System.out.println("目录删除结果:"+(flag?"sussess":"fail"));
} catch (IOException e) {
// TODO: handle exception
e.printStackTrace();
}
}
@Test
public void ls(){
try{
FileStatus[] status=fs.listStatus(new Path("/"));
for(FileStatus fileStatus:status){
//文件的路径
System.out.println(fileStatus.getPath());
//文件的拥有者
System.out.println(fileStatus.getOwner());
//文件的长度
System.out.println(fileStatus.getLen());
//文件的备份数量
System.out.println(fileStatus.getReplication());
//该文件是否是一个目录
System.out.println(fileStatus.isDirectory());
//该文件是否是一个文件
System.out.println(fileStatus.isFile());
//文件的访问权限
System.out.println(fileStatus.getPermission());
System.out.println("------------------------------");
}
}catch(Exception e){
e.printStackTrace();
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Configuration conf=new Configuration();
try{
//指定Hadoop服务器地址和端口号
URI uri=new URI("hdfs://192.168.75.88:9000");
FileSystem fs=FileSystem.get(uri,conf);
Path path=new Path("/c");
InputStream inputStream=fs.open(path);
int b;
while((b=inputStream.read())!=-1){
System.out.print((char)b);
}
inputStream.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
标签:
原文地址:http://www.cnblogs.com/caogaojun/p/5630008.html