<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          二、分布式文件系統(tǒng)HDFS及其簡單使用

          共 1945字,需瀏覽 4分鐘

           ·

          2021-04-11 23:44


          在現(xiàn)代的企業(yè)環(huán)境中,單機容量往往無法存儲大量數(shù)據(jù),需要跨機器存儲。統(tǒng)一管理分布在集群上的文件系統(tǒng)稱為分布式文件系統(tǒng)。

          HDFS

          HDFS(Hadoop Distributed File System)是 Apache Hadoop 項目的一個子項目. Hadoop 非常適于存儲大型數(shù)據(jù) (比如 TB 和 PB), 其就是使用 HDFS 作為存儲系統(tǒng). HDFS 使用多臺計算機存儲文件, 并且提供統(tǒng)一的訪問接口。

          HDFS是根據(jù)谷歌的論文:《The Google File System》進(jìn)行設(shè)計的

          HDFS的四個基本組件:HDFS Client、NameNode、DataNode和Secondary NameNode。

          Client

          Client是客戶端。HDFS Client文件切分。文件上傳 HDFS 的時候,Client 將文件切分成 一個一個的Block,然后進(jìn)行存儲。Client 提供一些命令來管理 和訪問HDFS,比如啟動或者關(guān)閉HDFS。

          NameNode

          NameNode就是 master,它是一個主管、管理者。管理 HDFS 元數(shù)據(jù)(文件路徑,文件的大小,文件的名字,文件權(quán)限,文件的block切片信息)。

          NameNode管理 Block 副本策略:默認(rèn) 3 個副本,處理客戶端讀寫請求。

          DataNode

          DataNode就是Slave。NameNode下達(dá)命令,DataNode 執(zhí)行實際的操作。

          DataNode存儲實際的數(shù)據(jù)塊,執(zhí)行數(shù)據(jù)塊的讀/寫操作。定時向namenode匯報block信息。

          Secondary NameNode

          SecondaryNameNode不是NameNode的備份。當(dāng)NameNode掛掉的時候,它并不能馬上替換NameNode并提供服務(wù)。

          輔助 NameNode,分擔(dān)其工作量。在緊急情況下,可輔助恢復(fù) NameNode。

          副本機制

          HDFS被設(shè)計成能夠在一個大集群中跨機器可靠地存儲超大文件。它將每個文件存儲成一系列的數(shù)據(jù)塊,這個數(shù)據(jù)塊被稱為block,除了最后一個,所有的數(shù)據(jù)塊都是同樣大小的。

          為了容錯,文件的所有block都會有副本。每個文件的數(shù)據(jù)塊大小和副本系數(shù)都是可配置的。

          在hadoop2 當(dāng)中, 文件的 block 塊大小默認(rèn)是 「128M」(134217728字節(jié))。

          如上圖所示,一個大小為300M的a.txt上傳到HDFS中,需要進(jìn)行128M的切分,不足128M分為到另一block中。

          HDFS基本命令

          命令說明
          hadoop fs -mkdir /park在hdfs 的根目錄下,創(chuàng)建 park目錄
          hadoop fs   -ls /查看hdfs根目錄下有哪些目錄
          hadoop fs -put   /root/1.txt /park將linux操作系統(tǒng)root目錄下的1.txt放在hdfs的park目錄下
          hadoop fs -get   /park/jdk /home把hdfs文件系統(tǒng)下park目錄的文件下載到linux的home目錄下
          hadoop  fs -rm /park/文件名刪除hdfs 的park目錄的指定文件
          hadoop fs  -rmdir /park刪除park目錄,但是前提目錄里沒有文件
          hadoop fs  -rmr /park刪除park目錄,即使目錄里有文件
          hadoop fs  -cat /park/a.txt查看park目錄下的a.txt文件
          hadoop fs  -tail /park/a.txt查看park目錄下a.txt文件末尾的數(shù)據(jù)
          hadoop  jar xxx.jar執(zhí)行jar包

          HDFS 簡單使用

          根據(jù)部署的服務(wù),我們的 HDFS 根目錄是 hdfs://192.168.147.128:9820,下面我們嘗試在根目錄下面創(chuàng)建子目錄 user,如下命令所示:

          [hadoop@node01 ~]$ hadoop fs -mkdir /user

          然后在Hadoop頁面打開HDFS。

          此時的user文件夾將會看見。

          下面將一個大小為300M的文件上傳到HDFS的user文件夾中

          然后在Hadoop頁面看見剛剛上傳的文件。

          此時被分開了三個block。

          點擊download,即可下載。



          更多的文章

          點擊下面小程序



          - END -

          瀏覽 67
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  91A视频| 亚洲天堂2021在线 | 琪琪色五月 | 男女黄页网址 | 91传媒在线观看网站 |