1. 程式人生 > >Java程式設計師在用的大資料工具

Java程式設計師在用的大資料工具

問題:他們最近一年最喜歡用什麼工具或者是框架?

受訪者可以選擇列表中的選項或者列出自己的,本文主要關心的是大資料工具。上一篇Java調查包括下列內容:

  1. 開發語言
  2. Web框架
  3. 應用伺服器
  4. 資料庫工具
  5. SQL資料
  6. 大資料
  7. 開發工具
  8. 雲供應商

現在,來看看維基百科上對大資料的定義:

大資料,廣義上來說是一組量很大很複雜的資料集合,在這種情況下傳統的資料處理方式將不再適用。

對於一般情況來說傳統的SQL資料庫足夠用。再另外一些場景下,傳統的資料庫能夠承載的資料庫量級有限,並且現在有了越來越多的工具可供使用。關鍵取決於場景。 
現在讓我們來討論不同的非SQL工具來儲存/處理資料 - NoSQL資料庫、記憶體快取、全文搜尋引擎、實時流媒體、圖形資料庫等。

大資料-調查結果

圖片描述

  • MongoDB-一種非常流行的、跨平臺、面向document的資料庫。
  • Elasticsearch-專為雲端計算設計的分散式REST風格的搜尋引擎。
  • Cassandra-一個開源的分散式資料庫管理系統。最初是Facebook設計和開發的,部署在大量商用伺服器上來處理大量的資料。高可用,無單點故障。
  • Redis-開源的(BSD)記憶體資料結構儲存、記憶體庫、快取、訊息代理。
  • Hazelcast-基於Java開發的記憶體資料網格。
  • EHCache-廣泛使用的開源Java分散式快取、J2ee、輕量級容器。
  • Hadoop-用java開發的開源分散式大資料框架,用來處理非常大規模資料,hadoop是叢集化部署。
  • Solr-使用java開發的開源企業級搜尋平臺。最初歸屬在Apache Lucene專案中。
  • Spark-ASF中最活躍的專案,是一個開源的叢集化計算框架。
  • Apache Hive-在Hadoop支援類SQL封裝,將SQL語句變成mr程式來執行。
  • Apache Kafka–高吞吐量、分散式、訊息釋出-訂閱系統,最早是Linkin開發的。
  • Akka–Java開發的用來建造高併發,基於jvm彈性訊息驅動的應用。
  • Hbase-根據Google的BigTable論文開發的開源分散式非關係型資料庫。開發語言是Java,用HDFS作為底層儲存。
  • Neo4j–用Java實現的開源圖形資料庫。
  • CouchBase–面向Document的開源分散式NoSQL資料庫,並且針對互動應用做過優化。
  • CouchDB–使用json來儲存資料的開放原始碼面向文件的NoSQL資料庫。
  • Oracle Coherence–記憶體資料網格解決方案,使企業通過提供快速訪問熱資料來預測關鍵任務應用的規模。
  • Titan–可擴充套件的圖形資料庫,針對叢集儲存和查詢數千億的圖形資料做過優化。
  • 亞馬遜 DynamoDB – 一個快速、靈活NoSQL資料庫,能夠應對所有規模應用程式的需求,包括持久化、毫秒級延遲。
  • Datomic–提供完整事務支援,雲端計算,分散式的資料庫,開發語言用Clojure。