Java程序員使用的20幾個(gè)大數(shù)據(jù)工具
最近我問(wèn)了很多Java開(kāi)發(fā)人員關(guān)于最近12個(gè)月內(nèi)他們使用的是什么大數(shù)據(jù)工具。
這是一個(gè)系列,主題為:
- 語(yǔ)言
- web框架
- 應(yīng)用服務(wù)器
- SQL數(shù)據(jù)訪(fǎng)問(wèn)工具
- SQL數(shù)據(jù)庫(kù)
- 大數(shù)據(jù)
- 構(gòu)建工具
- 云提供商
今天我們就要說(shuō)說(shuō)大數(shù)據(jù)。根據(jù)維基百科,大數(shù)據(jù)是數(shù)據(jù)集的一個(gè)廣義的術(shù)語(yǔ),并且該數(shù)據(jù)集是如此龐大和復(fù)雜,以致于傳統(tǒng)的數(shù)據(jù)處理應(yīng)用程序無(wú)法勝任。
在許多情況下,使用SQL數(shù)據(jù)庫(kù)用于存儲(chǔ)/檢索數(shù)據(jù)就足夠了。但在另一些情況下,要么SQL數(shù)據(jù)庫(kù)規(guī)模不夠,要么還有更好的工具。這一切都取決于使用情況。
現(xiàn)在讓我們來(lái)討論一下存儲(chǔ)/處理數(shù)據(jù)用的不同的非SQL工具——NoSQL數(shù)據(jù)庫(kù),內(nèi)存緩存,全文搜索引擎,實(shí)時(shí)流,圖形數(shù)據(jù)庫(kù),等等。
MongoDB—— 一種流行的,跨平臺(tái)的面向文檔的數(shù)據(jù)庫(kù)。
Elasticsearch——專(zhuān)為云而構(gòu)建的分布式REST風(fēng)格搜索引擎。
Cassandra——一個(gè)開(kāi)源的分布式數(shù)據(jù)庫(kù)管理系統(tǒng),最初由Facebook開(kāi)發(fā),被設(shè)計(jì)用來(lái)處理橫跨多個(gè)商用服務(wù)器的大量數(shù)據(jù),提供了無(wú)單點(diǎn)故障的高度可用性。
Redis—— 一個(gè)開(kāi)源的(BSD許可),內(nèi)存數(shù)據(jù)結(jié)構(gòu)存儲(chǔ),作為數(shù)據(jù)庫(kù)、緩存和消息代理使用。
Hazelcast——基于Java的開(kāi)源內(nèi)存數(shù)據(jù)網(wǎng)格。
EHCache——一種被廣泛使用的開(kāi)源Java分布式緩存,用于通用緩存、Java EE和輕量級(jí)容器。Ehcache相關(guān)介紹
Hadoop——用Java編寫(xiě)的一個(gè)開(kāi)源軟件框架,用于分布式存儲(chǔ)和對(duì)在計(jì)算機(jī)集群上的超大型數(shù)據(jù)集的分布式處理。
Solr——一個(gè)開(kāi)源的企業(yè)搜索平臺(tái),用Java編寫(xiě)的,來(lái)自于Apache Lucene項(xiàng)目。
Spark——Apache Software Foundation中最活躍的項(xiàng)目,一個(gè)開(kāi)源的集群計(jì)算框架。
Memcached—— 一個(gè)通用的分布式內(nèi)存緩存系統(tǒng)。
Apache Hive——提供了Hadoop之上類(lèi)似于SQL的層。
Apache Kafka—— 一個(gè)高通量、分布式的發(fā)布-訂閱式消息系統(tǒng),最初開(kāi)發(fā)在LinkedIn上。Windows上脫離Cygwin運(yùn)行Apache Kafka
Akka—— 一個(gè)工具包和運(yùn)行時(shí),用于在JVM上構(gòu)建高度并行的、分布式的、有彈性的消息驅(qū)動(dòng)的應(yīng)用程序。
HBase—— 一個(gè)開(kāi)源的,非關(guān)系型的,分布式數(shù)據(jù)庫(kù),在谷歌的BigTable后建模,用Java編寫(xiě),并運(yùn)行在HDFS上。
Neo4j——用Java實(shí)現(xiàn)的開(kāi)源圖形數(shù)據(jù)庫(kù)。
CouchBase——一個(gè)開(kāi)源的、面向文檔的分布式NoSQL數(shù)據(jù)庫(kù),特別為了交互式應(yīng)用而優(yōu)化。
Apache Storm——開(kāi)源的分布式實(shí)時(shí)計(jì)算系統(tǒng)。
CouchDB——使用JSON來(lái)存儲(chǔ)數(shù)據(jù)的面向文檔的開(kāi)源NoSQL數(shù)據(jù)庫(kù)。
Oracle Coherence—— 一個(gè)內(nèi)存的數(shù)據(jù)網(wǎng)格解決方案,通過(guò)提供快速訪(fǎng)問(wèn)常用數(shù)據(jù)的渠道,使得企業(yè)可預(yù)測(cè)地?cái)U(kuò)展關(guān)鍵任務(wù)應(yīng)用程序。
Titan—— 一個(gè)可擴(kuò)展的圖形數(shù)據(jù)庫(kù),優(yōu)化的目的在于存儲(chǔ)和查詢(xún)包含數(shù)千億頂點(diǎn)和邊的圖形,分布在多機(jī)集群。
Amazon DynamoDB——一個(gè)快速、靈活、完全管理的NoSQL數(shù)據(jù)庫(kù)服務(wù),用于在任何規(guī)模需要一致的、個(gè)位數(shù)毫秒延遲的所有應(yīng)用程序。
Amazon Kinesis—— 用于在AWS上的流數(shù)據(jù)的實(shí)時(shí)平臺(tái)。
Datomic—— 一個(gè)用Clojure寫(xiě)的完全事務(wù)式的,支持云的,分布式數(shù)據(jù)庫(kù)。
譯文鏈接:http://www.codeceo.com/article/big-data-tools-java-programmer-use.html
英文原文:What Big Data Tools Do Java Developers Use?