HDFS FileSystem常用方法
工程所依赖的jar包, hadoop-1.1.2/*.jar、hadoop-1.1.2/lib/*.jar
编写Java程序通过URL访问HDFS
public class HDFSTest {
public static final String HDFSPATH ="hdfs://centos:9000/hello.txt";
@Test
public void testAcceHDFSForURL() throws IOException{
URL url = new URL(HDFSPATH);
InputStream inputStream = url.openStream();
IOUtils.copyBytes(inputStream, System.out, 1024, true);
}
}
java.net.MalformedURLException: unknown protocol: hdfs只是这样访问,程序会有异常,畸形的URL,就是不能解析HDFS这种协议,使用setURLStreamHandlerFactory()让URL能够识别hdfs协议
public class HDFSTest {
//URL如果不是用IP地址,使用主机名,需要在hosts文件中配置主机名到IPd地址的映射
public static final String HDFSPATH ="hdfs://192.168.56.101:9000/hello.txt";
@Test
public void testAcceHDFSForURL() throws IOException{
URL.setURLStreamHandlerFactory(new FsUrlStreamHandlerFactory());
URL url = new URL(HDFSPATH);
InputStream inputStream = url.openStream();
/**
InputStream:输入流 OutputStream:输出流 int:缓冲区大小 boolean:传输结束后是否关闭流
**/
IOUtils.copyBytes(inputStream, System.out, 1024, true);
}
}使用HDFS提供的接口访问HDFS,功能更加强大,操作类FileSystem
删除HDFS中的所有文件、目录
[root@centos Downloads]# hadoop fs -rmr hdfs://centos:9000/* Warning: $HADOOP_HOME is deprecated. Deleted hdfs://centos:9000/file1 Deleted hdfs://centos:9000/hello.txt Deleted hdfs://centos:9000/usr [root@centos Downloads]# hadoop fs -lsr / Warning: $HADOOP_HOME is deprecated. [root@centos Downloads]# hadoop fs -lsr / Warning: $HADOOP_HOME is deprecated.