日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

3.17-3.18 HDFS2.x中高级特性讲解

發(fā)布時間:2025/4/16 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 3.17-3.18 HDFS2.x中高级特性讲解 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、hdfs federation

hdfs federation即hdfs的聯(lián)邦;可以理解為有多個namenode節(jié)點的hdfs集群;

HA方案解決的是單點故障問題,而Fdederation解決的是單命名空間問題。

集群的全部元數(shù)據(jù)都存放在一個名稱節(jié)點上,當集群足夠大的時候,這個名稱節(jié)點就成了性能的瓶頸。

而且這種設計不能進行 的隔離,用戶的所有操作都必須由這一個節(jié)點來處理。

HDFS Federation就是使HDFS支持多個命名空間,并且允許在HDFS中同時存在多個NameNode。

HDFS Federation的構(gòu)架如上,其使用了多個獨立的NameNode/NameSpace,從而使HDFS的命名服務器能水平擴張。

?

各個名稱節(jié)點之間是聯(lián)合的,即他們相互獨立且不需要相互協(xié)調(diào),各自分工,管理好自己的區(qū)域。

分布式的DataNode對聯(lián)合的NameNode來說是通用的數(shù)據(jù)塊存儲設備。每個數(shù)據(jù)節(jié)點要向所有的名稱節(jié)點注冊,

并且周期性發(fā)送心跳和塊信息報告,同時處理來自所有NameNode的指令。

?

只有一個名稱節(jié)點的HDFS只有一個命名空間,它使用全部的塊,而Federation中有多個獨立的命名空間,每個命名空間使用一個塊池(block pool)。

?

塊池就是屬于單個命名空間的一組塊。每一個datanode為所有的block pool的存儲塊。dataNode是一個物理概念而block pool是一個重新將塊劃分的邏輯概念。

同個dataNode中可以存著屬于多個block pool的多個塊。block pool允許一個命名空間在不通知其它命名空間的情況下為一個新的block創(chuàng)建Block ID,

同時,一個nameNode的失效不會影響其下的dataNode為其它nameNode服務。

?

當datanode與Namenode建立聯(lián)系并開始會話后自動建立Block pool。每個block都有一個唯一的標識,這個標識我們稱之為擴展的塊ID(Extended Block ID)= BlockID+BlockID。

這個擴展的塊ID在HDFS集群之間都是唯一的,這為以后集群歸并創(chuàng)造了條件。

?

Datanode中的數(shù)據(jù)結(jié)構(gòu)都通過塊池ID(BlockPoolID)索引,即datanode中的BlockMap,storage等都通過BPID索引。

?

在HDFS中,所有的更新、回滾都是以Namenode和BlockPool為單元發(fā)生的。即同一HDFS Federation中不同的Namenode/BlockPool之間沒有什么關系。

?

需要注意的是,HDFS Federation并不能解決單點故障問題。也就是說,每個名稱節(jié)點仍然可能存在單點故障,節(jié)點間是聯(lián)盟關系而非互為備份。

因此,我們還是需要為每個節(jié)點設置ha機制。

?

多命名空間的管理用的是一種叫client side mount table的方法。


如下面的圖所示,白色大三角形是客戶端所看到的,黑色三角形是各個子命名空間。用戶可以通過訪問不同掛載點來訪問不同空間。

?

二、File System Snapshots

HDFS快照是一個只讀的基于時間點文件系統(tǒng)拷貝。快照可以是整個文件系統(tǒng)的也可以是一部分。常用來作為數(shù)據(jù)備份,防止用戶錯誤和容災快照功能。HDFS實現(xiàn)功能:|>Snapshot創(chuàng)建的時間復雜度為O(1),但是不包括Node的尋找時間>只有當修改SnapShot時,才會有額外的內(nèi)存占用,內(nèi)存使用量為0(V).M為修改的文件或者目錄數(shù)>在DataNode上面的blocks不會復制,做Snapshot的文件是紀錄了block的列表和文件的大小,但是沒有數(shù)據(jù)的復制>Snapshot并不會影響HDFS的正常操作:修改會按照時間的反序記錄,這樣可以直接讀取到最新的數(shù)據(jù)。快照數(shù)據(jù)是當前數(shù)據(jù)減去修改的部分計算出來的。

相關命令:

設置一個目錄為可快照bin/hdfs dfsadmin-allowSnapshot <path>取消目錄可快照bin/hdfs dfsadmin-disallowSnapshot <path>生成快照bin/hdfs dfs-createSnapshot <path>[<snapshotName>]刪除快照bin/hdfs dfs-deleteSnapshot <path><snapshotName>列出所有可快照目錄bin/hdfs IsSnapshottableDir比較快照之間的差異bin/hdfs snapshotDiff <path><fromSnapshot><toSnapshot>

?

三、集中式緩存管理

Hadoop從2.3.0版本開始支持HDFS緩存機制,HDFS允許用戶將一部分目錄或文件緩存在HDFS當中, NameNode會通知擁有對應塊的DataNodes將其緩存在DataNode的內(nèi)存當中。優(yōu)勢>防止那些被頻繁使用的數(shù)據(jù)從內(nèi)存中清除;>因為DataNode的緩存由NameNode來管理,applications在做任務安排時可以查詢這個緩存的列表,使用一個被緩存的塊副本能夠提高讀性能;>當塊被DataNode緩存之后,客戶端可以使用一個新的、高效的、zero-copy的讀API,因為緩存中的數(shù)據(jù)已經(jīng)被計算過checksum,當使用新APl時,客戶端基本上是零開銷的;>可以提高集群的內(nèi)存利用率。當使用操作系統(tǒng)的緩存時,對一個塊的重復讀會導致所有的副本都會被放到緩沖區(qū)當中,當使用集中式緩存時,用戶可以指定n個副本中的m個才會被緩存,可以節(jié)約n-m的內(nèi)存;使用場景>集中式緩存對那些頻察訪問的的文件是非常有用的,例如hive中經(jīng)常被使用的fact表就非常適合緩有;>另一方面,緩存一年的查詢結(jié)果可能沒那么有用了,因為這個結(jié)果可能只會被查看一次;>有助于提高混合類型作業(yè)的SLA性能,把高優(yōu)先級的數(shù)據(jù)緩存起來可以確保它不會與低優(yōu)先級的數(shù)據(jù)競爭磁盤IO;

?

四、Distributed Copy

1、DistCP

Distributed Copy:分布式copy

比如有多個hadoop集群(如:正式版、測試版),可以用此功能來跨集群copy數(shù)據(jù);

#用法 bash$ hadoop distcp hdfs://nn1:8020/foo/bar hdfs://nn2:8020/bar/foo

?

2、HFTP

但是當集群版本不一致的時候,用dictcp可能就會出問題;

此時可以用HFTP;底層為MapReduce

但是官網(wǎng)提示:HFTP和HSFTP在2.x中已棄用,并且在3.0中不可用。它們已被WebHDFS取代。

webHDFS: http://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/WebHDFS.html

?

介紹 HFTP是一種Hadoop文件系統(tǒng)實現(xiàn),允許您從遠程Hadoop HDFS集群讀取數(shù)據(jù)。讀取通過HTTP完成,數(shù)據(jù)來自DataNodes。 HFTP是一個只讀文件系統(tǒng),如果您嘗試使用它來寫入數(shù)據(jù)或修改文件系統(tǒng)狀態(tài),它將拋出異常。如果您有多個具有不同版本的HDFS群集,并且您需要將數(shù)據(jù)從一個移動到另一個,則HFTP主要非常有用。 即使在不同版本的HDFS之間,HFTP也是線路兼容的。例如,您可以執(zhí)行以下操作: hadoop distcp -i hftp://sourceFS:50070/src hdfs://destFS:8020/dest 請注意,HFTP是只讀的,因此目標必須是HDFS文件系統(tǒng)。(此外,在此示例中,應使用新文件系統(tǒng)的配置來運行distcp。)擴展名HSFTP默認使用HTTPS。這意味著數(shù)據(jù)將在傳輸過程中加密。

轉(zhuǎn)載于:https://www.cnblogs.com/weiyiming007/p/10728977.html

總結(jié)

以上是生活随笔為你收集整理的3.17-3.18 HDFS2.x中高级特性讲解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。