hadoop開源工具大集合

zyj8170發表於2020-04-04

弗雷斯特調研公司的分析師Mike Gualtieri最近預測,在接下來幾年,“100%的大公司”會採用Hadoop。Market Research的一份報告預測,到2011年,Hadoop市場會以58%的年複合增長率(CAGR)高速增長;到2020年,市場產值會超過10億美元。


IBM更是非常看好開源大資料工具,派出了3500名研究人員開發Apache Spark,這個工具是Hadoop生態系統的一部分。



這回我們推出了最新的頂級開源大資料工具排行榜。這個領域最近方興未艾,許多新專案紛紛啟動。許多最知名的專案由Apache基金會管理,與Hadoop密切相關。


請注意:本文不是要搞什麼排名;相反,專案按類別加以介紹。與往常一樣,要是你知道另外的開源大資料及/或Hadoop工具應該榜上有名,歡迎留言交流。


一、Hadoop相關工具


1. Hadoop

Apache的Hadoop專案已幾乎與大資料劃上了等號。它不斷壯大起來,已成為一個完整的生態系統,眾多開源工具面向高度擴充套件的分散式計算。

支援的作業系統:Windows、Linux和OS X。

相關連結:http://hadoop.apache.org


2. Ambari

作為Hadoop生態系統的一部分,這個Apache專案提供了基於Web的直觀介面,可用於配置、管理和監控Hadoop叢集。有些開發人員想把Ambari的功能整合到自己的應用程式當中,Ambari也為他們提供了充分利用REST(代表性狀態傳輸協議)的API。

支援的作業系統:Windows、Linux和OS X。

相關連結:http://ambari.apache.org


3. Avro

這個Apache專案提供了資料序列化系統,擁有豐富的資料結構和緊湊格式。模式用JSON來定義,它很容易與動態語言整合起來。

支援的作業系統:與作業系統無關。

相關連結:http://avro.apache.org


4. Cascading

Cascading是一款基於Hadoop的應用程式開發平臺。提供商業支援和培訓服務。

支援的作業系統:與作業系統無關。

相關連結:http://www.cascading.org/projects/cascading/


5. Chukwa

Chukwa基於Hadoop,可以收集來自大型分散式系統的資料,用於監控。它還含有用於分析和顯示資料的工具。

支援的作業系統:Linux和OS X。

相關連結:http://chukwa.apache.org


6. Flume

Flume可以從其他應用程式收集日誌資料,然後將這些資料送入到Hadoop。官方網站聲稱:“它功能強大、具有容錯性,還擁有可以調整優化的可靠性機制和許多故障切換及恢復機制。”

支援的作業系統:Linux和OS X。

相關連結:https://cwiki.apache.org/confluence/display/FLUME/Home


7. HBase

HBase是為有數十億行和數百萬列的超大表設計的,這是一種分散式資料庫,可以對大資料進行隨機性的實時讀取/寫入訪問。它有點類似谷歌的Bigtable,不過基於Hadoop和Hadoop分散式檔案系統(HDFS)而建。

支援的作業系統:與作業系統無關。

相關連結:http://hbase.apache.org


8. Hadoop分散式檔案系統(HDFS)

HDFS是面向Hadoop的檔案系統,不過它也可以用作一種獨立的分散式檔案系統。它基於Java,具有容錯性、高度擴充套件性和高度配置性。

支援的作業系統:Windows、Linux和OS X。

相關連結:https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/HdfsUserGuide.html


9. Hive

Apache Hive是面向Hadoop生態系統的資料倉儲。它讓使用者可以使用HiveQL查詢和管理大資料,這是一種類似SQL的語言。

支援的作業系統:與作業系統無關。

相關連結:http://hive.apache.org


10. Hivemall

Hivemall結合了面向Hive的多種機器學習演算法。它包括諸多高度擴充套件性演算法,可用於資料分類、遞迴、推薦、k最近鄰、異常檢測和特徵雜湊。

支援的作業系統:與作業系統無關。

相關連結:https://github.com/myui/hivemall


11. Mahout

據官方網站聲稱,Mahout專案的目的是“為迅速構建可擴充套件、高效能的機器學習應用程式打造一個環境。”它包括用於在Hadoop MapReduce上進行資料探勘的眾多演算法,還包括一些面向Scala和Spark環境的新穎演算法。

支援的作業系統:與作業系統無關。

相關連結:http://mahout.apache.org


12. MapReduce

作為Hadoop一個不可或缺的部分,MapReduce這種程式設計模型為處理大型分散式資料集提供了一種方法。它最初是由谷歌開發的,但現在也被本文介紹的另外幾個大資料工具所使用,包括CouchDB、MongoDB和Riak。

支援的作業系統:與作業系統無關。

相關連結:http://hadoop.apache.org/docs/current/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html


13. Oozie

這種工作流程排程工具是為了管理Hadoop任務而專門設計的。它能夠按照時間或按照資料可用情況觸發任務,並與MapReduce、Pig、Hive、Sqoop及其他許多相關工具整合起來。

支援的作業系統:Linux和OS X。

相關連結:http://oozie.apache.org


14. Pig

Apache Pig是一種面向分散式大資料分析的平臺。它依賴一種名為Pig Latin的程式語言,擁有簡化的並行程式設計、優化和可擴充套件性等優點。

支援的作業系統:與作業系統無關。

相關連結:http://pig.apache.org


15. Sqoop

企業經常需要在關聯式資料庫與Hadoop之間傳輸資料,而Sqoop就是能完成這項任務的一款工具。它可以將資料匯入到Hive或HBase,並從Hadoop匯出到關聯式資料庫管理系統(RDBMS)。

支援的作業系統:與作業系統無關。

相關連結:http://sqoop.apache.org


16. Spark

作為MapReduce之外的一種選擇,Spark是一種資料處理引擎。它聲稱,用在記憶體中時,其速度比MapReduce最多快100倍;用在磁碟上時,其速度比MapReduce最多快10倍。它可以與Hadoop和Apache Mesos一起使用,也可以獨立使用。

支援的作業系統:Windows、Linux和OS X。

相關連結:http://spark.apache.org


17. Tez

Tez建立在Apache Hadoop YARN的基礎上,這是“一種應用程式框架,允許為任務構建一種複雜的有向無環圖,以便處理資料。”它讓Hive和Pig可以簡化複雜的任務,而這些任務原本需要多個步驟才能完成。

支援的作業系統:Windows、Linux和OS X。

相關連結:http://tez.apache.org


18. Zookeeper

這種大資料管理工具自稱是“一項集中式服務,可用於維護配置資訊、命名、提供分散式同步以及提供群組服務。”它讓Hadoop叢集裡面的節點可以彼此協調。

支援的作業系統:Linux、Windows(只適合開發環境)和OS X(只適合開發環境)。

相關連結:http://zookeeper.apache.org


二、大資料分析平臺和工具


19. Disco

Disco最初由諾基亞開發,這是一種分散式計算框架,與Hadoop一樣,它也基於MapReduce。它包括一種分散式檔案系統以及支援數十億個鍵和值的資料庫。

支援的作業系統:Linux和OS X。

相關連結:http://discoproject.org


20. HPCC

作為Hadoop之外的一種選擇,HPCC這種大資料平臺承諾速度非常快,擴充套件性超強。除了免費社群版外,HPCC Systems還提供收費的企業版、收費模組、培訓、諮詢及其他服務。

支援的作業系統:Linux。

相關連結:http://hpccsystems.com


21. Lumify

Lumify歸Altamira科技公司(以國家安全技術而聞名)所有,這是一種開源大資料整合、分析和視覺化平臺。你只要在Try.Lumify.io試一下演示版,就能看看它的實際效果。

支援的作業系統:Linux。

相關連結:http://www.jboss.org/infinispan.html


22. Pandas

Pandas專案包括基於Python程式語言的資料結構和資料分析工具。它讓企業組織可以將Python用作R之外的一種選擇,用於大資料分析專案。

支援的作業系統:Windows、Linux和OS X。

相關連結:http://pandas.pydata.org


23. Storm

Storm現在是一個Apache專案,它提供了實時處理大資料的功能(不像Hadoop只提供批任務處理)。其使用者包括推特、美國天氣頻道、WebMD、阿里巴巴、Yelp、雅虎日本、Spotify、Group、Flipboard及其他許多公司。

支援的作業系統:Linux。

相關連結:https://storm.apache.org


三、資料庫/資料倉儲


24. Blazegraph

Blazegraph之前名為“Bigdata”,這是一種高度擴充套件、高效能的資料庫。它既有使用開源許可證的版本,也有使用商業許可證的版本。

支援的作業系統:與作業系統無關。

相關連結:http://www.systap.com/bigdata


25. Cassandra

這種NoSQL資料庫最初由Facebook開發,現已被1500多家企業組織使用,包括蘋果、歐洲原子核研究組織(CERN)、康卡斯特、電子港灣、GitHub、GoDaddy、Hulu、Instagram、Intuit、Netfilx、Reddit及其他機構。它能支援超大規模叢集;比如說,蘋果部署的Cassandra系統就包括75000多個節點,擁有的資料量超過10 PB。

支援的作業系統:與作業系統無關。

相關連結:http://cassandra.apache.org


26. CouchDB

CouchDB號稱是“一款完全擁抱網際網路的資料庫”,它將資料儲存在JSON文件中,這種文件可以通過Web瀏覽器來查詢,並且用JavaScript來處理。它易於使用,在分散式上網路上具有高可用性和高擴充套件性。

支援的作業系統:Windows、Linux、OS X和安卓。

相關連結:http://couchdb.apache.org


27. FlockDB

由推特開發的FlockDB是一種非常快、擴充套件性非常好的圖形資料庫,擅長儲存社交網路資料。雖然它仍可用於下載,但是這個專案的開源版已有一段時間沒有更新了。

支援的作業系統:與作業系統無關。

相關連結:https://github.com/twitter/flockdb


28. Hibari

這個基於Erlang的專案自稱是“一種分散式有序鍵值儲存系統,保證擁有很強的一致性”。它最初是由Gemini Mobile Technologies開發的,現在已被歐洲和亞洲的幾家電信運營商所使用。

支援的作業系統:與作業系統無關。

相關連結:http://hibari.github.io/hibari-doc/


29. Hypertable

Hypertable是一種與Hadoop相容的大資料資料庫,承諾效能超高,其使用者包括電子港灣、百度、高朋、Yelp及另外許多網際網路公司。提供商業支援服務。

支援的作業系統:Linux和OS X。

相關連結:http://hypertable.org


30. Impala

Cloudera聲稱,基於SQL的Impala資料庫是“面向Apache Hadoop的領先的開源分析資料庫”。它可以作為一款獨立產品來下載,又是Cloudera的商業大資料產品的一部分。

支援的作業系統:Linux和OS X。

相關連結:http://www.cloudera.com/content/cloudera/en/products-and-services/cdh/impala.html


31. InfoBright社群版

InfoBright為資料分析而設計,這是一種面向列的資料庫,具有很高的壓縮比。InfoBright.com提供基於同一程式碼的收費產品,提供支援服務。

支援的作業系統:Windows和Linux。

相關連結:http://www.infobright.org


32. MongoDB

mongoDB的下載量已超過1000萬人次,這是一種極其受歡迎的NoSQL資料庫。MongoDB.com上提供了企業版、支援、培訓及相關產品和服務。

支援的作業系統:Windows、Linux、OS X和Solaris。

相關連結:http://www.mongodb.org


33. Neo4j

Neo4j自稱是“速度最快、擴充套件性最佳的原生圖形資料庫”,它承諾具有大規模擴充套件性、快速的密碼查詢效能和經過改進的開發效率。使用者包括電子港灣、必能寶(Pitney Bowes)、沃爾瑪、德國漢莎航空公司和CrunchBase。

支援的作業系統:Windows和Linux。

相關連結:http://neo4j.org


34. OrientDB

這款多模型資料庫結合了圖形資料庫的一些功能和文件資料庫的一些功能。提供收費支援、培訓和諮詢等服務。

支援的作業系統:與作業系統無關。

相關連結:http://www.orientdb.org/index.htm


35. Pivotal Greenplum Database

Pivotal聲稱,Greenplum是“同類中最佳的企業級分析資料庫”,能夠非常快速地對龐大的海量資料進行功能強大的分析。它是Pivotal大資料庫套件的一部分。

支援的作業系統:Windows、Linux和OS X。

相關連結:http://pivotal.io/big-data/pivotal-greenplum-database


36. Riak

Riak“功能完備”,有兩個版本:KV是分散式NoSQL資料庫,S2提供了面向雲環境的物件儲存。它既有開源版,也有商業版,還有支援Spark、Redis和Solr的附件。

支援的作業系統:Linux和OS X。

相關連結:http://basho.com/riak-0-10-is-full-of-great-stuff/


37. Redis

Redis現在由Pivotal贊助,這是一種鍵值快取和儲存系統。提供收費支援。要注意:雖然該專案並不正式支援Windows,不過微軟在GitHub上有一個Windows派生版。

支援的作業系統:Linux。

相關連結:http://redis.io


四、商業智慧


38. Talend Open Studio

Talend的下載量已超過200萬人次,其開源軟體提供了資料整合功能。該公司還開發收費的大資料、雲、資料整合、應用程式整合和主資料管理等工具。其使用者包括美國國際集團(AIG)、康卡斯特、電子港灣、通用電氣、三星、Ticketmaster和韋裡遜等企業組織。

支援的作業系統:Windows、Linux和OS X。

相關連結:http://www.talend.com/index.php


39. Jaspersoft

Jaspersoft提供了靈活、可嵌入的商業智慧工具,使用者包括眾多企業組織:高朋、冠群科技、美國農業部、愛立信、時代華納有線電視、奧林匹克鋼鐵、內斯拉斯加大學和通用動力公司。除了開源社群版外,它還提供收費的報表版、亞馬遜網路服務(AWS)版、專業版和企業版。

支援的作業系統:與作業系統無關。

相關連結:http://www.jaspersoft.com


40. Pentaho

Pentaho歸日立資料系統公司所有,它提供了一系列資料整合和業務分析工具。官方網站上提供了三個社群版;訪問Pentaho.com,即可瞭解收費支援版方面的資訊。

支援的作業系統:Windows、Linux和OS X。

相關連結:http://community.pentaho.com


41. SpagoBI

Spago被市場分析師們稱為“開源領袖”,它提供商業智慧、中介軟體和質量保證軟體,另外還提供Java EE應用程式開發框架。該軟體百分之分免費、開源,不過也提供收費的支援、諮詢、培訓及其他服務。

支援的作業系統:與作業系統無關。

相關連結:http://www.spagoworld.org/xwiki/bin/view/SpagoWorld/


42. KNIME

KNIME的全稱是“康斯坦茨資訊挖掘工具”(Konstanz Information Miner),這是一種開源分析和報表平臺。提供了幾個商業和開源擴充套件件,以增強其功能。

支援的作業系統:Windows、Linux和OS X。

相關連結:http://www.knime.org


43. BIRT

BIRT的全稱是“商業智慧和報表工具”。它提供的一種平臺可用於製作可以嵌入到應用程式和網站中的視覺化元素及報表。它是Eclipse社群的一部分,得到了Actuate、IBM和Innovent Solutions的支援。

支援的作業系統:與作業系統無關。

相關連結:http://www.eclipse.org/birt/


五、資料探勘


44.DataMelt

作為jHepWork的後續者,DataMelt可以處理數學運算、資料探勘、統計分析和資料視覺化等任務。它支援Java及相關的程式語言,包括Jython、Groovy、JRuby和Beanshell。

支援的作業系統:與作業系統無關。

相關連結:http://jwork.org/dmelt/


45. KEEL

KEEL的全稱是“基於進化學習的知識提取”,這是一種基於Java的機器學習工具,為一系列大資料任務提供了演算法。它還有助於評估演算法在處理遞迴、分類、叢集、模式挖掘及類似任務時的效果。

支援的作業系統:與作業系統無關。

相關連結:http://keel.es


46. Orange

Orange認為資料探勘應該是“碩果累累、妙趣橫生”,無論你是有多年的豐富經驗,還是剛開始接觸這個領域。它提供了視覺化程式設計和Python指令碼工具,可用於資料視覺化和分析。

支援的作業系統:Windows、Linux和OS X。

相關連結:http://orange.biolab.si


47. RapidMiner

RapidMiner聲稱擁有250000多個使用者,包括貝寶、德勤、電子港灣、思科和大眾。它提供一系列廣泛的開源版和收費版,不過要注意:免費的開源版只支援CSV格式或Excel格式的資料。

支援的作業系統:與作業系統無關。

相關連結:https://rapidminer.com


48. Rattle

Rattle的全稱是“易學易用的R分析工具”。它為R程式語言提供了一種圖形化介面,簡化了這些過程:構建資料的統計或視覺化摘要、構建模型以及執行資料轉換。

支援的作業系統:Windows、Linux和OS X。

相關連結:http://rattle.togaware.com


49. SPMF

SPMF現在包括93種演算法,可用於順序模式挖掘、關聯規則挖掘、項集挖掘、順序規則挖掘和叢集。它可以獨立使用,也可以整合到其他基於Java的程式中。

支援的作業系統:與作業系統無關。

相關連結:http://www.philippe-fournier-viger.com/spmf/


50. Weka

懷卡託知識分析環境(Weka)是一組基於Java的機器學習演算法,面向資料探勘。它可以執行資料預處理、分類、遞迴、叢集、關聯規則和視覺化。

支援的作業系統:Windows、Linux和OS X。

相關連結:http://www.cs.waikato.ac.nz/~ml/weka/


六、查詢引擎


51. Drill

這個Apache專案讓使用者可以使用基於SQL的查詢,查詢Hadoop、NoSQL資料庫和雲端儲存服務。它可用於資料探勘和即席查詢,它支援一系列廣泛的資料庫,包括HBase、MongoDB、MapR-DB、HDFS、MapR-FS、亞馬遜S3、Azure Blob Storage、谷歌雲端儲存和Swift。

支援的作業系統:Windows、Linux和OS X。

相關連結:http://drill.apache.org


七、程式語言


52. R

R類似S語言和環境,旨在處理統計計算和圖形。它包括一套整合的大資料工具,可用於資料處理、計算和視覺化。

支援的作業系統:Windows、Linux和OS X。

相關連結:http://www.r-project.org


53. ECL

企業控制語言(ECL)是開發人員用來在HPCC平臺上構建大資料應用程式的語言。HPCC Systems官方網站上有整合開發環境(IDE)、教程以及處理該語言的眾多相關工具。

支援的作業系統:Linux。

相關連結:http://hpccsystems.com/download/docs/ecl-language-reference


八、大資料搜尋


54. Lucene

基於Java的Lucene可以非常迅速地執行全文搜尋。據官方網站聲稱,它在現代硬體上每小時能夠檢索超過150GB的資料,它含有強大而高效的搜尋演算法。開發工作得到了Apache軟體基金會的贊助。

支援的作業系統:與作業系統無關。

相關連結:http://lucene.apache.org/core/


55. Solr

Solr基於Apache Lucene,是一種高度可靠、高度擴充套件的企業搜尋平臺。知名使用者包括eHarmony、西爾斯、StubHub、Zappos、百思買、AT&T、Instagram、Netflix、彭博社和Travelocity。

支援的作業系統:與作業系統無關。

相關連結:http://lucene.apache.org/solr/


九、記憶體中技術


56. Ignite

這個Apache專案自稱是“一種高效能、整合式、分散式的記憶體中平臺,可用於對大規模資料集執行實時計算和處理,速度比傳統的基於磁碟的技術或快閃記憶體技術高出好幾個數量級。”該平臺包括資料網格、計算網格、服務網格、流媒體、Hadoop加速、高階叢集、檔案系統、訊息傳遞、事件和資料結構等功能。

支援的作業系統:與作業系統無關。

相關連結:https://ignite.incubator.apache.org


57. Terracotta

Terracotta聲稱其BigMemory技術是“世界上數一數二的記憶體中資料管理平臺”,聲稱擁有210萬開發人員,250家企業組織部署了其軟體。該公司還提供商業版軟體,另外提供支援、諮詢和培訓等服務。

支援的作業系統:與作業系統無關。

相關連結:http://www.terracotta.org


58. Pivotal GemFire/Geode

今年早些時候,Pivotal宣佈它將開放其大資料套件關鍵元件的原始碼,其中包括GemFire記憶體中NoSQL資料庫。它已向Apache軟體基金會遞交了一項提案,以便在“Geode”的名下管理GemFire資料庫的核心引擎。還提供該軟體的商業版。

支援的作業系統:Windows和Linux。

相關連結:http://pivotal.io/big-data/pivotal-gemfire


59. GridGain

由Apache Ignite驅動的GridGrain提供記憶體中資料結構,用於迅速處理大資料,還提供基於同一技術的Hadoop加速器。它既有收費的企業版,也有免費的社群版,後者包括免費的基本支援。

支援的作業系統:Windows、Linux和OS X。

相關連結:http://www.gridgain.com


60. Infinispan

作為一個紅帽JBoss專案,基於Java的Infinispan是一種分散式記憶體中資料網格。它可以用作快取、用作高效能NoSQL資料庫,或者為諸多框架新增叢集功能。

支援的作業系統:與作業系統無關。


相關文章