<listing id="vjp15"></listing><menuitem id="vjp15"></menuitem><var id="vjp15"></var><cite id="vjp15"></cite>
<var id="vjp15"></var><cite id="vjp15"><video id="vjp15"><menuitem id="vjp15"></menuitem></video></cite>
<cite id="vjp15"></cite>
<var id="vjp15"><strike id="vjp15"><listing id="vjp15"></listing></strike></var>
<var id="vjp15"><strike id="vjp15"><listing id="vjp15"></listing></strike></var>
<menuitem id="vjp15"><strike id="vjp15"></strike></menuitem>
<cite id="vjp15"></cite>
<var id="vjp15"><strike id="vjp15"></strike></var>
<var id="vjp15"></var>
<var id="vjp15"></var>
<var id="vjp15"><video id="vjp15"><thead id="vjp15"></thead></video></var>
<menuitem id="vjp15"></menuitem><cite id="vjp15"><video id="vjp15"></video></cite>
<var id="vjp15"></var><cite id="vjp15"><video id="vjp15"><thead id="vjp15"></thead></video></cite>
<var id="vjp15"></var>
<var id="vjp15"></var>
<menuitem id="vjp15"><span id="vjp15"><thead id="vjp15"></thead></span></menuitem>
<cite id="vjp15"><video id="vjp15"></video></cite>
<menuitem id="vjp15"></menuitem>

一種基于Hadoop的海量數據實時分析處理方法

文檔序號:6370908閱讀:175來源:國知局
專利名稱:一種基于Hadoop的海量數據實時分析處理方法
技術領域
本發明涉及云計算領域中的基于Hadoop框架的海量數據實時處理方法,更具體地,涉及在數據應用領域中,將海量數據的實時處理特性應用于數據分析與數據處理中。
背景技術
云計算已經被看做IT業的新趨勢,可以粗略的定義為使用自己環境之外的某一服務提供的可伸縮計算資源,并按使用量付費,可以通過Internet訪問“云”中的任何資源,而不需要擔心計算能力、貸款、存儲、安全性和可靠性問題。
從企業角度看,日益增長的信息已經很難存儲在標準關系數據庫甚至數據倉庫中,例如,怎樣查詢一個十億行的表,怎樣跨越數據中心所有服務器上的所有日志來進行一個數據查詢,更為復雜的是很多數據是非結構化或者半結構話的,這就更難查詢了。Hadoop是一種框架,它可以分布式地操縱大量數據,在海量數據處理上具備了很多的優勢I.高容錯性從設計上HDFS已經假設了各服務器節點可能宕機,或者網絡可能分害I]。這些問題會導致某些服務器不可用。Hadoop通過如下手段實現了高容錯性I. I心跳檢測和文件復制;I. 2數據完整性檢測;I. 3元數據多源備份及Log機制;I. 4集群均衡。2.高伸縮性=Hadoop集群可以從一臺機器擴大到上千臺機器。具備很強的應對業務變化的能力。這里的業務變化可以是幾個小時之內業務量從波峰到波谷之間的轉換,也可以是中長期的業務增長或者變化。3.高成熟性業界多家傳統IT巨頭都在Hadoop上工作,將此系統打磨得相當成熟穩定。基于Hadoop的應用,無須擔憂Hadoop本身的穩定性。而且有很多相關的基于Hadoop的套件可以使用例如HBase、Hive、Zookeeper等等都可以基于Hadoop或者結合Hadoop展開運用。但是,Hadoop框架架構處理海量數據時也存在著一定的劣勢,基于Hadoop的MapReduce架構以支持高容量訪問為目標,反而忽略了任務處理的延遲問題,這里是一些典型的不利于實時處理的實現I. Hadoop Map Reduce架構的任務分配中心不會將信息推到服務器,而是讓服務器通過心跳去申請任務。而心跳的時間間隔一般是3秒,隨著服務器數增長還要增加。對實時處理的要求而言,這是相當耗費時間的工作。2. Hadoop本身是一個框架。基于框架的通用性,Map Reduce本身的代碼文件集也會在HDFS (文件系統)中傳遞,然后到服務器上展開,通過啟動新JVM進程裝載并運行。這是相當耗費時間的工作。而在一個Job的運行過程中,類似的JVM進程啟動停止有5、6個之多,無法適應實時處理的需求。
3. Hadoop本身是一個框架。基于框架的通用性,Map Reduce的結果也會寫入HDFS中。用戶只能再通過訪問HDFS得到相應的結果。這又白白地耗費了一段時間。由此可見,基于以上Hadoop Map Reduce架構的特點,我們可以看出,Hadoop MapReduce適合通過批處理方式訪問海量數據,但無法滿足海量數據的實時處理的需求。實時商業智能建設的主要目標是支持實時決策,這就對海量數據處理的即時、快速、穩定提出了更高的要求
發明內容

本發明主要目的是基于Hadoop Map-Reduce架構中對海量數據實時性處理的特點和劣勢,構建服務于商業智能軟件自身的Map-Reduce框架,大大提升Hadoop平臺實時運行Job的能力。完成高效信息的交換,減少實時傳輸和部署的時長,使整個商業智能系統對海量數據實時處理方面的能力得到一個很大的提升。更具體地,本發明涉及一種基于Hadoop的海量數據實時分析處理方法,所述方法包括1、將服務器進行聯網,調配成云平臺,所述云平臺中至少包括Client服務器,Naming服務器,Map服務器,Reduce服務器;2、將原始數據部署到Map服務器;3、用戶向Client服務器發起分析需求,當Client服務器接到客戶發起的分析需求時,首先要向Naming服務器獲取當前Map-Reduce狀態,以便制定Job (任務);4、當Naming服務器接到Client服務器發起的獲取計劃需求時,根據獲取到的當前的Map服務器,Reduce服務器的狀態,產生一個計劃表;5、當Client服務器接收到計劃表后,開始生成Job (任務);6、Client服務器生成完Job (任務)后,將Reduce Task發給Reduce服務器,Map Task發給Map服務器;7、Map服務器接收到MapTask,執行該任務;8、當Reduce服務器接收到ReduceTask,執行該Task ;9、當Reduce服務器接收到Map Task返回的結果,Reduce服務器讀取返回的結果里的Client Key,生成與之對應的Reduce Key,則去白板里記錄已有一個MapTask完成任務了 ;KKReduce服務器將最終結果返回給Client服務器,Client服務器再將結果以可視化等方式展現給終端用戶。


附圖I是本發明所述的基于Hadoop的海量數據實時分析處理方法的流程圖。
具體實施例方式為解決上述技術問題,本發明提供了一種基于Hadoop的海量數據實時分析處理的方法,采用的技術方案如下I.將多臺服務器聯網,調配成云平臺。一臺配置成Client服務器,一臺配置成Naming服務器,一部分配置成Map服務器,一部分配置成Reduce服務器。所述Client服務器負責接收客戶請求,并把分析處理需求分解,交給Map-Reduce框架處理。Client服務器自行制定Job (任務),并通知Reduce服務器和Map服務器執行Task(子任務)。所述Naming服務器負責命名工作。它知道當前有多少臺Map服務器和Reduce服務器,及這些服務器的配置狀況。Map服務器和Reduce服務器會定期發送各自配置情況,workload (工作量),CPU,內存等信息。所述Map服務器負責處理Map Task。它被預先部署了客戶的原始數據,也被預先部署了 Map Task的代碼文件集,當它接收到Client服務器發送的Map Task,可以直接執行該任務。所述Reduce服務器負責處理Reduce Task。它被預先部署了 Reduce Task的代碼文件集,可以直接執行該任務。每臺服務器總是開啟了伺服進程,由于執行的代碼文件集已經被預先部署,當接收到請求時,不用再開啟/停止進程。伺服進程能夠自行管理,并在線程池中執行任務。服務器之間的通訊機制采用自主研發的通訊方式。該通訊方式的特點是多路,復用,異步。通過該通訊方式提高海量數據傳輸交換的穩定性,減少CPU、內存的開銷,提高節點間的傳輸效率。 2.當Client服務器接到客戶發起的分析需求時,首先要向Naming服務器獲取當前Map-Reduce狀態,以便制定Job (任務)。3.當Naming服務器接到Client服務器發起的獲取計劃需求時,根據獲取到的當前的Map服務器,Reduce服務器的狀態,產生一個計劃表。計劃表包含每臺服務器的配置(CPU、內存)情況,任務量,Map服務器預部署的文件信息,等等。Naming服務器把計劃表返回給Client服務器。4.當Client服務器接收到計劃表后,開始生成Job (任務)。該Job包含一個Client Key (票),多個 Map Task,一個 Reduce Task。Client Key是一個供消息機制使用的票。Client服務器有一個MessageBoard(消息白板)。該白板用來監聽某個任務的完成狀態,票就是用來注冊某個任務用的唯一標識。當任務長時間沒反饋,自動通知Client服務器報錯。當任務執行完了,需從白板注銷該票。Map Task是提供給Map服務器的子任務。該任務包含Reduce服務器的地址,需要運行的數據所對應的存儲文件名,需要執行的統計任務的指令,Client Key (票),等等。Reduce Task是提供給Reduce服務器的子任務。該任務包含該Client Key (票),需要執行的統計任務的指令,Map Task的個數,等等。5. Client服務器生成完Job (任務)后,將Reduce Task發給Reduce服務器,MapTask發給Map服務器。Client服務器向可用的Reduce服務器發送Reduce Task,如果任務沒有被成功送達,表示該Reduce服務器不可用,就需要找下一個Reduce服務器,直到找到可用為止,如果都不可用,返回錯誤提示。如果Reduce服務器可用,沒宕機。Client服務器把可用Reduce服務器地址加入到Map Task,并發送給Map服務器。Cl ient服務器有自我容錯的機制。如果計劃表表明有五臺可用的Map服務器,Client服務器只有一個MapTask,那Cli ent服務器先找優先級較高的Map服務器連接發送任務,如果該Map服務器宕機了,那就再找優先級次之的Map服務器發送任務。6.當Map服務器接收到Map Task,執行該任務。取出需要運行的數據所對應的存儲文件名,通過找到文件系統找到文件,讀取數據。取出需要執行的統計任務的指令,例如按照產品分組統計銷售額的總和,執行該指令,獲取結果。讀取Reduce服務器的地址,將結果及Client Key (票)發送給Reduce服務器。7.當Reduce服務器接收到Reduce Task,執行該Task。讀取Client Key,生成與之對應的Reduce Key。Reduce服務器也維護了一個Message Board(消息白板)。該白板用來監聽Map Task的完成狀態,票就是唯一標識。讀取Map Task的個數。把Reduce Key注冊到白板上,并傳入Map Task的個數。假設有3個Map Task需要完成,但只返回了 2個Task的結果,當時間過長,Reduce服務器會自動通知Client服務器報錯,并清除ReduceTask。如果正常時間內接收到3個Map Task的結果,也會從白板注銷該票,并開始執行Reduce Task。8.當Reduce服務器接收到Map Task返回的結果,Reduce服務器讀取返回的結果里的Client Key,生成與之對應的Reduce Key,去白板里記錄已有一個Map Task完成任務了。當所有Map Task的結果都送達了 Reduce服務器,Reduce服務器讀取所有中間結果,再取出Reduce Task上需要執行的統計任務的指令,例如按照產品分組統計銷售額的總和,執行該指令,獲取最終結果。 Reduce服務器將最終結果返回給Client服務器,Client服務器再將結果以可視化等方式展現給終端用戶。下面結合附圖I和具體實現方式對本發明進行進一步詳細說明。如圖I所示,將六臺服務器聯網,同時安裝商業智能平臺軟件。一臺Client服務器,一臺配置成Naming服務器,三臺Map服務器,一臺Reduce服務器。I.將原始數據部署到Map服務器。通過主服務器上的數據庫管理界面,連接到數據庫,讀取原始數據列表,再將數據列表分成3個子數據列表,分別存儲到Map服務器上。例如某一銷售部門的某一銷售數據列表被命名為Table,包含字段為產品名,銷售額,日期。通過部署,被分解成Tablel,Table2, Table3,分別存儲到三臺Map服務器上。這里將備份的參數設定為2,即每份數據片段會保留到兩臺Map服務器上。如圖I所示,Tablel被存儲到Map服務器A和B上;Table2被存儲到Map服務器B和C上;Table3被存儲到Map服務器A和C上。這個映射關系及服務器配置和當前工作量會定期匯報給Naming服務器。2.用戶請求Client服務器,例如查詢當年每個季度的各產品的銷售額的匯總。Client服務器將商業模型轉化成具體的數學計算模型,并開始制定Job (任務)。DClient服務器向Naming服務器請求任務計劃,并告知要執行運算的數據列表名 Table。2) Naming服務器根據收集到的信息,準備任務計劃表。通過查詢,知道Table被分解成3個表Tablel,Table2, Table3。通過映射關系表,獲取Tablel被存儲到Map服務器A和B上,Table2被存儲到Map服務器B和C上,Table3被存儲到到Map服務器A和C上。通過狀態表,反映出每個Map服務器的workload (工作量),CPU,內存的狀態。把這些信息加入到任務計劃表中去,發送給Client服務器。3)任務計劃表返回到Client服務器。Client服務器開始制定Job (任務),先生成 Client Key,再生成 Reduce Task 和 Map Taskl, Map Task2, Map Task3。4) Client服務器向Reduce服務器發送Reduce Task。如果發送不成功,返回錯誤提示給終端用戶。如果發送成功,就把響應的Reduce服務器Host地址加入到Map Task里。5)Client服務器根據任務計劃表里的映射關系和狀態表,來排列優先時序表。例如Tablel被存儲到Map服務器A和B上,但Map服務器B的CPU和內存配置較差,那就把Map Taskl的任務先發給Map服務器A,如果該服務器宕機了,就再發給Map服務器B。依次類推,Map Task2與Map Task3也發送到合適的Map服務器上。6)Map服務器收到Map Task后執行任務,并把結果發送到Reduce服務器上。7)當Reduce服務器收到3個Map服務器發送的統計結果,Reduce服務器開始執行ReduceTask,統計計算出最終結果。8)Reduce服務器把最終結果發給Client服務器。Client服務器接收到結果,并將結果用可視化的形式呈現給用戶。雖然附圖和前述說明給出了本發明的實施例。但可以理解的是,本領域技術人員將理解可以將這種組件中的一個或多個組件很好地組合成單個功能組件。在替換方案中, 特定的組件可以分成多個功能組件,或反之。同時,本發明的范圍并不受這些特定實例的限制。多種變化都是可能的,例如結構等上的差異,而無論其是否在說明書中被清晰地給出。本發明的范圍至少與所附權利要求給出的范圍一樣寬。
權利要求
1. 一種基于Hadoop的海量數據實時分析處理方法,所述方法包括 1、將服務器進行聯網,調配成云平臺,所述云平臺中至少包括=Client服務器,Naming服務器,Map服務器,Reduce服務器; 2、將原始數據部署到Map服務器; 3、用戶向Client服務器發起分析需求,當Client服務器接到客戶發起的分析需求時,首先要向Naming服務器獲取當前Map-Reduce狀態,以便制定Job ; 4、當Naming服務器接到Client服務器發起的獲取計劃需求時,根據獲取到的當前的Map服務器、Reduce服務器的狀態,產生一個計劃表; 5、當Client服務器接收到計劃表后,開始生成Job; 6、Client服務器生成完Job后,將ReduceTask發給Reduce服務器,Map Task發給Map服務器; 7、當Map服務器接收到MapTask時,執行該任務; 8、當Reduce服務器接收到ReduceTask時,執行該任務; 9、當Reduce服務器接收到MapTask返回的結果,Reduce服務器讀取返回的結果里的Client Key,生成與之對應的Reduce Key,并去白板里記錄已有ー個Map Task完成任務; 10、Reduce服務器將最終結果返回給Client服務器,Client服務器再將所述結果以可視化方式展現給終端用戶。
2.根據權利要求I的基于Hadoop的海量數據實時分析處理方法,其中所述的服務器共有六臺,分別被配置成一臺Client服務器,一臺Naming服務器,三臺Map服務器,一臺Reduce服務器。
3.根據權利要求I或2的基于Hadoop的海量數據實時分析處理方法,其中所述Naming服務器負責命名工作,其知道當前有多少臺Map服務器和Reduce服務器,及這些服務器的配置狀況;此外,所述Map服務器和Reduce服務器會定期發送各自配置情況信息。
4.根據權利要求I或2的基于Hadoop的海量數據實時分析處理方法,其中所述每臺服務器均開啟了伺服進程,由于執行的代碼文件集已經被預先部署,當接收到請求吋,不用再開啟/停止進程;且所述伺服進程能夠自行管理,并在線程池中執行任務服務器之間的通o
5.根據權利要求I或2的基于Hadoop的海量數據實時分析處理方法,其中所述計劃表包含每臺服務器的配置情況、任務量、Map服務器預部署的文件信息。
6.根據權利要求I或2的基于Hadoop的海量數據實時分析處理方法,其中所述Client服務器向可用的Reduce服務器發送Reduce Task,如果任務沒有被成功送達,表示該Reduce服務器不可用,就需要找下ー個Reduce服務器,直到找到可用的為止,如果都不可用,返回錯誤提示;如果所述Reduce服務器可用,則沒宕機,且所述Client服務器把可用Reduce服務器地址加入到Map Task,并發送給Map服務器。
全文摘要
本發明涉及一種基于云平臺的海量數據通訊系統,所述系統包括多臺機器,對其進行聯網以調配成云平臺,所述云平臺至少包括主服務器,Map服務器,Reduce服務器;其中通過所述主服務器上的數據庫管理界面,連接到數據庫,讀取原始數據列表,再將數據列表存儲到Map服務器上;當所述Map服務器執行完任務,并計算出中間結果,需要將該中間結果發送給所述Reduce服務器;當所述Reduce服務器執行完任務,將最終結果發送給所述主服務器;所述主服務器接收最終結果,并用可視化的形式呈現給用戶。
文檔編號G06F17/30GK102761602SQ20121018139
公開日2012年10月31日 申請日期2012年6月5日 優先權日2012年6月5日
發明者包麗霞 申請人:北京永洪商智科技有限公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
韩国伦理电影