Hadoop之HDFS的API

一、FileSystem類提供基本的文件處理功能 

   import org.apache.hadoop.fs.FileSystem
   Configuration conf = new Configuration();
   FileSystem fs = FileSystem.get(conf);

      core-site.xml:

   <!-- 制定HDFS的老大(NameNode)的地址 -->
   <property>
      <name>fs.defaultFS</name>
      <value>hdfs://hadoop0:9000</value>
   </property>

      – 適配器模式,根據配置文件中fs.default.name(hadoop2.x之後是
            fs.defaultFS)的值,實例化成不同的對象。
             • 本地文件系統:"file:///"
             • HDFS: "hdfs://xx.namenode.fqdn:8020/"
      – Hadoop中的資源描述方法符合URL規範(RFC1738),
      fs.defaut.name的值是默認的協議+server部分
二、文件操作

      2.1

      – 讀文件 fs.open(Path);
      – 新建文件fs.create(Path);
      – 對文件追加fs.append(Path);
      – 關閉文件句柄fs.close(Path);
            • 對於hdfs文件,如果不close的話會導致短期內不能繼續寫入文件。
      – 建目錄fs.mkdirs(Path);
      – 列目錄 fs.listStatus(Path);
      – 通配符處理 fs.globStatus(Path)
            • 處理a/b*.lzo形式的輸入路徑
      – 刪除文件或目錄 fs.delete(Path,boolean)
      – 判斷是否爲文件fs.isFile(Path)
      – 設置文件屬性fs.setPermission(..)

      2.2

     › 從本地上傳文件fs. copyFromLocalFile(Path,Path)
     › 從hdfs下載文件fs.copyToLocalFile(Path,Path)
     › 獲取文件塊的位置fs. getFileBlockLocations()
     › 設定備份數fs.setReplication(Path, short)

三、其他HSFS API

       3.1 加載更多的配置文件    

    Configuration conf = new Configuration();
    conf.addResource(new Path(".../core-site.xml"));
    conf.addResource(new Path(".../hdfs-site.xml"));
    FileSystem fs = FileSystem.get(new URI("hdfs://hadoop01:9000"), conf);

       3.2 重新設定連接的namenode

    Configuration conf = new Configuration();        
    conf.set("fs.defaultFS", "hdfs://NAMENODE_HOSTNAME:PORT");        
    FileSystem fs = FileSystem.get(new URI("hdfs://hadoop01:9000"), conf);


                                                                                                                                                                                        

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章