2012年5月17日 星期四

Weka與Mahout


基於雲計算的海量資料採擷
20087 月,《Communications of the ACM》雜誌發表了關於雲計算的專輯,雲計算因其清晰的商業模式而受到廣泛關注,並得到工業和學術界的普遍認可。目前工業界推出的雲計算平臺有Amazon公司的EC2S3Google公司的Google Apps Engine, IBM公司的Blue CloudMicrosoft公司的Windows Azure, Salesforce公司的Sales Force, VMware公司的vCloudApache軟體開源組織的Hadoop等。在國內,IBM與無錫市共建了雲計算中心,中石化集團成功應用IBM的雲計算方案建立起一個企業雲計算平臺。阿裡巴巴集團於2009年初在南京建立電子商務雲計算中心。
嚴格的講,雲計算是一種新穎的商業計算模型,它可以將計算任務分佈在大量互連的電腦上,使各種應用系統能夠根據需要獲取計算資源、存儲資源和其他服務資源。Google公司的雲平臺是最具代表性的雲計算技術之一,包括四個方面的主要技術:Google檔案系統GFS、平行計算模型MapReduce、結構化資料表BigTable和分散式的鎖管理Chubby。基於以上技術,雲計算可以為海量資料處理和分析提供一種高效的計算平臺。簡單來說,將海量資料分解為相同大小、分佈存儲,然後採用MapReduce模型進行並行化程式設計,這種技術使Google公司在搜尋引擎應用中得到了極大的成功。
然而MapReduce計算模型適合結構一致的海量資料,且要求計算簡單。對於大量的資料密集型應用(如資料採擷任務),往往涉及到資料降維、程式反覆運算、近似求解等等複雜的演算法,計算非常困難。因此,基於雲計算的海量資料採擷技術成為了工業界和學術界共同關心的熱點技術之一。
分散式運算是解決海量資料採擷任務,提高海量資料採擷效率的方法之一。目前,分散式資料採擷技術主要有基於主體(agent)的分散式資料採擷、基於網格的分散式資料採擷、基於雲的分散式資料採擷等。海量資料採擷另一個核心問題是資料採擷演算法的並行化。圖1給出基於雲計算的海量資料採擷服務的層次結構圖。

基於雲計算的海量資料採擷服務的層次結構圖
中國移動研究院從20073月份啟動“大雲”的研發工作。2008年,中國移動研究院已建設有256個節點、1024CPU256TB存儲的雲平臺。中國移動“大雲”平臺主要為資料採擷、系統評估、搜索等應用提供計算服務。在開源 Hadoop雲平臺上,中科院計算所研製了並行資料採擷工具平臺PDMiner。針對海量資料,雲計算分別從資料採擷模式和方法等方面進行相關的研究。與此同時,中科院深圳先進研究院還研製了一個分散式資料採擷系統AlphaMiner
    本文首先討論了海量資料採擷的研究熱點;其次基於開放的Hadoop平臺,討論並行資料採擷演算法工具箱和資料採擷雲的設計。
技術熱點
    計算是一種資源利用模式,它能以簡便的途徑和以按需的方式通過網路訪問可配置的計算資源,快速部署資源。在這種模式中,應用、資料和資源以服務的方式通過 網路提供給使用者使用。大量的計算資源組成資源池,用於動態創建高度虛擬化的資源以供用戶使用。但對於海量資料分析任務,雲平臺缺乏針對海量資料採擷和分析 演算法的並行化實現。因此面向海量資料採擷的新型雲計算模式,主要包括海量資料預處理、適合於雲計算的海量資料採擷平行算法、新型海量資料採擷方法和雲計算 資料採擷工具箱等技術。
    1)海量數據預處理。為了適合並行處理,雲平臺應可以提供海量資料的概念分層組織以及海量資料的並行載入;並實現高維度約減和資料稀疏化技術,提高資料管理和挖掘的效率。
    2)適合於雲計算的海量資料採擷平行算法。海量資料採擷的關鍵問題是資料採擷演算法的並行化。而雲計算採用MapReduce 新型計算模型,這意味著現有的資料採擷演算法和並行化策略不能直接應用於雲計算平臺下進行海量資料採擷,需要進行一定的改造。因此需要深入研究資料採擷演算法 的並行化策略,繼而實現高效的雲計算並行海量資料採擷演算法。並行海量資料採擷演算法包括並行關聯規則演算法、並行分類演算法和並行聚類演算法,用於分類或預測模 型、資料總結、資料聚類、關聯規則、序列模式、依賴關係或依賴模型、異常和趨勢發現等。在此基礎上,針對海量資料採擷演算法的特點對已有的雲計算模型進行優 化和擴充,使其更適用于海量資料採擷。
    3)新型海量資料採擷方法。 型海量資料採擷方法包含面向同構資料、異構資料和跨域資料的不同的資料採擷新方法。在同構海量資料採擷系統中,各個節點存儲的資料都具有相同的屬性空間。 雲平臺採用集成學習的方式來生成最終的全域預測模型。並在同構節點的元學習基礎上,實現資料採擷增量學習方法,已滿足即時要求;在異構海量資料採擷系統 中,雲平臺根據資料模態,將資料節點分類,並提供異構資料相關性度量和集成機制。除此之外,由於資料採擷應用的特殊性,雲平臺能提供對海量資料移轉挖掘方 法的支撐,以便擴充雲計算環境下資料採擷應用的適用範圍,更好地滿足資料採擷終端使用者的需求。
    4)並行資料採擷工具箱。海量資料採擷應用系統開發前,都會對採用的演算法進行性能的評估。目前已有的Weka工具箱採用的是單機演算法,不能應用在基於雲計算的海量資料採擷應用中。Apache組織近年來組織了Mahout開源專案,設計用於雲平臺的資料採擷演算法。但Mahout專案目前還缺少資料準備、資料展示和使用者交互,還不完全適合海量資料採擷平行算法的性能評估。因此,雲平臺應可以提供一個基於MapReduce計算模型的並行資料採擷工具箱,用於海量資料採擷平行算法的性能評估。
    在網格計算研究中,國際研究者研發了多個基於網格的複雜資料分析任務的服務系統,如Data Mining GridGrid Miner 等。在這些系統中,實現了複雜資料分析任務的工作流定義、資源調度和管理的透明化、具體演算法的註冊和服務化等。以上部分技術可以直接遷移到雲計算平臺上, 但由於雲計算模式和資料採擷服務的特殊性,仍需在按需服務、多工調度和分配等技術上進行進一步的突破。具體技術內容包括:
    1)按需服務的自治計算模式。 將海量資料採擷任務的服務化,設計並實現並行資料採擷軟體自配置、自優化、自修復和自保護的方法,以及自我調整使用者需求的資料採擷服務的自動發現和組合演算法。
    2)多工的動態分配機制。海量資料採擷應用往往是資料密集,且具有突發性的特點;除此之外,不同的資料採擷應用對演算法精度、性能要求也不一致。因此,基於雲計算的海量資料採擷必須優化負載調節的策略與任務遷移策略等。
    3)資料採擷服務的動態按需遷移。 平臺提供支援海量資料採擷任務的服務重定位方法,即當一個伺服器上運行中的服務按需遷移到另一個伺服器上去時,能同時有效地為後繼工作流任務提供可用的資 源空間,並滿足整合伺服器資源的需要。在資源管理和配置中,針對海量資料的大規模和異構等特點,運用虛擬化技術進行存儲管理,並設計一種新型的動態遷移架 構。
    4)複雜資料採擷任務服務平臺。 Hadoop等雲平臺上,設計支援複雜資料採擷任務服務化的中介軟體系統。支援複雜資料分析任務的流定義、複雜資料分析任務的動態配置、平行算法的註冊、雲平臺資源的調度和管理的透明化,最終實現複雜資料分析任務的按需服務。

Weka是由新西蘭Waikato大學研發的資料處理和知識發現套裝軟體。其可以實現資料預處理、聚類、分類、回歸、特徵選擇、視覺化等各種資料採擷的任務。Weka被廣泛用於各種資料採擷任務中演算法的評估。但其中資料採擷演算法的實現是基於單機實現的。與Weka不同的是,Apache組織基於Hadoop平臺的,採用MapReduce計算模型,實現大量機器學習演算法的並行化,並將其封裝在Mahout項目。但由於Mahout並不提供一種圖形介面交互,使用者需要大量手工配置資料和參數,同時目前實現的並行資料採擷演算法也不完全。

1  Weka與Mahout主要異同

資料來源
資料格式
資料存儲
演算法
使用者介面
Weka
支持文字檔:包括本地的資料檔案以及網路資料檔案;
支援資料庫檔:通過JDBC連接。
標準格式是Arff,行表示實例,列表示各個屬性。另外還支持CSVC45以及BSI
資料檔案載入存儲於記憶體之中
在單機上實現分類、聚類、關聯規則等資料採擷演算法
包括發現模式的表示,資料採擷原語的操作,介面功能主要包括4個部分:Simple CLIExplorerExperimenter Knowledge Flow
Mahout
僅支持文字檔
每個演算法自己根據演算法的情況自己設定的檔案格式
存儲於Hdfs
基於MapReduce計算模型,實現….
命令列交互


mahout:
1.可大規模分散式運算
2.目標物件是程式開發人員
3.hadooplucene有很好的介面
4.是圍繞著可擴展的演算法和介面特殊設計的
5.命令列和API
6.Apache  license
weka:
1.記憶體消耗厲害
2.目標物件是資料採擷分析人員
3.有大量的演算法集
4.GUI
5.GPL

沒有留言: