Java程式設計師使用大資料工具彙總

才智咖 人氣:1.39W

在許多情況下,使用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寫的完全事務式的,支援雲的,分散式資料庫。