HDFS的Java API
Java API介绍
将详细介绍HDFS Java API,一下节再演示更多应用。
Java API 官网
如上图所示,Java API页面分为了三部分,左上角是包(Packages)窗口,左下角是所有类(All Classes是)窗口,右侧是详情窗口。
这里推荐使用“先左下角索引,然后查看右侧详情”的方法,好似查英文词典一样。而左上角的包窗口,使用较少。
左下角窗口列出了所有的Java接口和类,可以直接拖动滑动条查找需要的接口或类。如图所示,比如查找到FileSystem,单击该类,右侧窗口将显示该类的详细信息,包括属性方法等。
Configuration类方法
说明
void set(String name, String value)
设置属性,name是属性名,value是属性值
void addResource(String name)
添加一个配置资源
// 1.创建配置器
Configuration conf = new Configuration();
conf.set("fs.default.name", "hdfs://192.168.55.128:9000");
conf.set("mapred.jop.tracker", "192.168.55.128:9001");
Configuration conf = new Configuration();
conf.addResource("core-default.xml");
conf.addResource("core-site.xml");
URL与Path
URI:统一资源标志符(Uniform Resource Identifier)
URL:统一资源定位符(uniform resource location)
URI与URL都是定位资源位置的,就是表示这个资源的位置信息,就像经纬度一样可以表示你在世界的哪个角落。URI是一种宽泛的含义更广的定义,而URL则是URI的一个子集,就是说URL是URI的一部分。
URL位于java.net包中
Path类往往与URL类结合使用,Path类位于org.apache.hadoop.fs包下,命名文件系统中的文件或目录。 路径字符串使用斜杠作为目录分隔符。 如果以斜线开始,路径字符串是绝对的。
方法说明
Path(String pathString)
通过构造器可以把一个字符串构造成一个路径
FileSystem类
Hadoop是由Java语言编写的,其中Hadoop 2.7系列是JDK1.7编写,我们可以通过Java API调用HDFS的所有交互操作接口。其中最常用的类是FileSystem类,包含了hdfs dfs相关操作的实现。
如上图可以看到FileSystem类的声明,
public abstract class FileSystem
extends Configured
implements Closeable
了解到:
FileSystem类位于org.apache.hadoop.fs包中,是一个抽象类,其次父类是Configured,实现了 Closeable接口。
Closeable接口是可以关闭的数据源或目标。需要实现close 方法,可释放对象保存的资源(如打开文件)。
父类Configured有两个方法:
void setConf(Configuration conf):设置Configuration
Configuration getConf():获取Configuration
除了上面三个方法,FileSystem类常用方法如下表(省略了public)
其中,create()方法有多个重载版本,允许我们指定是否强制覆盖已有的文件、文件备份数量、写入文件缓冲区大小、文件块大小以及文件权限。