HPCC 和 Hadoop 的詳細區別比較

硬件環境

通常使用基於Intel或AMD CPU的刀片服務器來構建集羣系統,爲了降低成本可以使用已經停止銷售的過時硬件。節點有本地內存和硬盤,通過高速交換機相連(通常爲千兆交換機),如果 集羣節點很多,也可以使用分層交換。集羣內的節點是對等的(所有資源可以簡化爲相同配置),但這一點並非必須。

操作系統

Linux或windows

系統配置

實現HPCC集羣用兩種配置:數據加工(Thor)類似於Hadoop的MapReduce集羣;數據分發引擎(Roxie)提供了獨立的高性能在 線查詢 處理功能和數據倉庫功能。兩種配置都可以用做分佈式文件系統,不過它們試圖提高性能的實現方法不同。HPCC環境通常由兩種配置類型的多個集羣組成。雖然 每個集羣上的文件系統相互獨立,但是一個集羣可以訪問同一環境下位於其他集羣上的文件系統內的文件。

Hadoop系統軟件使用MapReduce處理範例實現了集羣。這樣的集羣也可以用做運行HDFS的分佈式文件系統。其他的功能都處Hadoop的MapReduce和Hbase,Hive等文件系統軟件之上。

授權和維護費用

HPCC:社團版本是免費的。企業版授權費用目前取決於集羣大小和系統配置的類型。

Hadoop:免費,不過有多個廠商提供不同的付費的維護服務。

核心軟件

HPCC:如果使用了Thor配置,那麼核心軟件包括安裝在集羣每個節點上的操作系統和多種服務,它們來實現任務的執行和分佈式文件系統的訪問。名 字爲 Dali的獨立服務器提供文件系統名字服務和管理HPCC環境下任務的工作單元。Thor集羣可以配置爲一個主節點和多個備用節點。Roxie集羣是一個 對等連接的集羣,它的每個節點可運行服務器和執行查詢以及密鑰和文件處理的任務代理。Roxie集羣的文件系統使用分佈式B+樹來存儲索引和數據,並提供 對加密數據的訪問。要對Thor和Roxie集羣進行操作的話,附加的中間件組件是不可或缺的。

Hadoop:核心軟件包括操作系統、Hadoop的MapReduce集羣和HDFS軟件。每個備用節點包括任務跟蹤服務和數據節點服務。主節點 包括任 務追蹤服務,任務追蹤服務可配置爲獨立的硬件節點或者運行在一個備用硬件節點。類似地,對HDFS來說,要提供名字服務的話,主名字節點服務也是必須的, 並且可在一個備用的節點或者一個獨立的節點之上運行這個服務。

中間件

HPCC:中間件包括在MySQL服務器上實現的ECL代碼倉庫、編譯ECL程序和查詢的ECL服務器、ECL代理即Thor集羣上管理任務執行的 客戶端 程序,ESP服務器(企業服務平臺),它提供認證、日誌記錄、安全以及執行任務和提供Web服務環境的其他服務,Dali服務器,它可用作存儲任務工作單 元信息的系統數據和爲分佈式文件系統提供名字服務。中間件可以靈活地運行在一個到幾個節點上。多個這樣的服務器可以提供冗餘備份和提高性能。

Hadoop:沒有中間件。客戶端軟件可以直接提交任務給集羣主節點的任務追蹤器。作爲服務器運行的Hadoop工作流調度器(HWS)的管理需要多個MapReduce序列的任務的功能正在開發中。

系統工具

HPCC包括用於管理、維護和監視HPCC配置和環境的客戶端和操作工具套件。這個套件包括ECL IDE、程序開發環境、屬性遷移工具、分佈式文件應用(DFU)、環境配置應用和Roxie配置應用。命令行版本也可用。ECLWatch是一個監控 HPCC環境的基於Web的應用程序,它包括隊列管理,分佈式文件系統管理、任務監視和系統性能監視工具。其他工具是通過Web服務接口提供的。

Hadoop:dfsadmin工具提供文件系統的狀態信息;fsck是一個檢查HDFS上文件的健康性的應用;數據節點塊掃描器定時地驗證數據節 點上所 有的存儲塊;平衡器根據需要把超負荷的數據節點上的阻塞重新發布到低負荷的數據節點上。MapReduce的WEB用戶接口包括顯示正在運行的和已經完成 的任務信息的任務追蹤器頁面;對一個具體的任務再向下點擊的話就可以看到這個任務的詳細信息。還有顯示Map和Reduce任務信息的任務頁面。

易部署

HPCC:環境配置工具。源服務器有一個集中式倉庫,它分發操作系統級別的設置、服務和二進制文件到配置中所有可網絡啓動的節點上。

Hadoop:需要第三方應用嚮導提供的在線工具協助。需要手動部署RPM。

分佈式文件系統

HPCC:Thor的分佈式文件系統是面向記錄的,使用本地Linux文件系統存儲部分文件。文件是跨節點初始化裝載的(提取的),並且每個節點都 有一個 單獨的部分文件,對一個分佈式文件來說,這個部分文件可爲空。在由用戶指定的偶數個記錄/文檔範圍內對文件進行分割。主備結構通過存儲在獨立服務器的名字 服務和文件映射信息來分割。每個節點只需要一個本地文件來表示一個分佈式文件。同一環境下多個集羣之間也支持讀寫訪問權限設置。使用特定的適配器允許訪問 來自外部數據庫的比如MySQL的文件,允許事務數據與分佈式文件數據合併且併入批處理的任務中。Roxie分佈式文件系統使用了分佈式B+樹索引文件, 這樣的文件包含了鍵值信息和存儲在每個節點的本地文件裏的數據。

Hadoop:面向塊的,大多數安裝使用大小爲64MB或者128MB的塊。塊是以節點的本地Unix/Linux文件系統的獨立單元/本地文件存 儲的。 每個塊的元數據信息存儲爲一個獨立的文件。主備結構使用了單獨的名字節點提供名字服務和塊映射,並且使用了多個數據節點。文件劃分爲塊並且分佈地存儲在集 羣的各個節點。跨節點存儲在一個節點上每個邏輯塊的多個本地文件(一個用來保存塊數據、一個用來保存元數據)來表示一個分佈式文件。

容錯性

HPCC:Thor和Roxie的分佈式文件系統(可配置)在其他節點上保存了部分文件的副本,以防止磁盤或者節點失效。Thor系統在一個節點失 效之後 提供了要麼自動要麼手動的切換和熱啓動,任務從最近一次檢查點重新啓動或者繼續運行。當複製數據到一個新的節點的時候,副本的製作自動進行。Roxie系 統在減少節點數而引起節點失效時繼續運行。

Hadoop:HDFS(可配置)在其他節點上存儲(用戶指定的)多個副本,以防止由於自動恢復出現的磁盤或節點失效。MapReduce架構包括了試探性執行,當檢測到一個慢的或者失敗的Map任務時,其他Map任務將從失效的節點處開始恢復。

執行任務的環境

HPCC:Thor使用了主備處理結構。ECL任務定義的處理步驟可以指定本地操作(數據在每個節點上獨立處理)或者全局(數據跨所有節點處理)操 作。爲 了對編譯的ECL數據流程序的執行進行優化,一個過程的多個處理步驟可作爲一個單獨任務的一部分自動地執行。如果每個節點的CPU和內存資源可滿足要求的 話,那麼爲了減少時延,一個單獨的Thor集羣可配置爲並行地運行多個任務。包括ECL代理、ECL服務器和Dali服務器的中間件提供了客戶端接口,並 管理作爲工作單元打包的任務的執行。Roxie使用了多個服務器/代理的結構處理ECL程序,每個查詢把服務器任務當作管理者,多個代理任務在需要的時候 獲取和處理這個查詢的數據。

Hadoop:對輸入的鍵值對數據使用MapReduce處理範例。是主備處理結構。任務追蹤器運行在主節點上,任務追蹤器運行在每個備用節點上。 給 Map任務指定輸入文件的輸入分支,通常一個塊一個任務。Reduce任務數由用戶指定。對指定的節點來說,Map處理是在本地執行的。移動和排序操作是 隨着Map的階段來進行的,它用來分發和排序鍵值對給鍵區所對應的Reduce任務,這樣具有同一鍵的鍵值對由同一個Reduce任務處理。對大多數過程 來說,多個MapReduce處理步驟通常是必須的,並且一定是單獨由用戶或者語言比如Pig來排序和串接的。

編程語言

HPCC:ECL是HPCC環境的主要編程語言。ECL編譯爲優化的C++,然後再編譯爲在Thor和Roxie平臺上可執行的DLL。ECL的包 括封裝 在函數裏的內聯的C++代碼。外部服務可以用任何語言書寫,並且編譯爲ECL可調用的函數共享庫。管道接口允許執行用任何語言寫的合併到任務裏的外部程 序。

Hadoop的MapReduce任務通常用Java書寫。其他語言的支持是通過流或者管道接口來實現的。其他處理環境是在Hadoop的 MapReduce之上執行的,比如HBase和Hive,它們擁有自身的語言接口。Pig拉丁語言和Pig執行環境提供了高級別的數據流語言,然後把這 種語言映射到到多個Java書寫的MapReduce任務上。

集成編程開發環境

HPCC平臺提供了ECL集成開發環境,一個綜合的特別針對ECL語言的集成開發環境。ECL集成開發環境提供了對共享源代碼倉庫的訪問,還提供了 開發 ECL數據流程序的完整的開發和測試環境。對ECLWatch工具的訪問是內置的,它允許開發人員查看任務的執行狀況。對當前和歷史任務的工作單元的訪問 也提供了,它允許開發人員在開發週期期間很容易地對一個任務和下一個任務的結果進行比較。

Hadoop MapReduce使用了Java編程語言,有幾個優秀的Java編程開發環境,包括NetBeans和Eclipse,它們提供了訪問Hadoop集羣 的插件。Pig環境沒有自己的集成開發環境,不過可以使用Eclipse和其他編輯環境進行語法檢查。Eclipse的pigPen附加組件提供了對 Hadoop集羣的訪問,這樣可以在Hadoop集羣上運行Pig程序和其他的開發功能。

數據庫功能

HPCC 平臺包括在分佈式文件系統上構建多個鍵、多個域(也就是複合)索引的功能。這些索引可以用來提高性能,並且提供了Thor系統上批處理任務的關鍵字訪問,或者用來支持部署到Roxie系統上的查詢的開發。ECL語言直接支持數據的關鍵字訪問。

基本的Hadoop的MapReduce不提供任何根據關鍵字訪問索引數據庫的功能。Hadoop附加的名字爲HBase的系統提供了面向列關鍵字 訪問的 數據庫功能。定製腳本語言和Java接口也提供了。Pig環境不直接支持對HBase的訪問,它需要用戶定義的函數或者各自的MapReduce過程。

在線查詢和數據倉庫功能

HPCC平臺上的Roxie系統配置特別設計用來爲結構化查詢和數據分析應用提供數據倉庫的功能。Roxie是一個高性能的平臺,它能支持數千用戶,並且提供取決於應用的亞秒響應時間。

基本的Hadoop的MapReduce系統不提供任何數據倉庫功能。Hadoop的一個附加系統Hive提供數據倉庫功能,並且允許裝在HDFS 到表 裏,然後使用類SQL的語言訪問。Pig環境不直接支持對Hive的訪問,它需要用戶定義的函數或者各自的MapReduce過程。

擴展性

HPCC:一個到幾千個節點。實際上,HPCC配置需要非常少的節點就可以提供Hadoop集羣相同的處理性能。不過集羣的大小可能取決於分佈式文件系統的整體存儲需求。

Hadoop:一個到數千個節點。

性能

已經證明HPCC平臺在高性能的400個節點系統上102秒內對1TB的數據完成排序。在最近一次對運行在另外400個節點系統上的Hadoop進 行了實 力相當的基準測試,HPCC性能是6分27秒,而Hadoop的性能是25分鐘28秒,同樣的硬件配置的結果表明HPCC的基準測試比Hadoop快 3.95倍。

在這裏我還是要推薦下我自己建的大數據學習交流qq裙:522189307 , 裙 裏都是學大數據開發的,如果你正在學習大數據 ,小編歡迎你加入,大家都是軟件開發黨,不定期分享乾貨(只有大數據開發相關的),包括我自己整理的一份最新的大數據進階資料和高級開發教程,歡迎進階中和進想深入大數據的小夥伴。上述資料加羣可以領取

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章