溫馨提示×

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

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

HDFS學(xué)習(xí)小結(jié)(Hadoop2.xx版本)v1.2

發(fā)布時(shí)間:2020-06-11 13:51:22 來(lái)源:網(wǎng)絡(luò) 閱讀:697 作者:退而結(jié)網(wǎng)ZP 欄目:大數(shù)據(jù)

hadoop2.xx 集群搭建:http://bigtrash.blog.51cto.com/8966424/1830423


1.HDFS(Hadoop Distributed File System):hadoop分布式文件系統(tǒng),由管理文件系統(tǒng)元數(shù)據(jù)(metadata)的NameNode和存儲(chǔ)實(shí)際數(shù)據(jù)的DataNode組成。      

        通過(guò)分布式的存儲(chǔ)機(jī)制支持線性增長(zhǎng)的海量存儲(chǔ)能力


        數(shù)據(jù)自動(dòng)冗余,無(wú)須通過(guò)RAID進(jìn)行備份

        一次寫入,多次讀,不能修改,簡(jiǎn)單一致,1.xx版不支持append功能

         按照“數(shù)據(jù)就近”原則分配節(jié)點(diǎn)執(zhí)行


2.NameNode:管理hdfs的命名空間

    保存metadata信息:

        文件owership與permissions

        文件包含那些Block

        Block保存在哪個(gè)DataNode

    NameNode的metadata信息存儲(chǔ)到磁盤中的fsp_w_picpath,在hdfs啟動(dòng)后加載到內(nèi)存;

    內(nèi)存中NameNode操作信息會(huì)保存到磁盤中的edits日志中。

 

NameNode啟動(dòng)時(shí)的安全模式階段:

    1)不產(chǎn)生數(shù)據(jù)寫

    2)收集DataNode的報(bào)告,當(dāng)數(shù)據(jù)塊達(dá)到最小副本數(shù)以上,則視為安全;當(dāng)安全塊達(dá)到一定比例后,過(guò)若干時(shí)間退出安全模式

    3)針對(duì)副本數(shù)不足的數(shù)據(jù)塊,自動(dòng)復(fù)制使其達(dá)到最小副本數(shù)


3.DataNode:真正存儲(chǔ)數(shù)據(jù)的地方

    以Block形式存儲(chǔ),每個(gè)塊Block預(yù)設(shè)128M,比目前大多數(shù)文件系統(tǒng)的block塊大,但是物理存儲(chǔ)上不會(huì)占用這么多的空間

    每個(gè)區(qū)塊至少分到三臺(tái)(默認(rèn))DataNode上,其副本數(shù)可以調(diào)整。其副本機(jī)制提高可靠度和讀取吞吐量

    啟動(dòng)DataNode線程時(shí),遍歷本地文件系統(tǒng),產(chǎn)生一份hdfs數(shù)據(jù)塊和本地文件的對(duì)應(yīng)關(guān)系列表,并匯報(bào)給NameNode。


4.Secondary NameNode:

        當(dāng)NameNode啟動(dòng)時(shí),需要合并硬盤上的fsp_w_picpath(HDFS的最新?tīng)顟B(tài))和edits(fsp_w_picpath創(chuàng)建后的),需要消耗大量的啟動(dòng)時(shí)間。這里的Secondary NameNode定時(shí)去下載namenode的fsp_w_picpath文件和edits文件進(jìn)行合并,同時(shí)namenode上啟用新的edits,然后再將合并后的fsp_w_picpath上傳覆蓋namenode,并開(kāi)啟一個(gè)新的edits日志,減少了hdfs啟動(dòng)啟動(dòng)時(shí)間。


5.Checkpoint node:可能是為了避免名字上的混淆,1.0.4 版本后建議使用CheckPoint Node去代替Secondary NameNode,作用及配置基本一樣。

    使用bin/hdfs namenode -checkpoint去啟動(dòng)

    啟動(dòng)NameNode時(shí)-importCheckpoint,可以從checkpioint中導(dǎo)入namenode

    常用配置文件:

        dfs.namenode.checkpoint.period   #edits觸發(fā)一次合并的時(shí)間

        fs.checkpoint.size   #edits觸發(fā)一次合并的大小臨界值

        dfs.namenode.checkpoint.dir  #指定secondary namenode的保存路勁

        dfs.namenode.checkpoint.edits.dir  #指定secondary namenode的edits保存路徑


6.Backup Node:namenode的完全備份。除了提供Checkpoint功能,還復(fù)制master內(nèi)存中的Namespace到自己的內(nèi)存中。Backup Node不僅接收NameNode上的edits保存到磁盤,還應(yīng)用edits到自己的Namespace內(nèi)存復(fù)本,建立了Namespace的完全備份。

    目前hdfs只支持一個(gè)backup node,使用了backup之后就不能使用checkpoing了

        dfs.backup.address  #backup node的位置

        dfs.backup.http.address  #backup node web界面地址

    

    dfs.backup.address配置的節(jié)點(diǎn)上,運(yùn)行bin/hdfs namenode -checkpoint


7. Block三副本放置策略:

        副本1:client的節(jié)點(diǎn)上

        副本2:不同機(jī)架的節(jié)點(diǎn)上

        副本3:與副本2同一機(jī)架的另一個(gè)節(jié)點(diǎn)上


8.DataNode損壞處理機(jī)制:

        1.從DataNode中讀取Block的時(shí)候,它會(huì)計(jì)算checksum

        2.計(jì)算后的checksum與創(chuàng)建時(shí)值不一樣,說(shuō)明該block已經(jīng)損壞

        3.client會(huì)讀取其他DataNode上的block,NameNode標(biāo)記該塊已經(jīng)損壞,然后復(fù)制block達(dá)到預(yù)設(shè)的副本數(shù)(通常在文件創(chuàng)建后三周(默認(rèn))驗(yàn)證其checksum)


9.HDFS的訪問(wèn)方式:

        HDFS SHELL 命令

        HDFS JAVA API

        HDFS REST API

        HDFS FUSE

        HDFS lib hdfs:C/C++訪問(wèn)接口

        thrift

                。。。


10.Hadoop與HDFS的交互類shell:hadoop fs –help命令

    hadoop fs –ls PATH:查看指定目錄下內(nèi)容

    hadoop fs –cat PATH/FILE:查看FILE

    hadoop fs –put LOCAL_PATH/FILE HADOOP_PATH:將本地文件存儲(chǔ)至hadoop

    hadoop fs –put LOCAL_PATH HADOOP_PATH:將本地文件夾存儲(chǔ)至hadoop

    hadoop fs –rm PATH/FILE:刪除FILE

    hadoop fs –rmr PATH:刪除PATH下所有文件

    hadoop fs –mkdir PATH: 新建目錄

    hadoop fs  -touchz  PATH/FILE:創(chuàng)建一個(gè)文件

    hadoop  fs  –mv  PATH/OLD_FILE  PATH/NEW_FILE:  文件重命名

            ......


11.hdfs管理

hadoop-deamon.sh start namenode #啟動(dòng)namenode

hadoop-deamon.sh start datanode #啟動(dòng)datanode


hdfs dfsadmin -help:獲取一些hdfs管理的操作

    -report:報(bào)告HDFS的基本統(tǒng)計(jì)數(shù)據(jù)

    -safemode:安全模式

    -finalizeUpgrade:移除集群最后一次升級(jí)前的備份

    -refreshNodes:重新讀取hosts和exclude文件(dfs.hosts.exclude選項(xiàng)中指定),NameNode重新識(shí)別節(jié)點(diǎn)的改動(dòng)

    -printTopology:顯示集群的拓?fù)?/span>

    -upgradeProgress status/details/force:顯示升級(jí)狀態(tài)/升級(jí)狀態(tài)的細(xì)節(jié)/強(qiáng)制升級(jí)操作


hadoop  fsck: 文件管理

        <path>              檢查這個(gè)目錄中的文件是否完整

        -move               破損的文件移至/lost+found目錄
        -delete             刪除破損的文件

        -openforwrite  打印正在打開(kāi)寫操作的文件

        -files                打印正在check的文件名

        -blocks             打印block報(bào)告 (需要和-files參數(shù)一起使用)

        -locations         打印每個(gè)block的位置信息(需要和-files參數(shù)一起使用)

        -racks               打印位置信息的網(wǎng)絡(luò)拓?fù)鋱D (需要和-files參數(shù)一起使用)

start-balancer.sh -threshold:數(shù)據(jù)塊重新分布

可以通過(guò)Web服務(wù)查看集群中NameNode和DataNode的狀態(tài)。

    http://master:50070/ :顯示集群當(dāng)前基本狀態(tài)


向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI