狄曉嬌
【摘要】 近些年,Hadoop———一個由Apache基金會開發(fā)的開源的分布式系統(tǒng)基礎架構被提出,用于應對處理企業(yè)中指數級增長的數據。借助于 Hadoop, 程序員可以在不了解分布式低層細節(jié)的情況下,充分利用集群的威力進行高速運算和存儲。本文主要論述了企業(yè)級Hadoop平臺的搭建使用的相關技術,是本平臺用到的技術進行了一個詳細的介紹。
【關鍵詞】 Hadoop平臺 資源監(jiān)控 安全認證機制 集群自動化部署 Ganglia
一、背景和意義
現今,我們的生活中已經被大量的數據所包圍。指數級增長的數據已經給一些企業(yè)帶來了巨大的挑戰(zhàn)為此,Hadoop———一個由Apache基金會開發(fā)的開源的分布式系統(tǒng)基礎架構被提出來了。由于Hadoop的特性,現在買差不多的機器,搭建一個Hadoop集群就可以了。
二、集群概述
集群是一組相互獨立的、通過高速網絡互聯的計算機,它們構成了一個組,并以單一系統(tǒng)的模式加以管理。集群技術是一種通用的技術,其目的是為了解決單機運算能力的不足、IO能力的不足、提高服務的可靠性、獲得規(guī)??蓴U展能力,降低整體方案的運維成本(運行、升級、維護成本)。集群有高擴展性,高可用性,高性能,高性價比等優(yōu)點。而集群計算機按功能和結構可以分成以下幾類:1、高可用性集群;2、負載均衡集群 ;3、高性能計算集群 ;4、網格計算 。
負載均衡集群負載均衡集群運行時,一般通過一個或者多個前端負載均衡器,將工作負載分發(fā)到后端的一組服務器上,從而達到整個系統(tǒng)的高性能和高可用性。這樣的計算機集群有時也被稱為服務器群(Server Farm)。 一般高可用性集群和負載均衡集群會使用類似的技術,或同時具有高可用性與負載均衡的特點。
三、Hadoop結構介紹
Hadoop 有許多元素構成。其最底部是 Hadoop Distributed File System(HDFS),它存儲 Hadoop 集群中所有存儲節(jié)點上的文件。HDFS(對于本文)的上一層是 MapReduce 引擎,該引擎由 JobTrackers 和 TaskTrackers 組成。
一個主/從架構,其中NameNode和JobTracker為主端,DataNode和TaskTracker為從端。
四、集群資源監(jiān)控簡介
在微軟的MSCS(Microsoft Cluster Server)術語中,所有的應用程序、數據文件、磁盤、網絡IP地址等都被稱為資源,一些資源可以組成一個資源組,一個資源組存在于一個節(jié)點上,但同時只能在一個節(jié)點上,它是MSCS可以進行故障切換(FailOver)的最小單元。
監(jiān)控是集群管理的核心任務。監(jiān)控數據可用于調度任務、負載平衡、向管理員報告軟硬件故障,并廣泛地控制系統(tǒng)使用情況。監(jiān)控信息必須在不影響集群性能的情況下獲得。
五 集群監(jiān)控軟件Ganglia介紹
Ganglia是一個跨平臺可擴展的,高性能計算系統(tǒng)下的分布式監(jiān)控系統(tǒng),如集群和網格。它是基于分層設計,它使用廣泛的技術,如XML數據代表,便攜數據傳輸,RRDtool用于數據存儲和可視化。Ganglia偏向于操作系統(tǒng)低層一點的監(jiān)控,主要是收集集群中的各個機器的 CPU 使用情況,內存使用情況,磁盤 I0, 網絡 IO ,磁盤容量等,更像是 windows的任務管理器,只不過它是管理分布集群機器。類似的,它也由以下組件組成:數據采集組件,每隔一段時間采集一次數據,然后將數據發(fā)送給收集器,收集器收集好數據,再將數據保存到數據庫,最后一個叫做 rrdtool 通過圖形化來展現數據。 ganglia 更加通用性,除了收集固定的機器性性外,它還提供了相關插件,可以插入到其他進程,如 JAVA 程序,然后可以收集起這些進程的相關信息。
我們需要通過Ganglia的通用性進行擴展,然后測試自己需要的數據。它由以下組件組成:1、數據采集組件gmond,每隔一段時間采集一次數據,然后將數據發(fā)送給收集器。2、收集器gmetad收集好數據,再將數據保存到數據庫。3、rrdtool 通過圖形化來展現數據
六 安全認證的介紹
Internet 上的很多協(xié)議本身并不提供安全屬性。懷有惡意的hackers用“sniff”等工具嗅探口令是非常普遍的事情。因此在網絡上不經加密就傳送口令是很不安全,許多網站使用防火墻來解決安全問題。但是,防火墻都是假定攻擊都來自外部,但事實常常不是這樣,許多攻擊事件都是內部人士所為。而且防火墻還有一個缺點就是會對正常的用戶使用Internet造成一定的限制。
單點登陸是一個方便用戶訪問多個系統(tǒng)的技術,用戶只需要在登錄時進行一次注冊,就可以在一個網絡中自由訪問,不必重復輸入用戶名和密碼來確認身份。單點登陸的實質是安全上下文,(Security Context )或憑證(Credential)在多個應用系統(tǒng)之間的傳遞或共享,當用戶登陸系統(tǒng)時,客戶端軟件根據用戶的憑證(例如用戶名和密碼)為用戶建立一個安全的上下文,安全上下文包括用于驗證用戶的安全信息,系統(tǒng)用這個安全上下文和安全策略來判斷用戶是否具有訪問系統(tǒng)資源的權限。
七 小結
本文主要描述在分布式集群上應用的相關技術,重點是本平臺用到的技術進行了一個詳細的介紹,主要包括分布式系統(tǒng)的搭建技術和分布式系統(tǒng)上的應用,在這兩大技術領域又有很多分支的技術,所以目前在研究領域分布式集群的相關技術是非常豐富的,針對不同類型需求可以有多種不同的選擇。
參 考 文 獻
[1] Chuck Lam. Hadoop in Action中文版[M] ,北京:人民郵電出版社. 2011.10,253.
[2]韓春華、易思蓉、呂???提案——驗證通用推理及在鐵路選線中的應用.四川:交通大學土木工程學院,2009
[3]陸舟. Struts2技術內幕:深入解析Struts2架構設計與實現原理[M]. 北京:機械工業(yè)出版社,2012年,135-190.
[4]許文柯. Spring技術內幕:深入解析Spring架構與設計原理[M]. 北京:機械工業(yè)出版社,2010年,30-68.