Hadoop是一個由Apache基金會所開發的分布式系統基礎架構。
用戶可以在不了解分布式底層細節的情況下,開發分布式程序。充分利用集群的威力進行高速運算和存儲。
Hadoop實現了一個分布式文件系統(Hadoop Distributed File System),簡稱HDFS。HDFS有高容錯性的特點,并且設計用來部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)來訪問應用程序的數據,適合那些有著超大數據集(large data set)的應用程序。HDFS放寬了(relax)POSIX的要求,可以以流的形式訪問(streaming access)文件系統中的數據。
Hadoop的框架最核心的設計就是:HDFS和MapReduce。HDFS為海量的數據提供了存儲,則MapReduce為海量的數據提供了計算。
基于Hadoop的校園云存儲系統
服務器使用Linux操作系統,采用MapReduce編程算法實現并行處理。
HDFS(Hadoop Distributed File System)是一個運行在普通硬件之上的分布式文件系統。HDFS系統采用Master/Slave框架,一個HDFS集群系統是由一個Master和多個Slaver構成。前者叫做名字節點(NameNode),是一個中心服務器負責元數據的管理工作,主要包括文件系統的名字空間管理和客戶機對文件的訪問操作。后者叫做數據節點(DataNode),在集群系統中一般一個節點是由一個DataNode構成的,主要負責對節點上它們附帶的存儲進行管理。
HDFS系統中文件的目錄結構獨立存儲在NameNode上,對于具體的文件數據來說,一個文件數據其實被拆分成若干block,這些block冗余存儲在DataNode集合數據里。NameNode負責執行文件系統的Namespace管理工作,主要包括關閉,打開和重命名數據文件和目錄等操作,同時負責建立block和DataNode節點的映射關系。客戶機的讀寫需求是由DataNode節點響應完成的,同時DataNode節點在NameNode的統一指揮下進行Block的創建,刪除和復制等操作。
MapReduce編程模型是一種編程模型,是云計算的核心計算模式,用于大規模數據集的并行計算。MapReduce借用了函數式編程的思想,把海量數據集的常見操作抽象為Map(映射)和Reduce(化簡)兩種集合操作。通過Map函數將被分割后數據映射成不同的區塊,然后由計算機集群對分配的數據進行分布式運算處理,再由Reduce函數對數據結果進行統一匯整,最后輸出用戶想要的數據結果。MapReduce的軟件實現是指定一個Map函數,用來把一組鍵值對映射成一組新的鍵值對,指定并發的Reduce(化簡)函數,用來保證所有映射的鍵值對中的每一個共享相同的鍵組。
Master包括NameNode和JobTracker,Slaves包括DataNodes和TaskTrackers.HDFS的工作主要由NameNode和DataNodes共同完成,MapReduce的工作主要由JobTracker和TaskTrackers共同完成。模型工作流程:服務控制集群SCC(Service Controller Cluster)主要負責對用戶應用請求進行接收,并根據用戶的請求完成應答工作。存儲節點集群SNC(Storage Node Cluster)主要負責處理數據資源的存取工作。JobTracker可以運行在集群系統中的每一臺計算機上,主要完成管理和調度其它計算機上的TaskTracker。
不同的是TaskTracker必須運行在數據存儲節點的DataNode上,主要完成執行任務工作。JobTracker負責將每一個Map和Reduce任務分配給空閑的TaskTracker處理,完成對每個數據文件并行計算處理任務,同時將每個任務運行完成的情況進行監控。當其中一個TaskTracker發生故障時,JobTracker會主動將其負責的任務轉交給另外一個空閑的TaskTracker重新執行完成這個任務。用戶本身不直接通過Hadoop架構進行讀寫數據,這由可以避免大量的讀寫操作造成的系統擁塞。當用戶通過Hadoop架構把信息傳給SCC后,將直接與存儲節點進行交互,同時完成數據讀取操作。
系統采用Hadoop軟件,7臺PC,其中一臺為Master,namenode(集群主節點);另外六臺為Slave, datanode(從節點)。
集群部署步驟:
(1)。 集群配置SSH,實現機器間免密碼登陸。在每臺機器上生成ssh密鑰,然后交換公鑰,將namenode的公鑰拷貝到每臺datanode,這樣互相訪問就不需要密碼了。
(2)。 在每臺機器上安裝JDK,配置java環境。
(3)。 安裝配置hadoop。
(4)。 啟動hadoop服務。
(5)。 安裝eclipse,搭建集成開發環境。
基于Hadoop平臺的云存儲
云計算(Cloud Computing)是一種基于因特網的超級計算模式,在遠程的數據中心里,成千上萬臺電腦和服務器連接成一片電腦云。用戶通過電腦、筆記本、手機等方式接人數據中心,按自己的需求進行運算。目前,對于云計算仍沒有普遍一致的定義。結合上述定義,可以總結出云計算的一些本質特征,即分布式計算和存儲特性、高擴展性、用戶友好性、良好的管理性。
1云存儲架構圖
橘色的作為存儲節點(Storage Node)負責存放文件,藍色作為控制節點((Control Node)則是負責文件索引,并負責監控存儲節點間容量及負載的均衡,這兩個部分合起來便組成一個云存儲。存儲節點與控制節點都是單純的服務器,只是存儲節點的硬盤多一些,存儲節點服務器不需要具備RAID的功能,只要能安裝Linux即可,控制節點為了保護數據,需要有簡單的RAID level O1的功能。
云存儲不是要取代現有的盤陣,而是為了應付高速成長的數據量與帶寬而產生的新形態存儲系統,因此云存儲在設計時通常會考慮以下三點:
(1)容量、帶寬的擴容是否簡便
擴容是不能停機,會自動將新的存儲節點容量納入原來的存儲池。不需要做繁復的設定。
圖1云存儲架構圖
(2)帶寬是否線形增長
使用云存儲的客戶,很多是考慮未來帶寬的增長,因此云存儲產品設計的好壞會產生很大的差異,有些十幾個節點便達到飽和,這樣對未來帶寬的擴容就有不利的影響,這一點要事先弄清楚,否則等到發現不符合需求時,已經買了幾百TB,后悔就來不及了。
(3)管理是否容易。
2云存儲關鍵技術
云存儲必須具備九大要素:①性能;②安全性;③自動ILM存儲;④存儲訪問模式;⑤可用性;⑥主數據保護;⑦次級數據保護;⑧存儲的靈活;⑨存儲報表。
云計算的發展離不開虛擬化、并行計算、分布式計算等核心技術的發展成熟。下面對其介紹如下:
(1)集群技術、網格技術和分布式文件系統
云存儲系統是一個多存儲設備、多應用、多服務協同工作的集合體,任何一個單點的存儲系統都不是云存儲。
既然是由多個存儲設備構成的,不同存儲設備之間就需要通過集群技術、分布式文件系統和網格計算等技術,實現多個存儲設備之間的協同工作,使多個的存 儲設備可以對外提供同一種服務,并提供更大更強更好的數據訪問性能。如果沒有這些技術的存在,云存儲就不可能真正實現,所謂的云存儲只能是一個一個的獨立 系統,不能形成云狀結構。
(2)CDN內容分發、P2P技術、數據壓縮技術、重復數據刪除技術、數據加密技術
CDN內容分發系統、數據加密技術保證云存儲中的數據不會被未授權的用戶所訪問,同時,通過各種數據備份和容災技術保證云存儲中的數據不會丟失,保證云存儲自身的安全和穩定。如果云存儲中的數據安全得不到保證,也沒有人敢用云存儲了。
(3)存儲虛擬化技術、存儲網絡化管理技術
云存儲中的存儲設備數量龐大且分布多在不同地域,如何實現不同廠商、不同型號甚至于不同類型(例如FC存儲和IP存儲)的多臺設備之間的邏輯卷管 理、存儲虛擬化管理和多鏈路冗余管理將會是一個巨大的難題,這個問題得不到解決,存儲設備就會是整個云存儲系統的性能瓶頸,結構上也無法形成一個整體,而 且還會帶來后期容量和性能擴展難等問題。
3部署Hadoop
從歷史上看,數據分析軟件面對當今的海量數據已顯得力不從心,這種局面正在悄然轉變。新的海量數據分析引擎已經出現。例如Apache的Hadoop,實踐證明,Hadoop在數據處理方面是做得最好的且是開源的平臺之一。
云存儲中心是由大量服務器構成Hadoop的數據節點((DataNodes),負責保存文件的內容,實現文件的分布式存儲、負載平衡以及文件的容錯控制。
下面將利用Hadoop作為實驗平臺,一步一步演示如何部署一個三個節點的集群,并測試一下MapRe-dace分布式處理的強大功能,在Hadoop分布式文件系統(HDFS)中存人兩個文件,并采用MapReduce計算出兩個namelist文件中各個名字出現的次數,程序架構設計如圖2所示。
圖2 3個節點的Hadoop集群
其中NameNode主節點和DataNode從節點的分布情況如下:
表1
(1)啟動Hadoop集群
只需要在NameNode主節點上執行start-all.sh命令即可,同時Master節點可以通過ssh登錄到各,lave節點去啟動其他相關進程。
(2) MapRudce測試
在NameNode和DataNode兩個結點都運行正常的時候,也就是Hadoop部署成功了之后,我們在NameNode主節點上準備兩個名單文件。名單文件的內容如下:
4運行實驗及結果
5結語
結果跟我們預期的一樣,這樣在以Hadoop為平臺進行了對HDFS的文件存儲,并且統計了文件中數據的數量,然后顯示出來。
-
云存儲
+關注
關注
7文章
736瀏覽量
46042 -
Hadoop
+關注
關注
1文章
90瀏覽量
15975
發布評論請先 登錄
相關推薦
評論