Java程式設計師在用的大資料工具
阿新 • • 發佈:2019-01-08
問題:他們最近一年最喜歡用什麼工具或者是框架?
受訪者可以選擇列表中的選項或者列出自己的,本文主要關心的是大資料工具。上一篇Java調查包括下列內容:
現在,來看看維基百科上對大資料的定義:
大資料,廣義上來說是一組量很大很複雜的資料集合,在這種情況下傳統的資料處理方式將不再適用。
對於一般情況來說傳統的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。