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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

hadoop基石HDFS

發(fā)布時(shí)間:2025/3/19 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 hadoop基石HDFS 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

HDFS的設(shè)計(jì)理念是源于非常樸素的思想:

當(dāng)數(shù)據(jù)集大小超過單臺計(jì)算機(jī)的存儲能力時(shí),就有必要將其進(jìn)行分區(qū),并且存儲到若干臺單獨(dú)的計(jì)算機(jī)上,而管理網(wǎng)絡(luò)中跨多臺計(jì)算機(jī)存儲的文件系統(tǒng)稱為分布式文件系統(tǒng)(distribute filesystem).

hadoop 具有一個抽象的文件系統(tǒng)的概念,HDFS只是其中的一個實(shí)現(xiàn)。

hadoop文件系統(tǒng)接口由Java 抽象類 org.apache.hadoop.fs.FileSystem類定義,該類同時(shí)還繼承了org.apache.hadoop.conf并且實(shí)現(xiàn)了JAVA 的java.io.Closeable接口。


HDFS特點(diǎn)以及短板:

特點(diǎn):

  • 適合存儲超大文件:存儲在HDFS 的文件大多在GB甚至是TB 級別。
  • 運(yùn)行于廉價(jià)的硬件之上:HDFS 在設(shè)計(jì)的時(shí)候,就已經(jīng)認(rèn)為在汲取規(guī)模足夠大的時(shí)候,節(jié)點(diǎn)故障并不是小概率事件,而可以認(rèn)為是一種常態(tài),例如,一個節(jié)點(diǎn)故障的概率如果是千分之一,那么當(dāng)集群規(guī)模是1000臺的時(shí)候,正常情況每天都會有節(jié)點(diǎn)故障。當(dāng)節(jié)點(diǎn)發(fā)生故障是,能夠繼續(xù)運(yùn)行并且不讓用戶察覺到明顯的終端,所以,HDFS并不需要運(yùn)行在高可靠且昂貴的服務(wù)器上,普通的PC server即可。
  • 流式數(shù)據(jù)訪問:HDFS認(rèn)為,一次寫入,多次讀取是最搞笑的訪問模式。HDFS 的數(shù)據(jù)集作為Hadoop的分析對象,在數(shù)據(jù)集生成以后,會長時(shí)間在吃數(shù)據(jù)集上 進(jìn)行各種分析。每次分析都將涉及該數(shù)據(jù)集的大部分?jǐn)?shù)據(jù)甚至全部數(shù)據(jù),因此,讀取整個數(shù)據(jù)集的時(shí)間延遲比讀取第一條記錄的時(shí)間延遲更重要~。

短板:

  • 實(shí)時(shí)數(shù)據(jù)訪問弱:如果應(yīng)用要求數(shù)據(jù)訪問的時(shí)間在秒或者毫秒級別,那么,HDFS是做不到的,由于HDFS針對高書記吞吐做了優(yōu)化,因而犧牲了讀取數(shù)據(jù)的速度,隊(duì)友相應(yīng)時(shí)間是秒或者是毫秒的數(shù)據(jù)藩王,可以考慮使用HBase.
  • 大量的小文件:當(dāng)hadoop啟動的時(shí)候,NameNode會將所有元數(shù)據(jù)讀到內(nèi)存,以此構(gòu)建目錄樹。一般來講,一個HDFS上的 文件、目錄和數(shù)據(jù)塊的存儲信息,大約在150字節(jié)左右,那么,可以推算出,如果NameNode的內(nèi)存為16GB的話,大概只能存放480萬個文件,對于一個超大規(guī)模的集群,這個數(shù)字很快就能達(dá)到。
  • 多用戶寫入,任意修改文件:HDFS中的文件只能有一個寫入者,并且寫數(shù)據(jù)操作總是在文件末。它不支持多個寫入者,也不支持在數(shù)據(jù)寫入之后,在文件的任意位置進(jìn)行修改。事實(shí)上,如果不講hdfs-site.xml中的dfs.support.append設(shè)置為true,HDFS也不支持對文件進(jìn)行追加操作。

HDFS-架構(gòu):
  • 塊:
每個磁盤都有默認(rèn)的數(shù)據(jù)塊大小,這是磁盤進(jìn)行數(shù)據(jù)讀寫的最小單位,而文件系統(tǒng)也有文件塊的概念。HDFS的塊比一般的文件系統(tǒng)塊大得多,默認(rèn)為64M,并且可以隨著實(shí)際的需要而變化,配置項(xiàng)目為hdfs.sitte.xml文件中的dfs.block.size項(xiàng)。與單一文件系統(tǒng)相似,HDFS上的文件也被劃分為塊大小的多個分塊,它是HDFS存儲處理的最小單元。
使用塊的好處就: (1)可以保存比存儲節(jié)點(diǎn)單一磁盤大的文件。 (2)簡化存儲子系統(tǒng):實(shí)現(xiàn)了元數(shù)據(jù)和數(shù)據(jù)的分塊管理與存儲。 (3)容錯性高:將dfs.relication 設(shè)置為2,即配置每個HDFS的塊在hadoop中保存的份數(shù),值越高,冗余性越好,默認(rèn)為3.
  • NameNode和SecondaryNameNode :
NameNode名字節(jié)點(diǎn),是HDFS的主從架構(gòu)的主角,是HDFS的大腦,他維護(hù)著整個文件系統(tǒng)的目錄樹,以及所以的文件目錄,這些信息以2種文件存儲在本地文件中,一種是命名空間鏡像(file system image ,FSImage,文件系統(tǒng)鏡像),即HDFS元數(shù)據(jù)的完整快照,每次NameNode啟動時(shí),默認(rèn)會加載最新的命名空間鏡像,另一種是命名空間鏡像的編輯日志(edit log)
SecondaryNameNode,也被稱之為第二名字節(jié)點(diǎn),是用于定期合并命名空間鏡像和命名空間鏡像的編輯日志的輔助守護(hù)進(jìn)程。每個HDFS集群都有一個SecondaryNameNode,在生產(chǎn)環(huán)境下,一般SecondaryNameNode也會單獨(dú)運(yùn)行在一臺服務(wù)器上。
  • DataNode?
DataNode被稱為數(shù)據(jù)節(jié)點(diǎn),它是HDFS的主從架構(gòu)的從角色的扮演者,它在NameNode的指導(dǎo)下完成I/O 任務(wù)。如前文所述,放在HDFS的文件都是有HDFS的盡快組成, 所以的塊都存放于DataNode 節(jié)點(diǎn)。實(shí)際上,對于DataNode所在的幾點(diǎn)來說,快就是一個普通的文件,我們可以去DataNode存放塊的目錄下觀察(默認(rèn)是$(dfs.data.dir)/c urrent),塊的文件名為blk_blkID。

DataNode會不斷地向NameNode報(bào)告。初始化時(shí),每個DateNode將當(dāng)前存儲的塊告知NameNode,在集群正常工作時(shí),DateNode任然會不斷的更新NameNode,為止提供本地修改的相關(guān)信息,同時(shí)接受來自NameNode的指令,創(chuàng)建,移動或者刪除本地磁盤上的數(shù)據(jù)。
  • HDFS客戶端
HDFS可混短時(shí)指用戶和HDFS交互的手段,HDFS提供了非常多的客戶端,包括命令行接口、Java API、thrift接口、c語言庫、用戶文件系統(tǒng)。

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

總結(jié)

以上是生活随笔為你收集整理的hadoop基石HDFS的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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