Java程序員使用大數據工具彙總

在許多情況下,使用SQL數據庫用於存儲/檢索數據就足夠了。但在另一些情況下,要麼SQL數據庫規模不夠,要麼還有更好的工具。這一切都取決於使用情況。

Java程序員使用大數據工具彙總

現在讓我們來討論一下存儲/處理數據用的不同的非SQL工具——NoSQL數據庫,內存緩存,全文搜索引擎,實時流,圖形數據庫,等等。

  MongoDB

一種流行的,跨平臺的面向文檔的數據庫。

  Elasticsearch

專爲雲而構建的分佈式REST風格搜索引擎。

  Cassandra

一個開源的分佈式數據庫管理系統,最初由臉譜網開發,被設計用來處理橫跨多個商用服務器的大量數據,提供了無單點故障的高度可用性。

  Redis

一個開源的(BSD許可),內存數據結構存儲,作爲數據庫、緩存和消息代理使用。

  Hazelcast

基於Java的開源內存數據網格。

  EHCache

一種被廣泛使用的開源Java分佈式緩存,用於通用緩存、Java EE和輕量級容器。

  Hadoop

用Java編寫的一個開源軟件框架,用於分佈式存儲和對在計算機集羣上的超大型數據集的分佈式處理。

  Solr

一個開源的企業搜索平臺,用Java編寫的,來自於Apache Lucene項目。

  Spark

Apache Software Foundation中最活躍的項目,一個開源的集羣計算框架。

  Memcached

一個通用的分佈式內存緩存系統。

  Apache Hive

提供了Hadoop之上類似於SQL的層。

  Apache Kafka

一個高通量、分佈式的發佈-訂閱式消息系統,最初開發在LinkedIn上。Windows上脫離Cygwin運行Apache Kafka。

  Akka

一個工具包和運行時,用於在JVM上構建高度並行的、分佈式的、有彈性的消息驅動的應用程序。

  HBase

一個開源的,非關係型的,分佈式數據庫,在谷歌的BigTable後建模,用Java編寫,並運行在HDFS上。

  Neo4j

用Java實現的開源圖形數據庫。

  CouchBase

一個開源的、面向文檔的`分佈式NoSQL數據庫,特別爲了交互式應用而優化。

  Apache Storm

開源的分佈式實時計算系統。

  CouchDB

使用JSON來存儲數據的面向文檔的開源NoSQL數據庫。

  Oracle Coherence

一個內存的數據網格解決方案,通過提供快速訪問常用數據的渠道,使得企業可預測地擴展關鍵任務應用程序。

  Titan

一個可擴展的圖形數據庫,優化的目的在於存儲和查詢包含數千億頂點和邊的圖形,分佈在多機集羣。

  Amazon DynamoDB

一個快速、靈活、完全管理的NoSQL數據庫服務,用於在任何規模需要一致的、個位數毫秒延遲的所有應用程序。

  Amazon Kinesis

用於在AWS上的流數據的實時平臺。

  Datomic

一個用Clojure寫的完全事務式的,支持雲的,分佈式數據庫。