Hadoop分布式文件系統(tǒng)中的HDFS是什么

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)Hadoop分布式文件系統(tǒng)中的HDFS是什么,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

創(chuàng)新互聯(lián)公司專注于鄰水網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供鄰水營(yíng)銷型網(wǎng)站建設(shè),鄰水網(wǎng)站制作、鄰水網(wǎng)頁(yè)設(shè)計(jì)、鄰水網(wǎng)站官網(wǎng)定制、成都小程序開(kāi)發(fā)服務(wù),打造鄰水網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供鄰水網(wǎng)站排名全網(wǎng)營(yíng)銷落地服務(wù)。

HDFS設(shè)計(jì)
  • 超大文件 PB 級(jí)

  • 流式數(shù)據(jù)訪問(wèn)

    • 一次寫(xiě)入,多次讀取是最高效的訪問(wèn)模式

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

    • 節(jié)點(diǎn)故障率較高,某些應(yīng)用不適合

  • 低時(shí)間延遲的數(shù)據(jù)訪問(wèn)

    • 要求低時(shí)間延遲的數(shù)據(jù)訪問(wèn),例如幾十毫秒范圍不適合在HDFS上運(yùn)行

  • 大量的小文件

    • namenode 將文件系統(tǒng)的元數(shù)據(jù)存儲(chǔ)在內(nèi)容中,因此該文件系統(tǒng)所能存儲(chǔ)的文件總數(shù)受限于 namenode 的內(nèi)存容量

    • 根據(jù)經(jīng)驗(yàn) 每個(gè)文件、目錄和數(shù)據(jù)塊的存儲(chǔ)信息大約占150字節(jié)

  • 多用戶寫(xiě)入,任意 修改文件

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

HDFS概念
  • 數(shù)據(jù)塊 默認(rèn)128mb

  • HDFS 小于一個(gè)塊大小的文件不會(huì)占據(jù)整個(gè)塊的空間

hdfs fsck / -files -blocks

  • namenode 和datanode

    • 1.備份那些組成文件系統(tǒng)元數(shù)據(jù)持久狀態(tài)的文件,一般的配置是,將持久狀態(tài)寫(xiě)入本地磁盤(pán)的同時(shí),寫(xiě)入NFS

    • 運(yùn)行輔助namenode 一般在單獨(dú)的物理機(jī)運(yùn)行。主節(jié)點(diǎn)掛了之后,啟用輔助節(jié)點(diǎn)不能保證數(shù)據(jù)完整性

    • namenode 管理文件系統(tǒng)的命名空間。它維護(hù)著文件系統(tǒng)樹(shù)及整棵樹(shù)內(nèi)所有的文件和目錄。這些信息以兩個(gè)文件形式永久保存在本地磁盤(pán)上:命名空間鏡像文件和編輯日志文件。namenode 也記錄著每個(gè)文件中各個(gè)塊所在的數(shù)據(jù)節(jié)點(diǎn)信息,但它并不永久保存塊的位置信息,因?yàn)檫@些信息會(huì)在系統(tǒng)啟動(dòng)時(shí)根據(jù)數(shù)據(jù)節(jié)點(diǎn)信息重建。

    • datanode 根據(jù)需要存儲(chǔ)并檢索數(shù)據(jù)塊,并且定期向namenode發(fā)送它們所存儲(chǔ)的塊的列表

    • namenode 容錯(cuò)機(jī)制

  • 塊緩存

    • 默認(rèn) 一個(gè)塊緩存在一個(gè)datanode的內(nèi)存中

    • 提高讀 的性能

    • 緩存池

  • 聯(lián)邦HDFS

    • 聯(lián)邦HDFS 允許系統(tǒng)通過(guò)添加namenode 實(shí)現(xiàn)擴(kuò)展

    • 每個(gè)namenode 管理文件系統(tǒng)命名空間的一部分

    • 兩兩之間互不通信

  • HDFS 的高可用

    • namenode 之間需要通過(guò)高可用共享存儲(chǔ)實(shí)現(xiàn)編輯日志的共享

    • datanode 需要同時(shí)向兩個(gè)namenode 發(fā)送數(shù)據(jù)塊處理報(bào)告,因?yàn)閿?shù)據(jù)塊的映射信息存儲(chǔ)在namenode 內(nèi)存中,而非磁盤(pán)

    • 客戶端需要使用特定的機(jī)制來(lái)處理namenode 的失效問(wèn)題,這一機(jī)制對(duì)用戶是透明的

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

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

    • 故障切換與規(guī)避

    • 撤銷namenode 訪問(wèn)共享存儲(chǔ)目錄的權(quán)限

    • 屏蔽網(wǎng)絡(luò)端口

    • 斷電等等...

    • 備份namenode 的方式無(wú)法實(shí)現(xiàn)高可用

    • HA 的架構(gòu)支持

命令行接口
  • namenode 運(yùn)行端口8020

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

hadoop fs -copyFromLocal max_temperature.sh a.sh

  • 把文件復(fù)制回本地文件系統(tǒng)

hadoop fs -copyToLocal a.sh my.sh

md5sum max_temperature.sh my.sh

  • 新建目錄

hadoop fs -mkdir books

hadoop fs -ls .

  • 默認(rèn)情況下 安全措施處于停用狀態(tài),生產(chǎn)環(huán)境應(yīng)該啟用 dfs.premissions.enabled

  • 對(duì)文件而言 執(zhí)行權(quán)限沒(méi)有意義

hadoop 文件系統(tǒng)
  • HDFS 只是其中一種實(shí)現(xiàn)

  • Hadoop 文件系統(tǒng) Local,HDFS,WebHDFS,Secure WebHDFS, HAR, View, FTP, S3, Azure, Swift

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

  • 盡管運(yùn)行的MapReduce 程序可以訪問(wèn)任何文件系統(tǒng),但在處理大數(shù)據(jù)集的時(shí)候,建議還是選擇一個(gè)有數(shù)據(jù)本地化優(yōu)勢(shì)的分布式文件系統(tǒng),如HDFS

  • 接口

    • 用戶控件文件系統(tǒng), 允許將用戶空寂那實(shí)現(xiàn)的文件系統(tǒng)作為Unix 文件系統(tǒng)進(jìn)行集成。

    • 通過(guò)使用Fuse-DFS 模塊,HDFS均可以作為一個(gè)標(biāo)準(zhǔn)的本地文件系統(tǒng)進(jìn)行掛載。

    • NFS 網(wǎng)關(guān)是更好的方案,應(yīng)該選擇

    • 使用hadoop 的NFSv3 網(wǎng)關(guān)將HDFS掛載為本地客戶端的文件系統(tǒng)是可行的。

    • 可以使用Unix程序與該文件系統(tǒng)交互

    • HDFS僅能以追加模式寫(xiě)文件,因此可以往文件末尾添加數(shù)據(jù),但不能隨機(jī)修改文件

    • HTTP接口比原生的Java客戶端要慢,不要用它來(lái)傳出特大數(shù)據(jù)

    • 訪問(wèn)方式 直接訪問(wèn)(namenode 和 datanode 內(nèi)嵌的 web服務(wù)器作為 WebHDFS 的端節(jié)點(diǎn)運(yùn)行 dfs.webhdfs.enabled 設(shè)置為true)

    • 通過(guò)代理訪問(wèn)

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

    • HTTP

    • c 語(yǔ)言(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

    • 查詢文件系統(tǒng)

    • FileStatus 類封裝了文件系統(tǒng)中文件和目錄的元數(shù)據(jù)

    • public boolean exists(Path f) throws IOException

    • 寫(xiě)入數(shù)據(jù)

         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()是一個(gè)相對(duì)高開(kāi)銷的操作,需要謹(jǐn)慎使用,建議用流數(shù)據(jù)來(lái)構(gòu)建應(yīng)用的訪問(wèn)模式,而非執(zhí)行大量的seek()方法 hadoop jar hadoopdemo-1.0-SNAPSHOT.jar FileSystemDoubleCat hdfs:///user/hadoop/output/part-r-00000

    • 通過(guò) FileSystem

    • 通過(guò)URL讀取數(shù)據(jù) FsUrlStreamHandlerFactory IOUtils

上述就是小編為大家分享的Hadoop分布式文件系統(tǒng)中的HDFS是什么了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

文章名稱:Hadoop分布式文件系統(tǒng)中的HDFS是什么
文章轉(zhuǎn)載:http://bm7419.com/article2/pcojoc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)軟件開(kāi)發(fā)、網(wǎng)站制作、自適應(yīng)網(wǎng)站、網(wǎng)站改版、網(wǎng)站設(shè)計(jì)公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站