Java程式設計師使用的20幾個大資料工具

codeceo發表於2016-01-28

  最近我問了很多Java開發人員關於最近12個月內他們使用的是什麼大資料工具。

  這是一個系列,主題為:

  • 語言
  • web框架
  • 應用伺服器
  • SQL資料訪問工具
  • SQL資料庫
  • 大資料
  • 構建工具
  • 雲提供商

  今天我們就要說說大資料。根據維基百科,大資料是資料集的一個廣義的術語,並且該資料集是如此龐大和複雜,以致於傳統的資料處理應用程式無法勝任。

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

  現在讓我們來討論一下儲存/處理資料用的不同的非SQL工具——NoSQL資料庫,記憶體快取,全文搜尋引擎,實時流,圖形資料庫,等等。

  MongoDB—— 一種流行的,跨平臺的面向文件的資料庫。

  Elasticsearch——專為雲而構建的分散式REST風格搜尋引擎。

  Cassandra——一個開源的分散式資料庫管理系統,最初由Facebook開發,被設計用來處理橫跨多個商用伺服器的大量資料,提供了無單點故障的高度可用性。

  Redis—— 一個開源的(BSD許可),記憶體資料結構儲存,作為資料庫、快取和訊息代理使用。

  Hazelcast——基於Java的開源記憶體資料網格。

  EHCache——一種被廣泛使用的開源Java分散式快取,用於通用快取、Java EE和輕量級容器。Ehcache相關介紹

  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寫的完全事務式的,支援雲的,分散式資料庫。

  英文原文:What Big Data Tools Do Java Developers Use? 翻譯:codeceo

相關文章