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()方法有多個重載版本,允許我們指定是否強制覆蓋已有的文件、文件備份數量、寫入文件緩沖區大小、文件塊大小以及文件權限。