這篇文章主要介紹了大數(shù)據(jù)云計算面試之HDFS架構(gòu)的示例分析,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
創(chuàng)新互聯(lián)建站擁有網(wǎng)站維護(hù)技術(shù)和項目管理團(tuán)隊,建立的售前、實施和售后服務(wù)體系,為客戶提供定制化的網(wǎng)站設(shè)計制作、網(wǎng)站建設(shè)、網(wǎng)站維護(hù)、四川電信科技城機(jī)房解決方案。為客戶網(wǎng)站安全和日常運(yùn)維提供整體管家式外包優(yōu)質(zhì)服務(wù)。我們的網(wǎng)站維護(hù)服務(wù)覆蓋集團(tuán)企業(yè)、上市公司、外企網(wǎng)站、商城網(wǎng)站建設(shè)、政府網(wǎng)站等各類型客戶群體,為全球成百上千企業(yè)提供全方位網(wǎng)站維護(hù)、服務(wù)器維護(hù)解決方案。
HDFS架構(gòu)
可以查看官網(wǎng)的描述
https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/HdfsDesign.html
介紹NameNode and DataNodes
結(jié)合上圖官網(wǎng) 描述可以總結(jié)
HDFS has a master/slave architecture 是一個主從的架構(gòu)
An HDFS cluster consists of a single NameNode 一個集群只有一個NameNode
there are a number of DataNodes, usually one per node in the cluster, which manage storage attached to the nodes that they run on. 有多個 DataNodes 主要作用是管理manages 文件系統(tǒng)的命名空間,和管理需要訪問文件的客戶端
HDFS exposes a file system namespace and allows user data to be stored in files. HDFS公開了文件系統(tǒng)名稱空間,并允許用戶數(shù)據(jù)存儲在文件中。
根據(jù)上圖
可以看到有這么幾個概念
Client
NameNode( 簡寫為NN)
DataNodes (簡寫為 DN)
Block
Client 用于發(fā)起HDFS請求,可以是用戶,可以是代碼
NN 存在唯一一個,所以存在SinglePoint of Failure (單點故障的問題) 引出 ==》HA(heigh available)
DN 存在多個
作用:存儲數(shù)據(jù) 和NN 之間有心跳
Namenode 創(chuàng)建的時候,配置有文件名字、 副本數(shù) 等
2.讀寫流程
了解架構(gòu)后,我們來看讀寫流程
假設(shè)我們有一個client 一個NameNode 三個DataNode,等幾個角色
(1)寫入流程
1.一個用戶、代碼需要寫入文件
第一步:client 從配置文件(hdfs 的配置文件中)獲取到 1. 副本大小 2.副本數(shù)量
第二步:在第一步獲取的的參數(shù)中,進(jìn)行文件拆分
第三步:client 向 NameNode 發(fā)起請求,詢問NameNode 文件應(yīng)該放在哪里
第四步: NameNode 返回文件,可以存放到的位置
第五步:client 對指定的DataNode 位置寫入文件
DataNode 寫入完成進(jìn)行副本拷貝和通知NameNode
(2)讀取流程(就相對比較簡單了)
第一步:客戶段請求NameNode 文件
第二步:NameNode 返回存放該數(shù)據(jù)的DataNode 地址
第三步:client 到DataNode 讀取數(shù)據(jù)
3.HA (高可用)架構(gòu)
在官網(wǎng)上可以看到有QJM 和NFS 架構(gòu)
QJM(https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/HDFSHighAvailabilityWithQJM.html)
NFS(https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/HDFSHighAvailabilityWithNFS.html)
其中見常見的HA框架如下圖所示
建立多個NameNode 一個Active 活動狀態(tài), 一個Standby 備用,通過Monitor Health 監(jiān)控狀態(tài), 通過Zookeeper 協(xié)調(diào)主備切換
4.小文件是什么
小文件是指文件size小于HDFS上block大小的文件。這樣的文件會給hadoop的擴(kuò)展性和性能帶來嚴(yán)重問題
為什么有小文件?
5.小文件帶來的瓶頸
1.磁盤IO
2.task啟動銷毀的開銷
3.資源有限(磁盤空間)
具體為:處理大量小文件速度遠(yuǎn)遠(yuǎn)小于處理同等大小的大文件的速度。每一個小文件要占用一個slot,而task啟動將耗費(fèi)大量時間甚至大部分時間都耗費(fèi)在啟動task和釋放task上。
最后小文件的解決方法:
通用處理方案:
1、Hadoop Archive
Hadoop Archive或者HAR,是一個高效地將小文件放入HDFS塊中的文件存檔工具,它能夠?qū)⒍鄠€小文件打包成一個HAR文件,這樣在減少namenode內(nèi)存使用的同時,仍然允許對文件進(jìn)行透明的訪問。
2、Sequence file
sequence file由一系列的二進(jìn)制key/value組成,如果為key小文件名,value為文件內(nèi)容,則可以將大批小文件合并成一個大文件。
底層處理方案:
HDFS-8998:
DataNode劃分小文件區(qū),專門存儲小文件。一個block塊滿了開始使用下一個block。
HDFS-8286:
將元數(shù)據(jù)從namenode從內(nèi)存移到第三方k-v存儲系統(tǒng)中。
HDFS-7240:
Apache Hadoop Ozone,hadoop子項目,為擴(kuò)展hdfs而生。
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“大數(shù)據(jù)云計算面試之HDFS架構(gòu)的示例分析”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!
本文標(biāo)題:大數(shù)據(jù)云計算面試之HDFS架構(gòu)的示例分析
本文鏈接:http://chinadenli.net/article18/jgjcgp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)、品牌網(wǎng)站建設(shè)、動態(tài)網(wǎng)站、移動網(wǎng)站建設(shè)、域名注冊、企業(yè)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)