據日前的一則大數據工具使用情況調查,我們知道了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。