天天看點

【幹貨】全球大資料領域頂級開源工具彙總

大資料技術領域正被越來越多的公司關注,而開源一直是大資料技術的靈魂。随着一些細分領域對大資料工具提出更高的期望和要求,一批更高效更有針對性的大資料工具先後誕生,以下将為您介紹幾大引人注目的開源大資料工具。

【幹貨】全球大資料領域頂級開源工具彙總

一、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資料庫,或者為諸多架構添加叢集功能。

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