這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)Hadoop分布式文件系統(tǒng)中的HDFS是什么,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
創(chuàng)新互聯(lián)公司專注于鄰水網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供鄰水營(yíng)銷型網(wǎng)站建設(shè),鄰水網(wǎng)站制作、鄰水網(wǎng)頁(yè)設(shè)計(jì)、鄰水網(wǎng)站官網(wǎng)定制、成都小程序開(kāi)發(fā)服務(wù),打造鄰水網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供鄰水網(wǎng)站排名全網(wǎng)營(yíng)銷落地服務(wù)。
超大文件 PB 級(jí)
流式數(shù)據(jù)訪問(wèn)
一次寫(xiě)入,多次讀取是最高效的訪問(wèn)模式
商用硬件 (不需要高昂且高可用的硬件)
節(jié)點(diǎn)故障率較高,某些應(yīng)用不適合
低時(shí)間延遲的數(shù)據(jù)訪問(wèn)
要求低時(shí)間延遲的數(shù)據(jù)訪問(wèn),例如幾十毫秒范圍不適合在HDFS上運(yùn)行
大量的小文件
namenode 將文件系統(tǒng)的元數(shù)據(jù)存儲(chǔ)在內(nèi)容中,因此該文件系統(tǒng)所能存儲(chǔ)的文件總數(shù)受限于 namenode 的內(nèi)存容量
根據(jù)經(jīng)驗(yàn) 每個(gè)文件、目錄和數(shù)據(jù)塊的存儲(chǔ)信息大約占150字節(jié)
多用戶寫(xiě)入,任意 修改文件
HDFS中的文件只支持單個(gè)寫(xiě)入者,而且寫(xiě)操作總是以“只添加”方式在文件末尾寫(xiě)數(shù)據(jù),它不支持多個(gè)寫(xiě)入者的操作,也不支持在文件的任意位置進(jìn)行修改。
數(shù)據(jù)塊 默認(rèn)128mb
HDFS 小于一個(gè)塊大小的文件不會(huì)占據(jù)整個(gè)塊的空間
hdfs fsck / -files -blocks
namenode 和datanode
1.備份那些組成文件系統(tǒng)元數(shù)據(jù)持久狀態(tài)的文件,一般的配置是,將持久狀態(tài)寫(xiě)入本地磁盤(pán)的同時(shí),寫(xiě)入NFS
運(yùn)行輔助namenode 一般在單獨(dú)的物理機(jī)運(yùn)行。主節(jié)點(diǎn)掛了之后,啟用輔助節(jié)點(diǎn)不能保證數(shù)據(jù)完整性
namenode 管理文件系統(tǒng)的命名空間。它維護(hù)著文件系統(tǒng)樹(shù)及整棵樹(shù)內(nèi)所有的文件和目錄。這些信息以兩個(gè)文件形式永久保存在本地磁盤(pán)上:命名空間鏡像文件和編輯日志文件。namenode 也記錄著每個(gè)文件中各個(gè)塊所在的數(shù)據(jù)節(jié)點(diǎn)信息,但它并不永久保存塊的位置信息,因?yàn)檫@些信息會(huì)在系統(tǒng)啟動(dòng)時(shí)根據(jù)數(shù)據(jù)節(jié)點(diǎn)信息重建。
datanode 根據(jù)需要存儲(chǔ)并檢索數(shù)據(jù)塊,并且定期向namenode發(fā)送它們所存儲(chǔ)的塊的列表
namenode 容錯(cuò)機(jī)制
塊緩存
默認(rèn) 一個(gè)塊緩存在一個(gè)datanode的內(nèi)存中
提高讀 的性能
緩存池
聯(lián)邦HDFS
聯(lián)邦HDFS 允許系統(tǒng)通過(guò)添加namenode 實(shí)現(xiàn)擴(kuò)展
每個(gè)namenode 管理文件系統(tǒng)命名空間的一部分
兩兩之間互不通信
HDFS 的高可用
namenode 之間需要通過(guò)高可用共享存儲(chǔ)實(shí)現(xiàn)編輯日志的共享
datanode 需要同時(shí)向兩個(gè)namenode 發(fā)送數(shù)據(jù)塊處理報(bào)告,因?yàn)閿?shù)據(jù)塊的映射信息存儲(chǔ)在namenode 內(nèi)存中,而非磁盤(pán)
客戶端需要使用特定的機(jī)制來(lái)處理namenode 的失效問(wèn)題,這一機(jī)制對(duì)用戶是透明的
輔助namenode的角色被備用namenode所包含
共享存儲(chǔ)的選擇 NFS或群體日志管理器(QJM)
故障切換與規(guī)避
撤銷namenode 訪問(wèn)共享存儲(chǔ)目錄的權(quán)限
屏蔽網(wǎng)絡(luò)端口
斷電等等...
備份namenode 的方式無(wú)法實(shí)現(xiàn)高可用
HA 的架構(gòu)支持
namenode 運(yùn)行端口8020
從本地copy 文件到 hdfs /user/hadoop/ 目錄下
hadoop fs -copyFromLocal max_temperature.sh a.sh
把文件復(fù)制回本地文件系統(tǒng)
hadoop fs -copyToLocal a.sh my.sh
md5sum max_temperature.sh my.sh
新建目錄
hadoop fs -mkdir books
hadoop fs -ls .
默認(rèn)情況下 安全措施處于停用狀態(tài),生產(chǎn)環(huán)境應(yīng)該啟用 dfs.premissions.enabled
對(duì)文件而言 執(zhí)行權(quán)限沒(méi)有意義
HDFS 只是其中一種實(shí)現(xiàn)
Hadoop 文件系統(tǒng) Local,HDFS,WebHDFS,Secure WebHDFS, HAR, View, FTP, S3, Azure, Swift
列出本地文件系統(tǒng)根目錄下的文件 hadoop fs -ls file:///
盡管運(yùn)行的MapReduce 程序可以訪問(wèn)任何文件系統(tǒng),但在處理大數(shù)據(jù)集的時(shí)候,建議還是選擇一個(gè)有數(shù)據(jù)本地化優(yōu)勢(shì)的分布式文件系統(tǒng),如HDFS
接口
用戶控件文件系統(tǒng), 允許將用戶空寂那實(shí)現(xiàn)的文件系統(tǒng)作為Unix 文件系統(tǒng)進(jìn)行集成。
通過(guò)使用Fuse-DFS 模塊,HDFS均可以作為一個(gè)標(biāo)準(zhǔn)的本地文件系統(tǒng)進(jìn)行掛載。
NFS 網(wǎng)關(guān)是更好的方案,應(yīng)該選擇
使用hadoop 的NFSv3 網(wǎng)關(guān)將HDFS掛載為本地客戶端的文件系統(tǒng)是可行的。
可以使用Unix程序與該文件系統(tǒng)交互
HDFS僅能以追加模式寫(xiě)文件,因此可以往文件末尾添加數(shù)據(jù),但不能隨機(jī)修改文件
HTTP接口比原生的Java客戶端要慢,不要用它來(lái)傳出特大數(shù)據(jù)
訪問(wèn)方式 直接訪問(wèn)(namenode 和 datanode 內(nèi)嵌的 web服務(wù)器作為 WebHDFS 的端節(jié)點(diǎn)運(yùn)行 dfs.webhdfs.enabled 設(shè)置為true)
通過(guò)代理訪問(wèn)
HttpFS代理提供和 WebHDFS 相同的HTTp接口 使用httpfs.sh 腳本
HTTP
c 語(yǔ)言(libhdfs,libwebhdfs)底層代碼都是java
NFS
FUSE
java接口
hadoop jar hadoopdemo-1.0-SNAPSHOT.jar URLCat hdfs:///user/hadoop/output/part-r-00000
public class FileSystemCat { public static void main(String[] args) throws Exception { String uri = args[0]; Configuration conf = new Configuration(); FileSystem fs = FileSystem.get(URI.create(uri), conf); InputStream in = null; try { in = fs.open(new Path(uri)); IOUtils.copyBytes(in, System.out, 4096, false); } finally { IOUtils.closeStream(in); } } }
hadoop jar hadoopdemo-1.0-SNAPSHOT.jar FileSystemCat hdfs:///user/hadoop/output/part-r-00000
hadoop jar hadoopdemo-1.0-SNAPSHOT.jar FileSystemDoubleCat hdfs:///user/hadoop/output/part-r-00000
新建文件
FSDataOutputStream
目錄 public boolean mkdirs(Path f) throws IOException
查詢文件系統(tǒng)
FileStatus 類封裝了文件系統(tǒng)中文件和目錄的元數(shù)據(jù)
public boolean exists(Path f) throws IOException
寫(xiě)入數(shù)據(jù)
FSDataOutputStream create(FileSystem fs,Path file, FsPermission permission) throws IOException FSDataOutputStream append(Path f) throws IOException //代碼 String localSrc = args[0]; String dst = args[1]; InputStream in = new BufferedInputStream(new FileInputStream(localSrc)); Configuration conf = new Configuration(); FileSystem fs = FileSystem.get(URI.create(dst), conf); OutputStream out = fs.create(new Path(dst), new Progressable() { public void progress() { System.out.println("."); } }); IOUtils.copyBytes(in, out, 4096, false);
FSDataInputStream seek()是一個(gè)相對(duì)高開(kāi)銷的操作,需要謹(jǐn)慎使用,建議用流數(shù)據(jù)來(lái)構(gòu)建應(yīng)用的訪問(wèn)模式,而非執(zhí)行大量的seek()方法 hadoop jar hadoopdemo-1.0-SNAPSHOT.jar FileSystemDoubleCat hdfs:///user/hadoop/output/part-r-00000
通過(guò) FileSystem
通過(guò)URL讀取數(shù)據(jù) FsUrlStreamHandlerFactory IOUtils
上述就是小編為大家分享的Hadoop分布式文件系統(tǒng)中的HDFS是什么了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
文章名稱:Hadoop分布式文件系統(tǒng)中的HDFS是什么
文章轉(zhuǎn)載:http://www.rwnh.cn/article2/pcojoc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、軟件開(kāi)發(fā)、網(wǎng)站制作、自適應(yīng)網(wǎng)站、網(wǎng)站改版、網(wǎng)站設(shè)計(jì)公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)