

【摘要】云計算技術的出現為數據挖掘技術的發展帶來了新的機遇。云計算技術通過使存儲和計算能力均勻的分布到集群中的多個存儲和計算節點上,從而實現了對超大數據集的巨大的存儲和計算能力。HADOOP是一個用于構建云平臺的Apache開源項目。使用HADOOP框架有利于我們方便、快速的實現計算機集群。在HADOOP平臺上,采用了HDFS(分布式文件系統)來實現超大文件的存儲和容錯,而使用了MapReduce的編程模式來進行計算。
【關鍵詞】HADOOP;數據挖掘;平臺;分析;設計
一、數據挖掘技術概述
作為一門快速發展的技術,數據挖掘引起了信息產業界和社會的廣泛關注。數據挖掘技術跨越多個學科,無論是數據庫技術、機器學習、統計學、模式識別,還是神經網絡,還是人工智能,數據挖掘都能從中吸取營養,不斷發展。如今,隨著云計算的出現和發展,數據挖掘技術迎來了新的機遇和挑戰。
1.數據挖掘發展歷程與分類
數據挖掘由單個算法,單個系統到并行數據挖掘與服務的模式,經歷了數據挖掘軟件開始和數據庫結合、多種數據類型融合、分布式挖掘等多個過程。到今天,數據挖掘軟件發展的歷程,可以說是進入基于云計算的數據挖掘。
由于數據挖掘是一個交叉學科領域,是在包括機器學習,模式識別等多個學科的基礎上發展而來。依賴于我們所用的數據挖掘方法,我們又可以使用其他學科的多種技術,如神經網絡、模糊或粗糙集合論、知識表示等。所以,對數據挖掘的研究,我們會期望出現大量的各種類型的數據挖掘系統。這樣,我們就需要對數據挖掘系統給出一個很清楚的分類。有了這種認識,我們才可以幫助用戶根據其需求,確定最適合其需要的數據挖掘系統。
因此,數據挖掘的分類標準也必定會出現多樣化。我們可以根據挖掘的數據庫類型分類,或是技術類型分類,也可以根據運用的場景分類。但是大部分情況下,我們會根據挖掘產生的知識類型進行分類,也即是根據數據挖掘的功能進行分類。
2.數據挖掘流程
數據挖掘就是從大量的、不完全的、有噪聲的、模糊的、隨機的數據中,提取隱含在其中的、人們事先不知道的、但又是潛在有用的信息和知識的過程,表現形式為規則、概念、規律及模式等。數據挖掘主要由以下步驟組成:
①數據預處理數據
預處理階段主要為數據挖掘準備好數據。一般來講主要包括數據清理和數據集成。對于大量的數據,難免的存在著噪聲或不一致的數據。對于存在這些問題的數據源,我們必須進行數據預處理?,F在,數據挖掘面對的挖掘對象的種類越來越多。半結構數據、web數據、來自云的數據等各種數據形式層出不窮。如何將數據挖掘技術使用到這些不同的數據結構中,數據預處理是非常重要的步驟和技術。它對于挖掘結果有著重要的影響。
②數據挖掘
一旦對數據的預處理工作完成,數據挖掘工作就開始了。這是整個數據挖掘過程的基本步驟,也就是使用智能的方法來提取數據模式的過程。數據挖掘階段,根據挖掘任務的不同,我們會使用不同的技術和處理方法。常見的數據挖掘任務包括特征化、區分、分類、關聯分析、聚類等。這是數據挖掘過程中最重要的步驟。
③模式評估
當數據挖掘一旦完成,就會生成挖掘的結果——模式。然而,這些模式不是我們都感興趣的。實際上,對于給定的用戶,在可能產生的模式中,只存在一小部分是他感興趣的。如何表示我們對于模式的期望和興趣,現在存在一些模式興趣度的客觀度量,包括規則的支持度,置信度等。在模式評估階段,我們去發現只對我們來說是感興趣的各種模式
④知識表示
對于用戶感興趣的模式,我們可以使用可視化和知識表示技術,以更直觀的,更易于理解的方式向用戶展現有意義的模式。這是與用戶的直接交互,更友好的表示方法可以使用戶更好的得到有意義的模式的全部內涵。這是數據挖掘過程中很重要的步驟,也是人們研究的一個重要方面。
二、典型數據挖掘系統構成
通過對數據挖掘過程有了一定的認識,一個典型的數據挖掘系統主要由下面的部分構成:
1.數據源:這可以是一個或一組數據庫、數據倉庫、展開的表、或其它類型的信息庫,提供存儲的數據。
2.數據源服務器:根據用戶的數據挖掘請求,數據源服務器負責提取相關數據。
3.預處理模塊:該模塊執行數據清理、數據集成等操作,為數據挖掘過程準備結構良好的數據。
4.知識庫:這是領域知識,用于指導搜索,或評估結果模式的興趣度。這種知識可能包括概念分層,用于將屬性或屬性值組織成不同的抽象層。用戶確信方面的知識也可以包含在內??梢允褂眠@種知識,根據非期望性評估模式的興趣度。領域知識的其它例子有興趣度限制或閾值和元數據(例如,描述來自多個異種數據源的數據)。
5.數據挖掘引擎:這是數據挖掘系統基本的部分,由一組功能模塊組成,用于特征、關聯、分類、聚類分析、演變和偏差分析。
6.模式評估模塊:該部分使用興趣度度量,并與挖掘模塊交互,以便將搜索聚焦在有趣的模式上,使用興趣度閾值過濾發現的模式。模式評估模塊可以與挖掘模塊集成在一起。
7.圖形用戶界面:該模塊在用戶和挖掘系統之間通訊,允許用戶與系統交互,指定數據挖掘查詢或任務,提供信息、幫助搜索聚焦,根據數據挖掘的中間結果進行探索式數據挖掘。此外,該成分還允許用戶瀏覽數據庫和數據倉庫模式或數據結構,評估挖掘的模式,以不同的形式對模式可視化。
在這個數據挖掘的基本系統中,模式評估模塊可以直接的嵌入到數據挖掘引擎中,以便指導挖掘引擎只產生用戶感興趣的模式。同時,預處理和用戶圖形界面是很重要的功能模塊,也是數據挖掘技術關注的新領域之一。
三、基于HADOOP的數據挖掘系統設計
通過對典型的數據挖掘系統的分析和研究,我們可以利用HADOOP平臺集群巨大的存儲和計算能力,組建基于HADOOP的數據挖掘系統。
1.基本設計思想
在經典的數據挖掘系統中,有的模塊不需要很大的計算量,而有的模塊需要非常大的計算量。充分利用HADOOP的集群特征,將數據挖掘系統中需要巨大計算能力的各個模塊的計算和存儲要求擴展到HADOOP集群中的各個節點上,利用集群的并行計算和存儲能力來進行相關數據挖掘工作。我們可以采用分層的設計思想。在底層,使用HADOOP來存儲、分析和處理巨大的數據量,而在高層通過接口直接透明的調用底層的計算和存儲能力。其流程如下:
①存儲
在整個系統中,我們可以使用HDFS來存儲文件和數據。HDFS具有很高的數據吞吐量,并且很好的實現了容錯機制。HDFS提供了多種訪問接口,包括API以及各種操作命令。使用HDFS,我們可以為原始的大數據集提供存儲空間,對臨時文件進行存儲,為數據預處理、數據挖掘過程提供輸入數據,同時輸出數據我們也保存在HDFS中。
②計算
在系統中,我們可以使用MapReduce將數據挖掘系統中具有大計算量特征的各個子模塊的計算任務發布到集群中的各個節點以實現并行計算。MapReduce具有很好的伸縮性和擴展性,它屏蔽掉底層,通過提供編程接口使我們可以快速的實現各種算法的并行方式。實現過程中我們都需要緊緊結合HDFS。
2.系統結構模型
如圖2所示,結合以上的基本設計思想以及典型的數據挖掘系統模型,采用分層的思想,自頂向下每層都透明的調用下層接口,最頂層為交互層,用于用戶和系統之間的交互。最底層為分布式計算層,使用HADOOP來實現文件分布式存儲和并行計算功能。使用分層,各層之間變得獨立,易于系統的擴展。下面詳細介紹我們得到的基于HADOOP的數據挖掘系統。
①交互層
這一層主要提供系統和用戶之間的接口。通過提供具有良好表現形式的圖形界面,使得用戶可以登陸系統定制各種細粒度的業務,查看或者保存各種輸出結果。
②業務應用層
這一層上提供了各種業務邏輯并實現了對各種業務流程的控制和調度。用戶提交的業務在這一層被處理,控制和調度。如:用戶在交互層提交的對特定數據完成分類挖掘的業務在在一層被處理。業務應用層通過調用數據挖掘算法層的多個模塊來完成交互層提交的業務,并返回結果到交互層。業務應用層還控制和調度著數據挖掘平臺的各個模塊的執行。
③數據挖掘平臺層
數據挖掘平臺層為業務應用層提供數據挖掘階段業務流需要的各個模塊,并且具有較細的粒度。如數據預處理,模式評估,數據挖掘,結果展示等功能組件。這一層是整個系統的核心,在這一層,主要的任務在于實現各種任務過程中算法的并行化,并將任務提交到HADOOP分布計算層進行運算。并將結果返回給業務應用層。
④分布式計算平臺層
這一層我們使用HADOOP框架來實現集群存儲、計算。HADOOP提供了分布式文件系統和并行的運行模式,同時實現了對分布式系統的管理。我們需要在此之上實現任務提交的server。
3.功能模塊
在這個系統中,每一層都包含了各自的功能模塊,以完成各層的任務。下面分別介紹各層具有的模塊以及相應的功能。
①交互層具有的模塊包括:
用戶管理模塊:實現用戶身份的識別以及相應權限的設置,同時也包括對用戶登陸或者注銷等常用的管理。
業務模塊:實現了細粒度的用戶業務需求的提交。用戶提交的各種業務通過業務模塊得到完成。
展示模塊:實現了用戶對業務結果的查看,分析和保存等功能。用來將系統的返回結果交付給用戶。
②業務應用層具有的模塊包括:
業務響應模塊:相應上層的業務模塊,對完成業務所需的子業務進行調用、管理,并通過調用底層模塊完成業務。
工作流模塊:對業務狀態進行監控、管理??蓪⒕唧w的信息參數返回給本層的業務響應模塊。
③數據挖掘平臺包括的平臺:
數據加載模塊:將挖掘所需的數據進行注冊并放入系統的HDFS文件系統。
結果存儲模塊:存放挖掘現在產生或者歷史產生的各種模式。也可以叫做知識庫。
模式評估模塊:對產生的模式進行評估。此模塊也可以被并行數據挖掘模塊調用。
并行ETL模塊:對數據進行預處理。輸入的數據來自于HDFS文件中,并將處理結果也放入HDFS中,為挖掘過程進行數據清理,提取,轉換和加載。
④分布式計算層:
HADOOP框架自身提供了HDFS,MapReduce運行模式、運算環境以及自動管理。
四、小結
本文介紹了數據挖掘流程并在此基礎上設計了基于HADOOP的數據挖掘系統的基本架構。先對典型的數據挖掘系統做了分析和介紹,隨后詳細分析了基于HADOOP數據挖掘系統的需求,最后給出了系統的模型并簡要介紹了各個功能模塊。
參考文獻
[1]韓家煒,坎伯.數據挖掘概念與技術[M].北京:機械工業出版社,2008.
[2]朱珠.基于Hadoop的海量數據處理模型研究和應用[D].北京:北京郵電大學,2008.
[3]魏紅寧.基于SPRINT方法的并行決策樹分類研究[J].成都:西南交通大學,2005,25(1):40-41.
[4]于蕾,劉大有,高瀅,田野.改進SPRINT算法及其在分布式環境下的研究[J].吉林大學學報,2008,46(6):1120-1123.
作者簡介:羅剛(1981—),男,湖北武漢人,碩士,現供職于空軍預警學院監控系統工程研究所,研究方向:計算機應用。