亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Hadoop分布式文件系統中的HDFS是什么

發布時間:2021-10-20 16:22:32 來源:億速云 閱讀:137 作者:柒染 欄目:大數據

這期內容當中小編將會給大家帶來有關Hadoop分布式文件系統中的HDFS是什么,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

HDFS設計
  • 超大文件 PB 級

  • 流式數據訪問

    • 一次寫入,多次讀取是最高效的訪問模式

  • 商用硬件 (不需要高昂且高可用的硬件)

    • 節點故障率較高,某些應用不適合

  • 低時間延遲的數據訪問

    • 要求低時間延遲的數據訪問,例如幾十毫秒范圍不適合在HDFS上運行

  • 大量的小文件

    • namenode 將文件系統的元數據存儲在內容中,因此該文件系統所能存儲的文件總數受限于 namenode 的內存容量

    • 根據經驗 每個文件、目錄和數據塊的存儲信息大約占150字節

  • 多用戶寫入,任意 修改文件

    • HDFS中的文件只支持單個寫入者,而且寫操作總是以“只添加”方式在文件末尾寫數據,它不支持多個寫入者的操作,也不支持在文件的任意位置進行修改。

HDFS概念
  • 數據塊 默認128mb

  • HDFS 小于一個塊大小的文件不會占據整個塊的空間

hdfs fsck / -files -blocks

  • namenode 和datanode

    • 1.備份那些組成文件系統元數據持久狀態的文件,一般的配置是,將持久狀態寫入本地磁盤的同時,寫入NFS

    • 運行輔助namenode 一般在單獨的物理機運行。主節點掛了之后,啟用輔助節點不能保證數據完整性

    • namenode 管理文件系統的命名空間。它維護著文件系統樹及整棵樹內所有的文件和目錄。這些信息以兩個文件形式永久保存在本地磁盤上:命名空間鏡像文件和編輯日志文件。namenode 也記錄著每個文件中各個塊所在的數據節點信息,但它并不永久保存塊的位置信息,因為這些信息會在系統啟動時根據數據節點信息重建。

    • datanode 根據需要存儲并檢索數據塊,并且定期向namenode發送它們所存儲的塊的列表

    • namenode 容錯機制

  • 塊緩存

    • 默認 一個塊緩存在一個datanode的內存中

    • 提高讀 的性能

    • 緩存池

  • 聯邦HDFS

    • 聯邦HDFS 允許系統通過添加namenode 實現擴展

    • 每個namenode 管理文件系統命名空間的一部分

    • 兩兩之間互不通信

  • HDFS 的高可用

    • namenode 之間需要通過高可用共享存儲實現編輯日志的共享

    • datanode 需要同時向兩個namenode 發送數據塊處理報告,因為數據塊的映射信息存儲在namenode 內存中,而非磁盤

    • 客戶端需要使用特定的機制來處理namenode 的失效問題,這一機制對用戶是透明的

    • 輔助namenode的角色被備用namenode所包含

    • 共享存儲的選擇 NFS或群體日志管理器(QJM)

    • 故障切換與規避

    • 撤銷namenode 訪問共享存儲目錄的權限

    • 屏蔽網絡端口

    • 斷電等等...

    • 備份namenode 的方式無法實現高可用

    • HA 的架構支持

命令行接口
  • namenode 運行端口8020

  • 從本地copy 文件到 hdfs /user/hadoop/ 目錄下

hadoop fs -copyFromLocal max_temperature.sh a.sh

  • 把文件復制回本地文件系統

hadoop fs -copyToLocal a.sh my.sh

md5sum max_temperature.sh my.sh

  • 新建目錄

hadoop fs -mkdir books

hadoop fs -ls .

  • 默認情況下 安全措施處于停用狀態,生產環境應該啟用 dfs.premissions.enabled

  • 對文件而言 執行權限沒有意義

hadoop 文件系統
  • HDFS 只是其中一種實現

  • Hadoop 文件系統 Local,HDFS,WebHDFS,Secure WebHDFS, HAR, View, FTP, S3, Azure, Swift

  • 列出本地文件系統根目錄下的文件 hadoop fs -ls file:///

  • 盡管運行的MapReduce 程序可以訪問任何文件系統,但在處理大數據集的時候,建議還是選擇一個有數據本地化優勢的分布式文件系統,如HDFS

  • 接口

    • 用戶控件文件系統, 允許將用戶空寂那實現的文件系統作為Unix 文件系統進行集成。

    • 通過使用Fuse-DFS 模塊,HDFS均可以作為一個標準的本地文件系統進行掛載。

    • NFS 網關是更好的方案,應該選擇

    • 使用hadoop 的NFSv3 網關將HDFS掛載為本地客戶端的文件系統是可行的。

    • 可以使用Unix程序與該文件系統交互

    • HDFS僅能以追加模式寫文件,因此可以往文件末尾添加數據,但不能隨機修改文件

    • HTTP接口比原生的Java客戶端要慢,不要用它來傳出特大數據

    • 訪問方式 直接訪問(namenode 和 datanode 內嵌的 web服務器作為 WebHDFS 的端節點運行 dfs.webhdfs.enabled 設置為true)

    • 通過代理訪問

    • HttpFS代理提供和 WebHDFS 相同的HTTp接口 使用httpfs.sh 腳本

    • HTTP

    • c 語言(libhdfs,libwebhdfs)底層代碼都是java

    • NFS

    • FUSE

  • java接口

    hadoop jar hadoopdemo-1.0-SNAPSHOT.jar URLCat hdfs:///user/hadoop/output/part-r-00000

    public class FileSystemCat {
       public static void main(String[] args) throws Exception {
          String uri = args[0];
          Configuration conf = new Configuration();
          FileSystem fs = FileSystem.get(URI.create(uri), conf);
          InputStream in = null;
          try {
                in = fs.open(new Path(uri));
                IOUtils.copyBytes(in, System.out, 4096, false);
          } finally {
                IOUtils.closeStream(in);
          }
       }
    }


    hadoop jar hadoopdemo-1.0-SNAPSHOT.jar FileSystemCat hdfs:///user/hadoop/output/part-r-00000

    hadoop jar hadoopdemo-1.0-SNAPSHOT.jar FileSystemDoubleCat hdfs:///user/hadoop/output/part-r-00000

    • 新建文件

    • FSDataOutputStream

    • 目錄 public boolean mkdirs(Path f) throws IOException

    • 查詢文件系統

    • FileStatus 類封裝了文件系統中文件和目錄的元數據

    • public boolean exists(Path f) throws IOException

    • 寫入數據

         FSDataOutputStream create(FileSystem fs,Path file, FsPermission permission) throws IOException
      
         FSDataOutputStream append(Path f) throws IOException
      
         //代碼
          String localSrc = args[0];
        String dst = args[1];
        InputStream in = new BufferedInputStream(new FileInputStream(localSrc));
      
        Configuration conf = new Configuration();
        FileSystem fs = FileSystem.get(URI.create(dst), conf);
        OutputStream out = fs.create(new Path(dst), new Progressable() {
            public void progress() {
                System.out.println(".");
            }
        });
        IOUtils.copyBytes(in, out, 4096, false);


    • FSDataInputStream seek()是一個相對高開銷的操作,需要謹慎使用,建議用流數據來構建應用的訪問模式,而非執行大量的seek()方法 hadoop jar hadoopdemo-1.0-SNAPSHOT.jar FileSystemDoubleCat hdfs:///user/hadoop/output/part-r-00000

    • 通過 FileSystem

    • 通過URL讀取數據 FsUrlStreamHandlerFactory IOUtils

上述就是小編為大家分享的Hadoop分布式文件系統中的HDFS是什么了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

龙游县| 甘谷县| 新竹县| 南华县| 安远县| 宁波市| 阿瓦提县| 高淳县| 四子王旗| 白银市| 凤庆县| 上栗县| 云安县| 托克逊县| 平阳县| 察隅县| 高雄县| 永济市| 恩平市| 方城县| 安国市| 万荣县| 平乡县| 天等县| 开封县| 巴林左旗| 井冈山市| 昌平区| 修水县| 深州市| 新竹市| 贡嘎县| 华池县| 高邮市| 花莲县| 伊川县| 新疆| 沐川县| 抚顺县| 金阳县| 巴楚县|