Gartner:如何選擇正確的Hadoop版本算法
這份報告的全名是《How to Choose the Right Apache Hadoop Distribution》。主要介紹了企業如何引入Hadoop,其中一些內容很好,值得一看。數據庫
在文中Gartner分析了Hadoop的由來,而且指出,目前開源項目的方式爲使用Apache Hadoop帶來了挑戰,由於其中的內容都是不少廠家貢獻出來的,成熟度不同,甚至一些中包含了很個性化的代碼,這些代碼可能只對某些廠家特殊的業務環境有效。安全
爲此Gartner鄭重地建議即便開源的版本是免費的,也最好從一個成熟的合做夥伴那裏獲取一份商業開源的版原本確保對Hadoop的支持。架構
而後Gartner介紹了以下幾個提供商業版本Hadoop的廠商:機器學習
Cloudera:第一個提供商業版本的;已經在Oracle的Big Data一體機,NetApp的Open Solution for Hadoop,Dell的Cloudera Hadoop Solution和SGI的Optimized Hadoop Solution中使用,NTT在亞太地區開始支持這個版本的銷售。ide
MapR: 增長了高可用、快照、鏡像、經過NFS訪問數據、控制系統、管理套件。跟EMC合做銷售。跟LUCENE進行合做。工具
IBM’s InfoSphere BigInsights: 當前版本爲1.3,在其中打包了文本分析、用於數據探索的BigSheets、開發工具。IBM擴展了M\R和靈活的調度器。並提供了一個HDFS的替代方案(GPFS),提供了企業級的安全,提供了一個基於WEB的管理界面,提供了高速數據鏈接器。oop
Hortonworks:包括了最多的組件,下一代的M\R和HDFS。跟微軟合做,放在Azure中。學習
EMC GreenPlum HD:Greenplum MR基於MapR的M5版本。提供Greenplum Data Computing Appliance,能夠跟Greenplum Database和Greenplum Data Integration Accelerator模塊整合在一個集羣中。1月EMC發佈的Isilon儲存能夠添加對HDFS的天然支持,能夠加強高可用和數據共享的能力。開發工具
DataStax:提供實時交互和事務分析能力(經過Apache Cassandra而不是HDFS來實現),因此是一個混合負載環境的備選方案。提供內建的容錯能力。目標是消滅ETL,經過NOSQL來替代RDBMS。
其餘的DBMS廠家提供了一些到Hadoop的鏈接器,從而將數據引入到他們的數據庫中,或者將數據庫中的數據導出。Teradata Aster和EMC Greenplum能夠調用MR。還有一些開始提供Hadoop的版本,好比ORACLE。
對於許可證模式,Hadoop比較複雜,有的部分採用Apache的許可證模式,有的則採用本身的模式。
對於Hadoop中的組件,Gartner也作了一些描述:
Apache Hadoop和MapReduce,這個就不用介紹了,太熟悉了,是通用的組件。
Apache HDFS,也不說了
Apache Pig,提供Pig Latin的查詢語言,以及一個編譯器將查詢語言轉換爲MR程序執行
Apache Hive,提供HiveQL查詢語言,而後轉換爲MR程序執行。使得能夠想數據倉庫同樣被查詢,也能夠在語言中嵌入MR代碼。
Jaql,跟前二者類似,不過是IBM本身的,不是Apache中包含的。能夠查詢結構化和非結構化數據。爲使用JSON來設計。最終編譯爲MR程序執行。
Apache HBase,是列的NoSQL數據庫,構建在HDFS上,提供隨機讀和寫。
Apache Cassandra,列、點對點模式的NoSQL數據庫,內建複製機制,爲普遍的高可用和雲支持設計,容許事務和分析負載同時承載。DataStax將其做爲HDFS的替代。
Apache ZooKeeper,提供中央的控制信息和同步。一般爲Hbase提供節點見的協調。
Apache Flume,孵化中的項目,由Cloudera提供,用於收集來自多個數據源的日誌,並將它輸入到中央的數據存儲中,好比HDFS。
Apache Oozie,孵化中的項目,由Yahoo提供,用於工做流、調度和協調。
Apache Mahout,用於機器學習,是一個數據挖掘算法的庫,包括分羣、分類和過濾等。
Apache Sqoop,孵化中的項目,由Cloudera提供,提供在RDBMS和Hadoop中的批量數據傳輸。
Apache Whirr,一組爲了運行雲服務而設計的代碼庫,好比能夠用來在AWS上部署ZooKeeper
Apache Avro,被IBM和Cloudera使用,用於數據串行化,也就是將數據轉換爲緊密的二進制格式(JSON)在Hadoop上存儲和使用。
Hue,包括在Cloudera中,提供一個基於WEB的Job Tracker,集羣監控和文件瀏覽。IBM在本身的BigInsights管理臺中提供了這個功能。
Cascading,包括在MarR中,定義了不依賴於M\R代碼的複雜工做流,底層運行在Hadoop的MR上,一般跟Hbase一塊兒提供。非Apache項目
Apache Lucene,一個文本搜索引擎
Apache Hcatalog,孵化項目,由Hortonworks提供,實現中央的元數據和模式管理,跨越Hadoop和RDBMS,利用Pig和Hive提供關係視圖
Apache Ambari,提供Hadoop集羣的監控、管理和生命週期管理
接着Gartner分析了兩種策略,本身創建Hadoop的軟件棧和選擇一個有支持的商業版本。最終結論是大部分的公司都應該選擇後者,除非是像大型互聯網公司這種將Hadoop視爲核心和長期演進的才應該選擇前者。
個人想法:若是選擇商業版本的,那麼對於之後的標準化有沒有影響呢?每次Hadoop底層模塊升級或不會涉及上層應用代碼的改變啊?若是不被廠商綁定呢?
FORRESTER的企業Hadoop最佳實踐
這份報告的全名爲《Enterprise Hadoop Best Practices:Concrete Guidelines From Early Adopters In Online Services》。
一開始文中分析了Hadoop的弱點,以及如今EDW在支持Hadoop方面的缺陷。接着他提出了幾個最佳實踐:
1、用Hadoop來解決大數據的問題
2、將Hadoop和企業的EDW架構進行整合。並提出最好不要創建多個Hadoop環境的豎井來處理多種應用,不要將Hadoop架構僅僅構建在一種存儲上(建議用HDFS和NoSQL數據庫的混合,也有RDBMS。)
3、採用成熟的企業級Hadoop和工具,建議評估商業版本,進行POC測試,並考察廠商的財務穩定性、策略方向、服務支持、合做環境等。最好問問EDW是否有這樣的產品提供或者提供對這樣的產品的支持
4、創建一個Hadoop卓越中心來培養技能,保持跟Hadoop社區的聯繫,引入諮詢,僱傭專家。