<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    莊周夢蝶

    生活、程序、未來
       :: 首頁 ::  ::  :: 聚合  :: 管理
    HDFS用戶指南
    原文地址:http://hadoop.apache.org/core/docs/current/hdfs_user_guide.html
    譯者:dennis zhuang(killme2008@gmail.com),有錯(cuò)誤請(qǐng)指正,多謝。

    目的

    本文檔可以作為使用Hadoop分布式文件系統(tǒng)用戶的起點(diǎn),無論是將HDFS應(yīng)用在一個(gè)Hadoop集群中還是作為一個(gè)單獨(dú)的分布式文件系統(tǒng)使用。HDFS被設(shè)計(jì)成可以馬上在許多環(huán)境中工作起來,那么一些HDFS的運(yùn)行知識(shí)肯定能大大地幫助你對(duì)一個(gè)集群做配置改進(jìn)和診斷。

    概覽

    HDFS是Hadoop應(yīng)用的主要分布式存儲(chǔ)。一個(gè)HDFS集群由一個(gè)管理文件系統(tǒng)元數(shù)據(jù)的NameNode,和存儲(chǔ)實(shí)際 數(shù)據(jù)的一些Datanode組成。HDFS的架構(gòu)在這里有詳細(xì)描述。這個(gè)用戶指南主要提供給需要跟HDFS集群打交道的用戶或者管理員。HDFS架構(gòu)文章 中的圖描繪了Namenode、Datanode和客戶端們之間的基本交互。本質(zhì)上,客戶端與Namenode通訊獲取或者修改文件的元數(shù)據(jù),與 Datanode進(jìn)行實(shí)際的IO操作。

    下面的列表應(yīng)該是大多數(shù)用戶關(guān)心的HDFS突出特點(diǎn)。斜體字的術(shù)語將在后面詳細(xì)描述。

    1)Hadoop,包括HDFS,非常適合廉價(jià)機(jī)器上的分布式存儲(chǔ)和分布式處理。它是容錯(cuò)的、可伸縮的,并且非常易于擴(kuò)展。并且,以簡單性和適用性著稱的Map-Reduce是Hadoop不可或缺的組成部分。

    2)HDFS的默認(rèn)配置適合于大多數(shù)安裝的應(yīng)用。通常情況下,只有在一個(gè)非常大規(guī)模的集群上才需要修改默認(rèn)配置。

    3)HDFS是用java編寫的,支持大多數(shù)平臺(tái)。

    4)支持shell命令行風(fēng)格的HDFS目錄交互。

    5)Namenode和Datanode都內(nèi)建了web服務(wù)器,可以方便地查看集群的狀態(tài)

    6)HDFS經(jīng)常性地實(shí)現(xiàn)新的特性和改進(jìn),下面是HDFS中的一些有用特性的子集:

       文件許可和授權(quán)

       Rack awareness:當(dāng)調(diào)度任務(wù)和分配存儲(chǔ)的時(shí)候?qū)⒐?jié)點(diǎn)的物理位置考慮進(jìn)去。

       Safemode(安全模式):用于維護(hù)的一個(gè)管理狀態(tài)

       fsck: 診斷文件系統(tǒng)的一個(gè)工具,用來查找丟失的文件或者block

       Rebalancer:當(dāng)數(shù)據(jù)在Datanode間沒有均勻分布的時(shí)候,用于重新平衡集群的工具

       升級(jí)和回滾:當(dāng)Hadoop軟件升級(jí),在升級(jí)遇到不可預(yù)期的問題的時(shí)候,可以回滾到HDFS升級(jí)前的狀態(tài)

       二級(jí)Namenode:幫助Namenode維持包含了HDFS修改的日志的文件(edits日志文件,下文談到)大小在限制范圍內(nèi)。

    前提條件

    下面的文檔描述了一個(gè)Hadoop集群的安裝和設(shè)置:


    本文檔的剩余部分假設(shè)你已經(jīng)搭設(shè)并運(yùn)行了一個(gè)至少擁有一個(gè)Datanode的HDFS。基于本文檔的目的,Namenode和Datanode可以運(yùn)行在同一臺(tái)機(jī)器上。

    Web接口

    Namenode和Datanode分別跑了一個(gè)內(nèi)置的web服務(wù)器,來展現(xiàn)集群當(dāng)前狀態(tài)的一些基本信息。在默認(rèn)配置 下,Namenode的首頁地址是http://namenode:50070(namenode就是Namenode節(jié)點(diǎn)所在機(jī)器IP或者名稱)。這個(gè) 頁面列出了集群中的所有datanode以及集群的基本統(tǒng)計(jì)。web接口同樣可以用于瀏覽文件系統(tǒng)(點(diǎn)擊Namenode首頁上的“Browse the file system"鏈接)。

    Shell命令

    Hadoop包括了多種shell風(fēng)格的命令,用于跟HDFS或者Hadoop支持的其他文件系統(tǒng)交互。命令 bin/hadoop fs -help 可以列出Hadoop shell支持的命令。更進(jìn)一步,bin/hadoop fs -help command 可以展現(xiàn)特定命令command的幫助細(xì)節(jié)。這些命令支持一般文件系統(tǒng)的操作,例如拷貝文件、修改文件權(quán)限等。同時(shí)也支持了部分HDFS特有的命令,例如 修改文件的replication因子。

    DFSAdmin命令

    'bin/hadoop dfsadmin' 命令支持一些HDFS管理功能的操作。'bin/hadoop dfsadmin -help'可以列出所有當(dāng)前支持的命令。例如:

    • -report : 報(bào)告HDFS的基本統(tǒng)計(jì)信息。部分信息同時(shí)展現(xiàn)在Namenode的web首頁上。 
    • -safemode : 盡管通常并不需要,管理員還是可以通過手工操作進(jìn)入或者離開safemode狀態(tài)
    • -finalizeUpgrade : 移除上一次升級(jí)時(shí)集群所做的備份。

    二級(jí)Namenode

    Namenode將對(duì)文件系統(tǒng)的修改存儲(chǔ)在一個(gè)原生文件系統(tǒng)文件中(名為edits的文件)。當(dāng)Namenode啟動(dòng)的時(shí) 候,它從映像文件(fsimage)讀取HDFS的狀態(tài),然后將edits日志文件中的修改作用在此內(nèi)存狀態(tài)上,接著將得到的新的HDFS狀態(tài)寫回 fsimage,后續(xù)的正常操作開始于一個(gè)空的edits日志文件。由于Namenode僅僅在啟動(dòng)的時(shí)候?qū)simage和edits合并,因此在一個(gè) 大的集群上經(jīng)過一定時(shí)間操作后,edits文件將會(huì)非常大。由此帶來的一個(gè)副作用就是下次Namenode的重新啟動(dòng)將花費(fèi)很長時(shí)間。二級(jí) Namenode就是為了解決這個(gè)問題,它會(huì)周期性地合并fsimage和edits日志文件,并且將edits日志文件的大小保持在限制范圍內(nèi)。通常它 會(huì)跑在另一個(gè)機(jī)器上,因?yàn)樗膬?nèi)存要求跟主namenode一樣。二級(jí)Namenode可以通過'bin/start-dfs.sh'啟動(dòng)在conf /masters配置文件里配置的節(jié)點(diǎn)上。

    Rebalancer

    HDFS的數(shù)據(jù)可能不會(huì)總是在Datanode之間分布得很一致。一個(gè)常見的原因是往現(xiàn)有的集群中加入了新的Datanode。當(dāng)分配block的時(shí)候,Namenode依據(jù)幾個(gè)參數(shù)來決定哪個(gè)datanode來接受這些block。一些需要考慮的因素如下:

    1)一個(gè)block的副本存放在正在寫該block的節(jié)點(diǎn)上

    2)需要將一個(gè)block的副本擴(kuò)展到其他機(jī)架上,防止因?yàn)檎麄€(gè)機(jī)架故障導(dǎo)致的數(shù)據(jù)丟失。

    3)副本之一通常放在同一個(gè)機(jī)架的另一個(gè)節(jié)點(diǎn)上,減少跨機(jī)架的網(wǎng)絡(luò)IO

    4)將HDFS數(shù)據(jù)均勻一致地分布在集群中的datanode上。

        基于這些相互競爭的因素,數(shù)據(jù)可能不會(huì)在Datanode之間擴(kuò)展得一致。HDFS給管理員提供了一個(gè)工具,用來分析block的分配情況和在datanode之間重新平衡數(shù)據(jù)。這個(gè)功能暫未實(shí)現(xiàn),它的描述可以在這個(gè) PDF文檔中看到,記錄編號(hào)HADOOP-1652.

    Rack Awareness

    典型的大規(guī)模Hadoop集群是部署在數(shù)個(gè)機(jī)架上的,那么顯然同一個(gè)機(jī)架內(nèi)的節(jié)點(diǎn)間的網(wǎng)絡(luò)通訊比之不同機(jī)架間節(jié)點(diǎn)間的網(wǎng) 絡(luò)通訊更可取。另外,Namenode會(huì)嘗試將block的副本分布在數(shù)個(gè)機(jī)架中以提高容錯(cuò)性。Hadoop讓集群管理員來決定某個(gè)節(jié)點(diǎn)從屬于哪個(gè)機(jī)架, 通過配置變量dfs.network.script來實(shí)現(xiàn)。當(dāng)這個(gè)腳本有配置的時(shí)候,每個(gè)節(jié)點(diǎn)都運(yùn)行該腳本來決定它的rackid。默認(rèn)安裝假設(shè)所有的節(jié) 點(diǎn)從屬于同一個(gè)機(jī)架。這個(gè)特性和配置進(jìn)一步的闡述在這個(gè)PDF文檔,編號(hào)為 HADOOP-692

    Safemod(安全模式)

    當(dāng)Namenode啟動(dòng)的時(shí)候,它從fsimage和edits日志兩個(gè)文件中加載文件系統(tǒng)的狀態(tài)。然后等待 datanode報(bào)告他們的block信息,以便防止Namenode在確認(rèn)block副本是否足夠前過早地開始復(fù)制block。這段時(shí)間的 Namenode就是處于所謂safemode狀態(tài)。處于safemode的Namenode也是HDFS集群的只讀模型,此時(shí)不允許任何對(duì)文件系統(tǒng)或者 block的修改。正常情況下,Namenode會(huì)在開始后自動(dòng)退出safemode。如果有需要,HDFS可以通過'bin/hadoop dfsadmin -safemode'命令顯式地進(jìn)入safemode狀態(tài)。Namenode的web首頁顯示當(dāng)前的safemode是否打開。更詳細(xì)的描述和配置可以參 考setSafeMode()方法的JavaDoc。

    譯 注:詳細(xì)介紹下safemode的配置參數(shù),在safemode狀態(tài),Namenode會(huì)等待所有的datanode報(bào)告他們自己的block信息,看看 所有的block的副本是否達(dá)到最低要求的數(shù)目,這個(gè)數(shù)目可以通過dfs.replication.min參數(shù)配置,默認(rèn)是1,也就是至少要求有一個(gè)副 本。當(dāng)報(bào)告合格的Datanode的數(shù)目達(dá)到一定百分比,Namenode才會(huì)離開safemode狀態(tài)。這個(gè)百分比也是可配置的,通過 dfs.safemode.threshold.pct參數(shù),默認(rèn)是0.999f(也就是要求99.9%的Datanode 合格)。Namenode在合格的datanode數(shù)目達(dá)到要求的時(shí)候,并不是馬上離開safemode狀態(tài),會(huì)有一個(gè)擴(kuò)展時(shí)間,讓剩余的 datanode來報(bào)告block信息,這個(gè)擴(kuò)展時(shí)間默認(rèn)是30秒,可以通過dfs.safemode.extension參數(shù)配置,單位是毫秒。

    Fsck

    HDFS提供了fsck命令用來檢測各種各樣的不一致性。fsck被設(shè)計(jì)用來報(bào)告各種文件的問題,例如某個(gè)文件丟失的 block,block的副本數(shù)目是否低于設(shè)置等。不同于傳統(tǒng)的一般原生文件系統(tǒng)的fsck命令,hdfs的fsck命令并不修正所檢測到的錯(cuò)誤。通常情 況下,Namenode會(huì)自動(dòng)修正大多數(shù)可以被修復(fù)的錯(cuò)誤,HDFS的fsck不是Hadoop shel的命令,可以通過'bin/hadoop fsck'執(zhí)行,可以運(yùn)行在整個(gè)文件系統(tǒng)上或者一個(gè)文件子集上。

    升級(jí)和回滾

    當(dāng)升級(jí)某個(gè)集群的Hadoop的時(shí)候,正如任何軟件的升級(jí)一樣,可能會(huì)引入新的bug或者不兼容的修改導(dǎo)致現(xiàn)有的應(yīng)用出 現(xiàn)過去沒有發(fā)現(xiàn)的問題。在所有重要的HDFS安裝應(yīng)用中,是不允許出現(xiàn)因丟失任何數(shù)據(jù)需要從零開始重啟HDFS的情況。HDFS允許管理員恢復(fù)到 Hadoop的早期版本,并且將集群的狀態(tài)回滾到升級(jí)前。HDFS的升級(jí)細(xì)節(jié)請(qǐng)參考 upgrade wiki。HDFS在任何時(shí)間只能有一個(gè)備份,因此在升級(jí)前,管理員需要通過'bin/hadoop dfsadmin -finalizeUpgrade'命令移除現(xiàn)有的備份。下面簡要描述了典型的升級(jí)過程:

    1)在升級(jí)Hadoop前,如果已經(jīng)存在備份,需要先結(jié)束(finalize)它。可以通過'dfsadmin -upgradeProgress status'命令查詢集群是否需要執(zhí)行finalize

    2)停止集群,分發(fā)部署新版本的Hadoop

    3)執(zhí)行新版本的hadoop,通過添加 -upgrade 選項(xiàng),例如/bin/start-dfs.sh -upgrade

    4)大多數(shù)情況下,集群在升級(jí)后可以正常運(yùn)行。一旦新的HDFS在運(yùn)行若干天的操作后沒有出現(xiàn)問題,那么就可以結(jié)束(finalize)這次升級(jí)。請(qǐng)注意,在升級(jí)前刪除的文件并不釋放在datanode上的實(shí)際磁盤空間,直到集群被結(jié)束(finalize)升級(jí)前。

    5)如果有需要回到老版本的Hadoop,那么可以:

       a)停止集群,分發(fā)部署老版本的Hadoop

       b)通過rollback選項(xiàng)啟動(dòng)集群,例如bin/start-dfs.sh -rollback

    文件許可和安全

    文件許可的設(shè)計(jì)與其他平臺(tái)(如linux) 的文件系統(tǒng)類似。在當(dāng)前實(shí)現(xiàn),安全被限制在簡單的文件許可上。啟動(dòng)Namenode的用戶被作為HDFS的超級(jí)用戶。HDFS的未來版本將支持網(wǎng)絡(luò)驗(yàn)證, 例如Kerberos方案(譯注:MIT開發(fā)的一個(gè)驗(yàn)證系統(tǒng))的用戶驗(yàn)證以及數(shù)據(jù)傳輸?shù)募用堋8敿?xì)的討論參考Permissions User and Administrator Guide

    伸縮性

    Hadoop正運(yùn)行在成千上萬個(gè)節(jié)點(diǎn)的集群上。 PoweredBy Hadoop列 出了一些部署Hadoop在大規(guī)模集群上的組織和機(jī)構(gòu)。HDFS在每個(gè)集群上只有一個(gè)Namenode節(jié)點(diǎn),Namenode節(jié)點(diǎn)上可用內(nèi)存是當(dāng)前伸縮性 的主要限制。在非常大規(guī)模的集群上,增加HDFS中存儲(chǔ)的文件的平均大小,將可以幫助提高集群的大小而不用增加Namenode的內(nèi)存需求。默認(rèn)的配置可 能不適合非常大規(guī)模的集群應(yīng)用。Hadoop FAQ頁列出了對(duì)于大規(guī)模Hadoop集群的配置改進(jìn)建議。

    關(guān)聯(lián)文檔

     本用戶指南可作為使用HDFS很好的一個(gè)起點(diǎn),在本文檔持續(xù)改進(jìn)的同時(shí),有一些非常有價(jià)值的關(guān)于Hadoop和HDFS的文檔資料可供參考。下列資料可作為進(jìn)一步探索的起點(diǎn):



    評(píng)論

    # re: HDFS用戶指南(翻譯)  回復(fù)  更多評(píng)論   

    2008-08-15 15:30 by 軒朗=maninred
    well done!

    # re: HDFS用戶指南(翻譯)  回復(fù)  更多評(píng)論   

    2008-08-17 18:03 by dell電腦
    well done!我給存起來了,以后要是能變成一本電子書就好了。
    主站蜘蛛池模板: 一级有奶水毛片免费看| 午夜精品在线免费观看| 4444www免费看| 日本xxwwxxww在线视频免费| 国产又黄又爽又猛的免费视频播放 | 免费一级国产生活片| 亚洲精品偷拍视频免费观看| 亚洲人成人网站色www| 亚洲一级毛片在线播放| 国产精品亚洲一区二区三区| 永久免费不卡在线观看黄网站| 巨波霸乳在线永久免费视频| 国产精品无码素人福利免费| 国产亚洲精品福利在线无卡一| 亚洲av无码久久忘忧草| 久久亚洲AV成人无码国产电影 | 久久国产精品免费| 性做久久久久久久免费看| 亚洲日本va中文字幕久久| 亚洲国产精品综合久久20| 成人久久免费网站| 亚洲国产精品视频| 无码一区二区三区亚洲人妻| 久视频精品免费观看99| 亚洲国产精品嫩草影院在线观看| 亚洲伊人久久大香线蕉AV| 最近2019免费中文字幕6| 亚洲妇熟XXXX妇色黄| 免费在线人人电影网| 成人免费看黄20分钟| 亚洲天堂中文字幕在线观看| a视频在线免费观看| 亚洲综合伊人久久大杳蕉| 免费无码又爽又黄又刺激网站| 免费看的成人yellow视频| 亚洲日韩精品无码专区| 免费的一级片网站| 黄色免费在线网址| 亚洲中文字幕丝袜制服一区| 亚洲国产免费综合| 国产日韩亚洲大尺度高清|