天天看點

資料太大?你該了解Hadoop分布式檔案系統

大資料時代來了。當所有人都争吵着這件事情的時候,當所有企業都看好大資料的發展前景的時候,卻都很少關注這些資料從哪兒來,我們有沒有足夠優秀的技術能力處理這些資料。

聯網裝置增加 資料量随之上升

網絡的發展無疑為我們迎接大資料時代、智能計算時代鋪好了路。根據研究公司的預測,全球聯網裝置正在增加,在部分國家,人均聯網裝置早已超過2台;如此大量的聯網裝置和不斷提高的網絡速度都在讓社會的資料量快速增長,智慧城市、平安城市的實作也是以視訊監控等視訊資料為基礎,成為大資料時代的重要組成部分。

資料太大?你該了解Hadoop分布式檔案系統

機器人、ai、機器學習的研究讓資料成為未來輔助我們生活的必要因素,無人車、機器人快遞等形式的出現, 一方面展現了資料價值,另一方面也是在不斷收集資料,反哺資料分析和應用。

資料體量太大 誰來處理?

資料産生後,意味着資料的采集工作已經完成,那麼資料的輸入與有效輸出問題怎麼破解?

自大資料時代到來之後,分布式存儲、大檔案的讀寫都成為熱點話題,如何應對越來越多的大檔案存儲、分析與檢索,成為企業需要攻克的難題。

資料太大?你該了解Hadoop分布式檔案系統

而hadoop的原型要從2002年開始說起。hadoop的雛形始于2002年的apache的nutch,nutch是一個開源java 實作的搜尋引擎。而後根據谷歌發表的學術淪為谷歌檔案系統(gfs),實作了分布式檔案存儲系統名為ndfs。而後又根據google發表的一篇技術學術論文mapreduce,在nutch搜尋引擎實作了用于大規模資料集(大于1tb)的并行分析運算。最後,雅虎雇用了doug cutting,doug cutting将ndfs和mapreduce更新命名為hadoop,hdfs(hadoop distributed file system,hadoop分布式檔案系統)就此形成。

應該說hadoop是針對大資料而存在的,hdfs能夠提供高吞吐量的資料通路,适合有着超大規模資料集的應用程式。我們可以在hadoop的設計中看到三大特點:适用于存儲超大檔案、适合運作在普通廉價的伺服器上,同時,最搞笑的通路模式是一次寫入、多次讀取。

資料太大?你該了解Hadoop分布式檔案系統

當然,hdfs也存在一些弊端,比如說不适用于有低延遲要求的應用場景。因為hadoop是針對大資料傳輸的存在,是為高資料吞吐量應用而設計,這導緻其必然要以高延遲作為代價。同時hdfs分布式存儲不适用于小檔案傳輸,在大量小檔案傳輸過程中,namenode的記憶體就吃不消了。

hadoop概念科普

在了解了hadoop的身世和現在适合的應用場景之後,筆者要跟大家科普一下hadoop的基礎架構和主要概念。

namenode:namenode負責管理檔案目錄、檔案和block的對應關系以及block和datanode的對應關系。這是由唯一一台主機專門儲存,當然這台主機如果出錯,namenode就失效了,需要啟動備用主機運作namenode。

datanode:負責存儲,當然大部分容錯機制都是在datanode上實作的。分布在廉價的計算機上,用于存儲block塊檔案。

mapreduce:通俗說mapreduce是一套從海量·源資料提取分析元素最後傳回結果集的程式設計模型,将檔案分布式存儲到硬碟是第一步,而從海量資料中提取分析我們需要的内容就是mapreduce做的事了。

block:也叫作資料塊,預設大小為64mb。每一個block會在多個datanode上存儲多份副本,預設是3份。

rack:機櫃,一個block的三個副本通常會儲存到兩個或者兩個以上的機櫃中。

本文轉自d1net(轉載)