標籤:
據日前的一則大資料工具使用方式調查,我們知道了Java程式猿最喜歡用的大資料工具。
問題:他們最近一年最喜歡用什麼工具或者是架構?
受訪者可以挑選清單中的選項或者列出自己的,本文主要關心的是大資料工具。上一篇Java調查包括下列內容:
- 開發語言
- Web架構
- 應用伺服器
- 資料庫工具
- SQL資料
- 大資料
- 開發工具
- 雲供應商
現在,來看看維基百科上對大資料的定義:
大資料,廣義上來說是一組量很大很複雜的資料集合,在這種情況下傳統的資料處理方式將不再適用。
對於一般情況來說傳統的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中最活躍的項目,是一個開源的叢集化計算架構。
- Memcached–通用分布式緩衝系統。
- Apache Hive-在Hadoop支援類SQL封裝,將SQL語句變成mr程式來執行。
- Apache Kafka–高輸送量、分布式、訊息發布-訂閱系統,最早是Linkin開發的。
- Akka–Java開發的用來建造高並發,基於jvm彈性訊息驅動的應用。
- Hbase-根據Google的BigTable論文開發的開源分布式非關係型資料庫。開發語言是Java,用HDFS作為底層儲存。
- Neo4j–用Java實現的開源圖形資料庫。
- CouchBase–面向Document的開源分布式NoSQL資料庫,並且針對互動應用做過最佳化。
- Apache Storm–開源分布式即時計算系統。
- CouchDB–使用json來儲存資料的開放源碼面向文檔的NoSQL資料庫。
- Oracle Coherence–記憶體資料格解決方案,使企業通過提供快速存取熱資料來預測關鍵任務應用的規模。
- Titan–可擴充的圖形資料庫,針對叢集儲存和查詢數千億的圖形資料做過最佳化。
- 亞馬遜 DynamoDB – 一個快速、靈活NoSQL資料庫,能夠應對所有規模應用程式的需求,包括持久化、毫秒級延遲。
- Amazon Kinesis–AWS上的即時資料計算平台。
- Datomic–提供完整事務支援,雲端運算,分布式的資料庫,開發語言用Clojure。
Java程式員在用的大資料工具,MongoDB穩居第一!