//
一共81個(gè)玛追,開源大數(shù)據(jù)處理工具匯總(上) | 36大數(shù)據(jù)
http://www.36dsj.com/archives/24852
本文一共分為上下兩部分旬渠。我們將針對大數(shù)據(jù)開源工具不同的用處來進(jìn)行分類俱萍,并且附上了官網(wǎng)和部分下載鏈接,希望能給做大數(shù)據(jù)的朋友做個(gè)參考坟漱。下面是第一部分鼠次。
查詢引擎
一、Phoenix
貢獻(xiàn)者::Salesforce
簡介:這是一個(gè)Java中間層芋齿,可以讓開發(fā)者在Apache HBase上執(zhí)行SQL查詢腥寇。Phoenix完全使用Java編寫,代碼位于GitHub上觅捆,并且提供了一個(gè)客戶端可嵌入的JDBC驅(qū)動赦役。
Phoenix查詢引擎會將SQL查詢轉(zhuǎn)換為一個(gè)或多個(gè)HBase scan,并編排執(zhí)行以生成標(biāo)準(zhǔn)的JDBC結(jié)果集栅炒。直接使用HBase API掂摔、協(xié)同處理器與自定義過濾器,對于簡單查詢來說赢赊,其性能量級是毫秒乙漓,對于百萬級別的行數(shù)來說,其性能量級是秒释移。
Phoenix最值得關(guān)注的一些特性有:
?嵌入式的JDBC驅(qū)動叭披,實(shí)現(xiàn)了大部分的java.sql接口,包括元數(shù)據(jù)API?可以通過多部行鍵或是鍵/值單元對列進(jìn)行建模?完善的查詢支持玩讳,可以使用多個(gè)謂詞以及優(yōu)化的掃描鍵?DDL支持:通過CREATE TABLE涩蜘、DROP TABLE及ALTER TABLE來添加/刪除列?版本化的模式倉庫:當(dāng)寫入數(shù)據(jù)時(shí)嚼贡,快照查詢會使用恰當(dāng)?shù)哪J?DML支持:用于逐行插入的UPSERT VALUES、用于相同或不同表之間大量數(shù)據(jù)傳輸?shù)腢PSERT ?SELECT同诫、用于刪除行的DELETE?通過客戶端的批處理實(shí)現(xiàn)的有限的事務(wù)支持?單表——還沒有連接粤策,同時(shí)二級索引也在開發(fā)當(dāng)中?緊跟ANSI SQL標(biāo)準(zhǔn)
Phoenix官方網(wǎng)站>>>
二、Stinger
貢獻(xiàn)者::Hortonworks
簡介:原叫Tez误窖,下一代Hive,Hortonworks主導(dǎo)開發(fā)叮盘,運(yùn)行在YARN上的DAG計(jì)算框架。
某些測試下贩猎,Stinger能提升10倍左右的性能熊户,同時(shí)會讓Hive支持更多的SQL,其主要優(yōu)點(diǎn)包括:
?讓用戶在Hadoop獲得更多的查詢匹配吭服。其中包括類似OVER的字句分析功能,支持WHERE查詢蝗罗,讓Hive的樣式系統(tǒng)更符合SQL模型艇棕。
?優(yōu)化了Hive請求執(zhí)行計(jì)劃,優(yōu)化后請求時(shí)間減少90%串塑。改動了Hive執(zhí)行引擎沼琉,增加單Hive任務(wù)的被秒處理記錄數(shù)。
?在Hive社區(qū)中引入了新的列式文件格式(如ORC文件)桩匪,提供一種更現(xiàn)代打瘪、高效和高性能的方式來儲存Hive數(shù)據(jù)。
?引入了新的運(yùn)行時(shí)框架——Tez傻昙,旨在消除Hive的延時(shí)和吞吐量限制闺骚。Tez通過消除不必要的task、障礙同步和對HDFS的讀寫作業(yè)來優(yōu)化Hive job妆档。這將優(yōu)化Hadoop內(nèi)部的執(zhí)行鏈僻爽,徹底加速Hive負(fù)載處理。
Stinger官方網(wǎng)站>>>
三贾惦、Presto
貢獻(xiàn)者::Facebook
簡介:Facebook開源的數(shù)據(jù)查詢引擎Presto 胸梆,可對250PB以上的數(shù)據(jù)進(jìn)行快速地交互式分析。該項(xiàng)目始于 2012 年秋季開始開發(fā)须板,目前該項(xiàng)目已經(jīng)在超過 1000 名 Facebook 雇員中使用碰镜,運(yùn)行超過 30000 個(gè)查詢,每日數(shù)據(jù)在 1PB 級別习瑰。Facebook 稱 Presto 的性能比諸如 Hive 和 Map*Reduce 要好上 10 倍有多绪颖。
Presto 當(dāng)前支持 ANSI SQL 的大多數(shù)特效,包括聯(lián)合查詢杰刽、左右聯(lián)接菠发、子查詢以及一些聚合和計(jì)算函數(shù)王滤;支持近似截然不同的計(jì)數(shù)(DISTINCT COUNT)等。
github源代碼下載>>>
四滓鸠、Shark
簡介:Shark即Hive on Spark雁乡,本質(zhì)上是通過Hive的HQL解析,把HQL翻譯成Spark上的RDD操作糜俗,然后通過Hive的metadata獲取數(shù)據(jù)庫里的表信息踱稍,實(shí)際HDFS上的數(shù)據(jù)和文件,會由Shark獲取并放到Spark上運(yùn)算悠抹。Shark的特點(diǎn)就是快珠月,完全兼容Hive,且可以在shell模式下使用rdd2sql()這樣的API楔敌,把HQL得到的結(jié)果集啤挎,繼續(xù)在scala環(huán)境下運(yùn)算,支持自己編寫簡單的機(jī)器學(xué)習(xí)或簡單分析處理函數(shù)卵凑,對HQL結(jié)果進(jìn)一步分析計(jì)算庆聘。
?Shark速度快的原因除了Spark平臺提供的基于內(nèi)存迭代計(jì)算外,在設(shè)計(jì)上還存在對Spark上進(jìn)行了一定的改造勺卢,主要有
?partial DAG execution:對join優(yōu)化伙判,調(diào)節(jié)并行粒度,因?yàn)镾park本身的寬依賴和窄依賴會影響并行計(jì)算和速度
基于列的壓縮和存儲:把HQL表數(shù)據(jù)按列存黑忱,每列是一個(gè)array宴抚,存在JVM上,避免了JVM GC低效甫煞,而壓縮和解壓相關(guān)的技術(shù)是Yahoo!提供的菇曲。
結(jié)來說,Shark是一個(gè)插件式的東西危虱,在我現(xiàn)有的Spark和Hive及hadoop-client之間羊娃,在這兩套都可用的情況下,Shark只要獲取Hive的配置(還有metastore和exec等關(guān)鍵包)埃跷,Spark的路徑蕊玷,Shark就能利用Hive和Spark,把HQL解析成RDD的轉(zhuǎn)換弥雹,把數(shù)據(jù)取到Spark上運(yùn)算和分析垃帅。在SQL on Hadoop這塊,Shark有別于Impala剪勿,Stringer贸诚,而這些系統(tǒng)各有自己的設(shè)計(jì)思路,相對于對MR進(jìn)行優(yōu)化和改進(jìn)的思路,Shark的思路更加簡單明了些酱固。
Shark官方網(wǎng)站>>>
五械念、Pig
簡介:Pig是一種編程語言,它簡化了Hadoop常見的工作任務(wù)运悲。Pig可加載數(shù)據(jù)龄减、表達(dá)轉(zhuǎn)換數(shù)據(jù)以及存儲最終結(jié)果。Pig內(nèi)置的操作使得半結(jié)構(gòu)化數(shù)據(jù)變得有意義(如日志文件)班眯。同時(shí)Pig可擴(kuò)展使用Java中添加的自定義數(shù)據(jù)類型并支持?jǐn)?shù)據(jù)轉(zhuǎn)換希停。
Pig最大的作用就是對mapreduce算法(框架)實(shí)現(xiàn)了一套shell腳本 ,類似我們通常熟悉的SQL語句署隘,在Pig中稱之為Pig Latin宠能,在這套腳本中我們可以對加載出來的數(shù)據(jù)進(jìn)行排序、過濾磁餐、求和违崇、分組(group by)、關(guān)聯(lián)(Joining)诊霹,Pig也可以由用戶自定義一些函數(shù)對數(shù)據(jù)集進(jìn)行操作亦歉,也就是傳說中的UDF(user-defined functions)。
Pig官方網(wǎng)站>>>
六畅哑、Cloudera Impala
貢獻(xiàn)者::Cloudera
簡介:Cloudera Impala 可以直接為存儲在HDFS或HBase中的Hadoop數(shù)據(jù)提供快速,交互式的SQL查詢水由。除了使用相同的存儲平臺外荠呐, Impala和Apache Hive一樣也使用了相同的元數(shù)據(jù),SQL語法(Hive SQL)砂客,ODBC驅(qū)動和用戶接口(Hue Beeswax)泥张,這就很方便的為用戶提供了一個(gè)相似并且統(tǒng)一的平臺來進(jìn)行批量或?qū)崟r(shí)查詢。
Cloudera Impala 是用來進(jìn)行大數(shù)據(jù)查詢的補(bǔ)充工具鞠值。 Impala 并沒有取代像Hive這樣基于MapReduce的分布式處理框架媚创。Hive和其它基于MapReduce的計(jì)算框架非常適合長時(shí)間運(yùn)行的批處理作業(yè),例如那些涉及到批量 Extract彤恶、Transform钞钙、Load ,即需要進(jìn)行ETL作業(yè)声离。
Impala 提供了:
?數(shù)據(jù)科學(xué)家或數(shù)據(jù)分析師已經(jīng)熟知的SQL接口
?能夠在Apache Hadoop 的大數(shù)據(jù)中進(jìn)行交互式數(shù)據(jù)查詢
? Single system for big data processing and analytics so customers can avoid costly modeling and ETL just for analytics
Cloudera Impala官方網(wǎng)站>>>
七芒炼、Apache Drill
貢獻(xiàn)者::MapR
簡介:Apache Drill是是一個(gè)能夠?qū)Υ髷?shù)據(jù)進(jìn)行交互分析、開源的分布式系統(tǒng)术徊,且基于Google Dremel實(shí)現(xiàn)本刽,它能夠運(yùn)行在上千個(gè)節(jié)點(diǎn)的服務(wù)器集群上,且能在幾秒內(nèi)處理PB級或者萬億條的數(shù)據(jù)記錄。Drill能夠幫助企業(yè)用戶快速子寓、高效地進(jìn)行Hadoop數(shù)據(jù)查詢和企業(yè)級大數(shù)據(jù)分析暗挑。Drill于2012年8月份由Apache推出。
從Drill官方對其架構(gòu)的介紹中得知斜友,其具有適于實(shí)時(shí)的分析和快速的應(yīng)用開發(fā)炸裆、適于半結(jié)構(gòu)化/嵌套數(shù)據(jù)的分析、兼容現(xiàn)有的SQL環(huán)境和Apache Hive等特征蝙寨。另外晒衩,Drill的核心模塊是Drillbit服務(wù),該服務(wù)模塊包括遠(yuǎn)程訪問子模塊墙歪、SQL解析器听系、查詢優(yōu)化器、任務(wù)計(jì)劃執(zhí)行引擎虹菲、存儲插件接口(DFS靠胜、HBase、Hive等的接口)毕源、分布式緩存模塊等幾部分浪漠,如下圖所示:
Apache Drill官方網(wǎng)站>>>
八、Apache Tajo
簡介:Apache Tajo項(xiàng)目的目的是在HDFS之上構(gòu)建一個(gè)先進(jìn)的數(shù)據(jù)倉庫系統(tǒng)霎褐。Tajo將自己標(biāo)榜為一個(gè)“大數(shù)據(jù)倉庫”址愿,但是它好像和之前介紹的那些低延遲查詢引擎類似。雖然它支持外部表和Hive數(shù)據(jù)集(通過HCatalog)冻璃,但是它的重點(diǎn)是數(shù)據(jù)管理械哟,提供低延遲的數(shù)據(jù)訪問搏明,以及為更傳統(tǒng)的ETL提供工具卵蛉。它也需要在數(shù)據(jù)節(jié)點(diǎn)上部署Tajo特定的工作進(jìn)程回铛。
Tajo的功能包括:
?ANSI SQL兼容?JDBC 驅(qū)動?集成Hive metastore能夠訪問Hive數(shù)據(jù)集?一個(gè)命令行客戶端?一個(gè)自定義函數(shù)API
Apache Tajo官方網(wǎng)站>>>
九、Hive
簡介:hive是基于Hadoop的一個(gè)數(shù)據(jù)倉庫工具跋炕,可以將結(jié)構(gòu)化的數(shù)據(jù)文件映射為一張數(shù)據(jù)庫表赖晶,并提供簡單的sql查詢功能,可以將sql語句轉(zhuǎn)換為MapReduce任務(wù)進(jìn)行運(yùn)行辐烂。 其優(yōu)點(diǎn)是學(xué)習(xí)成本低遏插,可以通過類SQL語句快速實(shí)現(xiàn)簡單的MapReduce統(tǒng)計(jì),不必開發(fā)專門的MapReduce應(yīng)用棉圈,十分適合數(shù)據(jù)倉庫的統(tǒng)計(jì)分析涩堤。
Hive官方網(wǎng)站>>>
流式計(jì)算
一、Facebook Puma
貢獻(xiàn)者:Facebook
簡介:實(shí)時(shí)數(shù)據(jù)流分析
二分瘾、Twitter Rainbird
貢獻(xiàn)者:Twitter
簡介:Rainbird一款基于Zookeeper, Cassandra, Scribe, Thrift的分布式實(shí)時(shí)統(tǒng)計(jì)系統(tǒng)胎围,這些基礎(chǔ)組件的基本功能如下:
? Zookeeper吁系,Hadoop子項(xiàng)目中的一款分布式協(xié)調(diào)系統(tǒng),用于控制分布式系統(tǒng)中各個(gè)組件中的一致性白魂。
?Cassandra汽纤,NoSQL中一款非常出色的產(chǎn)品,集合了Dynamo和Bigtable特性的分布式存儲系統(tǒng)福荸,用于存儲需要進(jìn)行統(tǒng)計(jì)的數(shù)據(jù)蕴坪,統(tǒng)計(jì)數(shù)據(jù),并且提供客戶端進(jìn)行統(tǒng)計(jì)數(shù)據(jù)的查詢敬锐。(需要使用分布式Counter補(bǔ)丁CASSANDRA-1072)
? Scribe背传,F(xiàn)acebook開源的一款分布式日志收集系統(tǒng),用于在系統(tǒng)中將各個(gè)需要統(tǒng)計(jì)的數(shù)據(jù)源收集到Cassandra中台夺。
? Thrift径玖,F(xiàn)acebook開源的一款跨語言C/S網(wǎng)絡(luò)通信框架,開發(fā)人員基于這個(gè)框架可以輕易地開發(fā)C/S應(yīng)用颤介。
用處
Rainbird可以用于實(shí)時(shí)數(shù)據(jù)的統(tǒng)計(jì):
?統(tǒng)計(jì)網(wǎng)站中每一個(gè)頁面梳星,域名的點(diǎn)擊次數(shù)
?內(nèi)部系統(tǒng)的運(yùn)行監(jiān)控(統(tǒng)計(jì)被監(jiān)控服務(wù)器的運(yùn)行狀態(tài))
?記錄最大值和最小值
三、Yahoo S4
貢獻(xiàn)者:Yahoo
簡介:S4(Simple Scalable Streaming System)最初是Yahoo!為提高搜索廣告有效點(diǎn)擊率的問題而開發(fā)的一個(gè)平臺滚朵,通過統(tǒng)計(jì)分析用戶對廣告的點(diǎn)擊率冤灾,排除相關(guān)度低的廣告,提升點(diǎn)擊率辕近。目前該項(xiàng)目剛啟動不久韵吨,所以也可以理解為是他們提出的一個(gè)分布式流計(jì)算(Distributed Stream Computing)的模型。
S4的設(shè)計(jì)目標(biāo)是:
·提供一種簡單的編程接口來處理數(shù)據(jù)流
·設(shè)計(jì)一個(gè)可以在普通硬件之上可擴(kuò)展的高可用集群移宅。
·通過在每個(gè)處理節(jié)點(diǎn)使用本地內(nèi)存学赛,避免磁盤I/O瓶頸達(dá)到最小化延遲
·使用一個(gè)去中心的,對等架構(gòu)吞杭;所有節(jié)點(diǎn)提供相同的功能和職責(zé)。沒有擔(dān)負(fù)特殊責(zé)任的中心節(jié)點(diǎn)变丧。這大大簡化了部署和維護(hù)芽狗。
·使用可插拔的架構(gòu),使設(shè)計(jì)盡可能的即通用又可定制化痒蓬。
·友好的設(shè)計(jì)理念童擎,易于編程,具有靈活的彈性
Yahoo S4官方網(wǎng)站>>>
四攻晒、Twitter Storm
貢獻(xiàn)者:Twitter
簡介:Storm是Twitter開源的一個(gè)類似于Hadoop的實(shí)時(shí)數(shù)據(jù)處理框架顾复,它原來是由BackType開發(fā),后BackType被Twitter收購鲁捏,將Storm作為Twitter的實(shí)時(shí)數(shù)據(jù)分析系統(tǒng)芯砸。
實(shí)時(shí)數(shù)據(jù)處理的應(yīng)用場景很廣泛,例如商品推薦,廣告投放假丧,它能根據(jù)當(dāng)前情景上下文(用戶偏好双揪,地理位置,已發(fā)生的查詢和點(diǎn)擊等)來估計(jì)用戶點(diǎn)擊的可能性并實(shí)時(shí)做出調(diào)整包帚。
storm的三大作用領(lǐng)域:
1.信息流處理(Stream Processing)
Storm可以用來實(shí)時(shí)處理新數(shù)據(jù)和更新數(shù)據(jù)庫渔期,兼具容錯(cuò)性和可擴(kuò)展性,它 可以用來處理源源不斷的消息,并將處理之后的結(jié)果保存到持久化介質(zhì)中渴邦。
2.連續(xù)計(jì)算(Continuous Computation)
Storm可以進(jìn)行連續(xù)查詢并把結(jié)果即時(shí)反饋給客戶疯趟,比如將Twitter上的熱門話題發(fā)送到客戶端。
3.分布式遠(yuǎn)程過程調(diào)用(Distributed RPC)
除此之外谋梭,Storm也被廣泛用于以下方面:
精確的廣告推送
實(shí)時(shí)日志的處理
Twitter Storm官方網(wǎng)站>>>
迭代計(jì)算
一信峻、Apache Hama
簡介:Apache Hama是一個(gè)純BSP(Bulk Synchronous Parallel)計(jì)算框架,模仿了Google的Pregel章蚣。用來處理大規(guī)模的科學(xué)計(jì)算站欺,特別是矩陣和圖計(jì)算。
?建立在Hadoop上的分布式并行計(jì)算模型纤垂。
?基于 Map/Reduce 和 Bulk Synchronous 的實(shí)現(xiàn)框架矾策。
?運(yùn)行環(huán)境需要關(guān)聯(lián) Zookeeper、HBase峭沦、HDFS 組件贾虽。
Hama中有2個(gè)主要的模型:
– 矩陣計(jì)算(Matrix package)
– 面向圖計(jì)算(Graph package)
Apache Hama官方網(wǎng)站>>>
二、Apache Giraph
代碼托管地址: GitHub
簡介:Apache Giraph是一個(gè)可伸縮的分布式迭代圖處理系統(tǒng)吼鱼,靈感來自BSP(bulk synchronous parallel)和Google的Pregel蓬豁,與它們 區(qū)別于則是是開源、基于 Hadoop 的架構(gòu)等菇肃。
Giraph處理平臺適用于運(yùn)行大規(guī)模的邏輯計(jì)算地粪,比如頁面排行、共享鏈接琐谤、基于個(gè)性化排行等蟆技。Giraph專注于社交圖計(jì)算,被Facebook作為其Open Graph工具的核心斗忌,幾分鐘內(nèi)處理數(shù)萬億次用戶及其行為之間的連接质礼。
三、HaLoop
簡介:迭代的MapReduce织阳,HaLoop——適用于迭代計(jì)算的Hadoop 眶蕉。
Hadoop與HaLoop的不同
與Hadoop比較的四點(diǎn)改變:
1.提供了一套新的編程接口,更加適用于迭代計(jì)算唧躲;
HaLoop給迭代計(jì)算一個(gè)抽象的遞歸公式:
3.Task Scheduler也進(jìn)行了修改,使得任務(wù)能夠盡量滿足data locality
4.slave nodes對數(shù)據(jù)進(jìn)行cache并index索引刽宪,索引也以文件的形式保存在本地磁盤厘贼。
HaLoop官網(wǎng)>>>
四、Twister
簡介:Twister圣拄, 迭代式MapReduce框架嘴秸,Twister是由一個(gè)印度人開發(fā)的,其架構(gòu)如下:
在Twister中庇谆,大文件不會自動被切割成一個(gè)一個(gè)block岳掐,因而用戶需提前把文件分成一個(gè)一個(gè)小文件,以供每個(gè)task處理饭耳。在map階段串述,經(jīng)過map()處理完的結(jié)果被放在分布式內(nèi)存中,然后通過一個(gè)broker network(NaradaBroking系統(tǒng))將數(shù)據(jù)push給各個(gè)reduce task(Twister假設(shè)內(nèi)存足夠大寞肖,中間數(shù)據(jù)可以全部放在內(nèi)存中)纲酗;在reduce階段,所有reduce task產(chǎn)生的結(jié)果通過一個(gè)combine操作進(jìn)行歸并新蟆,此時(shí)觅赊,用戶可以進(jìn)行條件判定, 確定迭代是否結(jié)束琼稻。combine后的數(shù)據(jù)直接被送給map task吮螺,開始新一輪的迭代。為了提高容錯(cuò)性帕翻,Twister每隔一段時(shí)間會將map task和reduce task產(chǎn)生的結(jié)果寫到磁盤上鸠补,這樣,一旦某個(gè)task失敗嘀掸,它可以從最近的備份中獲取輸入紫岩,重新計(jì)算。
為了避免每次迭代重新創(chuàng)建task睬塌,Twister維護(hù)了一個(gè)task pool被因,每次需要task時(shí)直接從pool中取。在Twister中衫仑,所有消息和數(shù)據(jù)都是通過broker network傳遞的,該broker network是一個(gè)獨(dú)立的模塊堕花,目前支持NaradaBroking和ActiveMQ文狱。
離線計(jì)算
一、Hadoop MapReduce
簡介:MapReduce是一種編程模型缘挽,用于大規(guī)模數(shù)據(jù)集(大于1TB)的并行運(yùn)算瞄崇。概念”Map(映射)”和”Reduce(歸約)”呻粹,和它們的主要思想,都是從函數(shù)式編程語言里借來的苏研,還有從矢量編程語言里借來的特性等浊。它極大地方便了編程人員在不會分布式并行編程的情況下,將自己的程序運(yùn)行在分布式系統(tǒng)上摹蘑。 當(dāng)前的軟件實(shí)現(xiàn)是指定一個(gè)Map(映射)函數(shù)筹燕,用來把一組鍵值對映射成一組新的鍵值對,指定并發(fā)的Reduce(歸約)函數(shù)衅鹿,用來保證所有映射的鍵值對中的每一個(gè)共享相同的鍵組撒踪。
Hadoop MapReduce官方網(wǎng)站>>>
二、Berkeley Spark
簡介:Spark是UC Berkeley AMP lab所開源的類Hadoop MapReduce的通用的并行大渤,Spark制妄,擁有Hadoop MapReduce所具有的優(yōu)點(diǎn);但不同于MapReduce的是Job中間輸出結(jié)果可以保存在內(nèi)存中泵三,從而不再需要讀寫HDFS耕捞,因此Spark能更好地適用于數(shù)據(jù)挖掘與機(jī)器學(xué)習(xí)等需要迭代的map reduce的算法。
三烫幕、DataTorrent
簡介:DataTorrent基于Hadoop 2.x構(gòu)建俺抽,是一個(gè)實(shí)時(shí)的、有容錯(cuò)能力的數(shù)據(jù)流式處理和分析平臺纬霞,它使用本地Hadoop應(yīng)用程序凌埂,而這些應(yīng)用程序可以與執(zhí)行其它任務(wù),如批處理诗芜,的應(yīng)用程序共存瞳抓。該平臺的架構(gòu)如下圖所示:
相關(guān)文章:DataTorrent 1.0每秒處理超過10億個(gè)實(shí)時(shí)事件
DataTorrent 將數(shù)據(jù)分析速度從“實(shí)時(shí)”提升至“現(xiàn)在時(shí)”
鍵值存儲
一、LevelDB
貢獻(xiàn)者:Google
簡介:Leveldb是一個(gè)google實(shí)現(xiàn)的非常高效的kv數(shù)據(jù)庫伏恐,目前的版本1.2能夠支持billion級別的數(shù)據(jù)量了孩哑。 在這個(gè)數(shù)量級別下還有著非常高的性能,主要?dú)w功于它的良好的設(shè)計(jì)翠桦。特別是LMS算法横蜒。
LevelDB 是單進(jìn)程的服務(wù),性能非常之高销凑,在一臺4核Q6600的CPU機(jī)器上丛晌,每秒鐘寫數(shù)據(jù)超過40w,而隨機(jī)讀的性能每秒鐘超過10w斗幼。
此處隨機(jī)讀是完全命中內(nèi)存的速度澎蛛,如果是不命中 速度大大下降。
LevelDB官方網(wǎng)站>>>
二蜕窿、RocksDB
貢獻(xiàn)者:facebook
簡介:RocksDB雖然在代碼層面上是在LevelDB原有的代碼上進(jìn)行開發(fā)的谋逻,但卻借鑒了Apache HBase的一些好的idea呆馁。在云計(jì)算橫行的年代,開口不離Hadoop毁兆,RocksDB也開始支持HDFS浙滤,允許從HDFS讀取數(shù)據(jù)。RocksDB支持一次獲取多個(gè)K-V气堕,還支持Key范圍查找纺腊。LevelDB只能獲取單個(gè)Key。
RocksDB除了簡單的Put送巡、Delete操作摹菠,還提供了一個(gè)Merge操作,說是為了對多個(gè)Put操作進(jìn)行合并骗爆。
RocksDB提供一些方便的工具次氨,這些工具包含解析sst文件中的K-V記錄、解析MANIFEST文件的內(nèi)容等摘投。RocksDB支持多線程合并煮寡,而LevelDB是單線程合并的。
RocksDB官方網(wǎng)站>>>
三犀呼、HyperDex
貢獻(xiàn)者:Facebook
HyperDex是一個(gè)分布式幸撕、可搜索的鍵值存儲系統(tǒng),特性如下:
分布式KV存儲外臂,系統(tǒng)性能能夠隨節(jié)點(diǎn)數(shù)目線性擴(kuò)展
吞吐和延時(shí)都能秒殺現(xiàn)在風(fēng)頭正勁的MonogDB坐儿,吞吐甚至強(qiáng)于Redis
使用了hyperspace hashing技術(shù),使得對存儲的K-V的任意屬性進(jìn)行查詢成為可能
官網(wǎng):http://hyperdex.org/
四宋光、TokyoCabinet
日本人Mikio Hirabayashi(平林干雄)開發(fā)的一款DBM數(shù)據(jù)庫貌矿。Tokyo Cabinet 是一個(gè)DBM的實(shí)現(xiàn)。這里的數(shù)據(jù)庫由一系列key-value對的記錄構(gòu)成罪佳。key和value都可以是任意長度的字節(jié)序列,既可以是二進(jìn)制也可以是字符串逛漫。這里沒有數(shù)據(jù)類型和數(shù)據(jù)表的概念。
當(dāng) 做為Hash表數(shù)據(jù)庫使用時(shí)赘艳,每個(gè)key必須是不同的,因此無法存儲兩個(gè)key相同的值酌毡。提供了以下訪問方法:提供key,value參數(shù)來存儲,按 key刪除記錄蕾管,按key來讀取記錄枷踏,另外,遍歷key也被支持掰曾,雖然順序是任意的不能被保證旭蠕。這些方法跟Unix標(biāo)準(zhǔn)的DBM,例如GDBM,NDBM 等等是相同的,但是比它們的性能要好得多(因此可以替代它們) 。下一代KV存儲系統(tǒng)下梢,支持strings、integers塞蹭、floats孽江、lists、maps和sets等豐富的數(shù)據(jù)類型番电。
五岗屏、Voldemort
Voldemort是一個(gè)分布式鍵值存儲系統(tǒng),是Amazon’s Dynamo的一個(gè)開源克隆漱办。特性如下:
支持自動復(fù)制數(shù)據(jù)到多個(gè)服務(wù)器上这刷。
支持?jǐn)?shù)據(jù)自動分割所以每個(gè)服務(wù)器只包含總數(shù)據(jù)的一個(gè)子集。
提供服務(wù)器故障透明處理功能娩井。
支持可撥插的序化支持暇屋,以實(shí)現(xiàn)復(fù)雜的鍵-值存儲,它能夠很好的5.集成常用的序化框架如:Protocol Buffers洞辣、Thrift咐刨、Avro和Java Serialization。
數(shù)據(jù)項(xiàng)都被標(biāo)識版本能夠在發(fā)生故障時(shí)盡量保持?jǐn)?shù)據(jù)的完整性而不會影響系統(tǒng)的可用性扬霜。
每個(gè)節(jié)點(diǎn)相互獨(dú)立定鸟,互不影響。
支持可插拔的數(shù)據(jù)放置策略
官網(wǎng):http://project-voldemort.com/
六著瓶、Amazon Dynamo
貢獻(xiàn)者:亞馬遜
簡介:Amazon Dynamo 是一個(gè)經(jīng)典的分布式Key-Value 存儲系統(tǒng)联予,具備去中心化,高可用性材原,高擴(kuò)展性的特點(diǎn)沸久,但是為了達(dá)到這個(gè)目標(biāo)在很多場景中犧牲了一致性。Dynamo在Amazon中得到了成功的應(yīng)用华糖,能夠跨數(shù)據(jù)中心部署于上萬個(gè)結(jié)點(diǎn)上提供服務(wù)麦向,它的設(shè)計(jì)思想也被后續(xù)的許多分布式系統(tǒng)借鑒。如近來火熱的Cassandra客叉,實(shí)際上就是基本照搬了Dynamo的P2P架構(gòu)诵竭,同時(shí)融合了BigTable的數(shù)據(jù)模型及存儲算法。
七兼搏、Tair
貢獻(xiàn)者:淘寶
簡介:tair 是淘寶自己開發(fā)的一個(gè)分布式 key/value 存儲引擎. tair 分為持久化和非持久化兩種使用方式. 非持久化的 tair 可以看成是一個(gè)分布式緩存. 持久化的 tair 將數(shù)據(jù)存放于磁盤中. 為了解決磁盤損壞導(dǎo)致數(shù)據(jù)丟失, tair 可以配置數(shù)據(jù)的備份數(shù)目, tair 自動將一份數(shù)據(jù)的不同備份放到不同的主機(jī)上, 當(dāng)有主機(jī)發(fā)生異常, 無法正常提供服務(wù)的時(shí)候, 其于的備份會繼續(xù)提供服務(wù).tair 的總體結(jié)構(gòu)
八卵慰、Apache Accumulo
Apache Accumulo 是一個(gè)可靠的、可伸縮的佛呻、高性能的排序分布式的 Key-Value 存儲解決方案裳朋,基于單元訪問控制以及可定制的服務(wù)器端處理。Accumulo使用 Google BigTable 設(shè)計(jì)思路吓著,基于 Apache Hadoop鲤嫡、Zookeeper 和 Thrift 構(gòu)建送挑。
官網(wǎng):http://accumulo.apache.org/
九、Redis
Redis是一個(gè)高性能的key-value存儲系統(tǒng)暖眼,和Memcached類似惕耕,它支持存儲的value類型相對更多,包括string(字符串)诫肠、list(鏈表)司澎、set(集合)和zset(有序集合)。與memcached一樣栋豫,為了保證效率挤安,數(shù)據(jù)都是緩存在內(nèi)存中,區(qū)別的是Redis會周期性的把更新的數(shù)據(jù)寫入磁盤或者把修改操作寫入追加的記錄文件丧鸯,并且在此基礎(chǔ)上實(shí)現(xiàn)了主從同步蛤铜。
Redis的出現(xiàn),很大程度補(bǔ)償了memcached這類key/value存儲的不足骡送,在部分場合可以對關(guān)系數(shù)據(jù)庫起到很好的補(bǔ)充作用昂羡。它提供了Python、Ruby摔踱、Erlang虐先、PHP客戶端,使用很方便派敷。
官網(wǎng):http://redis.io/
表格存儲
** 一蛹批、OceanBase**
貢獻(xiàn)者:阿里巴巴
相關(guān)文章:26頁P(yáng)PT解密支撐支付寶交易的分布式數(shù)據(jù)庫系統(tǒng)——OceanBase
簡介:OceanBase是一個(gè)支持海量數(shù)據(jù)的高性能分布式數(shù)據(jù)庫系統(tǒng),實(shí)現(xiàn)了數(shù)千億條記錄篮愉、數(shù)百TB數(shù)據(jù)上的跨行跨表事務(wù)腐芍,由淘寶核心系統(tǒng)研發(fā)部、運(yùn)維试躏、DBA猪勇、廣告、應(yīng)用研發(fā)等部門共同完成颠蕴。在設(shè)計(jì)和實(shí)現(xiàn)OceanBase的時(shí)候暫時(shí)摒棄了不緊急的DBMS的功能泣刹,例如臨時(shí)表,視圖(view)犀被,研發(fā)團(tuán)隊(duì)把有限的資源集中到關(guān)鍵點(diǎn)上椅您,當(dāng)前 OceanBase主要解決數(shù)據(jù)更新一致性、高性能的跨表讀事務(wù)寡键、范圍查詢掀泳、join、數(shù)據(jù)全量及增量dump、批量數(shù)據(jù)導(dǎo)入员舵。
目前OceanBase已經(jīng)應(yīng)用于淘寶收藏夾脑沿,用于存儲淘寶用戶收藏條目和具體的商品、店鋪信息马僻,每天支持4~5千萬的更新操作捅伤。等待上線的應(yīng)用還包括CTU、SNS等巫玻,每天更新超過20億,更新數(shù)據(jù)量超過2.5TB祠汇,并會逐步在淘寶內(nèi)部推廣仍秤。
OceanBase 0.3.1在Github開源,開源版本為Revision:12336可很。
官網(wǎng):http://alibaba.github.io/oceanbase/
二诗力、Amazon SimpleDB
貢獻(xiàn)者:亞馬遜
Amazon SimpleDB是一個(gè)分散式數(shù)據(jù)庫,以Erlang撰寫我抠。同與Amazon EC2和亞馬遜的S3一樣作為一項(xiàng)Web 服務(wù)苇本,屬于亞馬遜網(wǎng)絡(luò)服務(wù)的一部分。
正如EC2和S3菜拓,SimpleDB的按照存儲量瓣窄,在互聯(lián)網(wǎng)上的傳輸量和吞吐量收取費(fèi)用。 在2008年12月1日纳鼎,亞馬遜推出了新的定價(jià)策略俺夕,提供了免費(fèi)1 GB的數(shù)據(jù)和25機(jī)器小時(shí)的自由層(Free Tire)。 將其中的數(shù)據(jù)轉(zhuǎn)移到其他亞馬遜網(wǎng)絡(luò)服務(wù)是免費(fèi)的贱鄙。
它是一個(gè)可大規(guī)模伸縮劝贸、用 Erlang 編寫的高可用數(shù)據(jù)存儲。
官網(wǎng):http://aws.amazon.com/cn/simpledb/
三逗宁、Vertica
貢獻(xiàn)者:惠普
簡介:惠普2011年2月份起始3月21號完成收購Vertica映九。Vertica基于列存儲∠箍牛基于列存儲的設(shè)計(jì)相比傳統(tǒng)面向行存儲的數(shù)據(jù)庫具有巨大的優(yōu)勢件甥。同時(shí)Vertica支持MPP(massively parallel processing)等技術(shù),查詢數(shù)據(jù)時(shí)Vertica只需取得需要的列言缤,而不是被選擇行的所有數(shù)據(jù)嚼蚀,其平均性能可提高50x-1000x倍。(查詢性能高速度快)
Vertica的設(shè)計(jì)者多次表示他們的產(chǎn)品圍繞著高性能和高可用性設(shè)計(jì)管挟。由于對MPP技術(shù)的支持轿曙,可提供對粒度,可伸縮性和可用性的優(yōu)勢。每個(gè)節(jié)點(diǎn)完全獨(dú)立運(yùn)作导帝,完全無共享架構(gòu)守谓,降低對共享資源的系統(tǒng)競爭。
Vertica的數(shù)據(jù)庫使用標(biāo)準(zhǔn)的SQL查詢您单,同時(shí)Vertica的架構(gòu)非常適合云計(jì)算斋荞,包括虛擬化,分布式多節(jié)點(diǎn)運(yùn)行等虐秦,并且可以和Hadoop/MapReduce進(jìn)行集成平酿。
Vertica官網(wǎng):http://www.vertica.com/
四、Cassandra
貢獻(xiàn)者:facebook
相關(guān)文章:開源分布式NoSQL數(shù)據(jù)庫系統(tǒng)——Cassandra Cassandra與HBase的大數(shù)據(jù)對決 誰是勝者悦陋?
簡介:Cassandra是一套開源分布式NoSQL數(shù)據(jù)庫系統(tǒng)蜈彼。它最初由Facebook開發(fā),用于儲存收件箱等簡單格式數(shù)據(jù)俺驶,集GoogleBigTable的數(shù)據(jù)模型與Amazon Dynamo的完全分布式的架構(gòu)于一身Facebook于2008將 Cassandra 開源幸逆,此后,由于Cassandra良好的可擴(kuò)放性暮现,被Digg还绘、Twitter等知名Web 2.0網(wǎng)站所采納,成為了一種流行的分布式結(jié)構(gòu)化數(shù)據(jù)存儲方案栖袋。
Cassandra是一個(gè)混合型的非關(guān)系的數(shù)據(jù)庫拍顷,類似于Google的BigTable。其主要功能比Dynamo (分布式的Key-Value存儲系統(tǒng))更豐富塘幅,但支持度卻不如文檔存儲MongoDB(介于關(guān)系數(shù)據(jù)庫和非關(guān)系數(shù)據(jù)庫之間的開源產(chǎn)品恩袱,是非關(guān)系數(shù)據(jù)庫當(dāng)中功能最豐富煤墙,最像關(guān)系數(shù)據(jù)庫的堕扶。支持的數(shù)據(jù)結(jié)構(gòu)非常松散徊件,是類似json的bjson格式,因此可以存儲比較復(fù)雜的數(shù)據(jù)類型)匆背。Cassandra最初由Facebook開發(fā)呼伸,后轉(zhuǎn)變成了開源項(xiàng)目。它是一個(gè)網(wǎng)絡(luò)社交云計(jì)算方面理想的數(shù)據(jù)庫钝尸。以Amazon專有的完全分布式的Dynamo為基礎(chǔ)括享,結(jié)合了Google BigTable基于列族(Column Family)的數(shù)據(jù)模型。P2P去中心化的存儲珍促。很多方面都可以稱之為Dynamo 2.0铃辖。
Cassandra官網(wǎng):http://cassandra.apache.org/
** 五、HyperTable**
簡介:Hypertable是一個(gè)開源猪叙、高性能娇斩、可伸縮的數(shù)據(jù)庫仁卷,它采用與Google的Bigtable相似的模型。在過去數(shù)年中犬第,Google為在PC集群 上運(yùn)行的可伸縮計(jì)算基礎(chǔ)設(shè)施設(shè)計(jì)建造了三個(gè)關(guān)鍵部分锦积。
第一個(gè)關(guān)鍵的基礎(chǔ)設(shè)施是Google File System(GFS),這是一個(gè)高可用的文件系統(tǒng)歉嗓,提供了一個(gè)全局的命名空間丰介。它通過跨機(jī)器(和跨機(jī)架)的文件數(shù)據(jù)復(fù)制來達(dá)到高可用性,并因此免受傳統(tǒng) 文件存儲系統(tǒng)無法避免的許多失敗的影響鉴分,比如電源哮幢、內(nèi)存和網(wǎng)絡(luò)端口等失敗。第二個(gè)基礎(chǔ)設(shè)施是名為Map-Reduce的計(jì)算框架志珍,它與GFS緊密協(xié)作家浇,幫 助處理收集到的海量數(shù)據(jù)。第三個(gè)基礎(chǔ)設(shè)施是Bigtable碴裙,它是傳統(tǒng)數(shù)據(jù)庫的替代。Bigtable讓你可以通過一些主鍵來組織海量數(shù)據(jù)点额,并實(shí)現(xiàn)高效的 查詢舔株。Hypertable是Bigtable的一個(gè)開源實(shí)現(xiàn),并且根據(jù)我們的想法進(jìn)行了一些改進(jìn)还棱。
HyperTable官網(wǎng):http://hypertable.org/
六载慈、FoundationDB
簡介:支持ACID事務(wù)處理的NoSQL數(shù)據(jù)庫,提供非常好的性能珍手、數(shù)據(jù)一致性和操作彈性办铡。
2015年1月2日,F(xiàn)oundationDB已經(jīng)發(fā)布了其key-value數(shù)據(jù)庫的3.0版本琳要,主要專注于可伸縮性和性能上的改善寡具。FoundationDB的CEO David Rosenthal在一篇博客上宣布了新的版本,其中展示了FoundationDB 3.0在可伸縮性方面的數(shù)據(jù)稚补,它可以在一個(gè)32位的c3.8xlarge EC2實(shí)例上每秒寫入1440萬次童叠;這在性能上是之前版本的36倍。
除了性能和可伸縮性的改善之外课幕,F(xiàn)oundationDB 3.0還包含了對監(jiān)控支持的改善厦坛。這種監(jiān)控機(jī)制不僅僅是簡單的機(jī)器檢查,它添加了對多種潛在的硬件瓶頸的診斷乍惊,并且把那些高層級的信息整合到現(xiàn)有監(jiān)控基礎(chǔ)架構(gòu)中杜秸。
官網(wǎng):https://foundationdb.com/
七:HBase
貢獻(xiàn)者: Fay Chang 所撰寫的“Bigtable
簡介:HBase是一個(gè)分布式的、面向列的開源數(shù)據(jù)庫润绎,該技術(shù)來源于 Fay Chang 所撰寫的Google論文“Bigtable:一個(gè)結(jié)構(gòu)化數(shù)據(jù)的分布式存儲系統(tǒng)”撬碟。就像Bigtable利用了Google文件系統(tǒng)(File System)所提供的分布式數(shù)據(jù)存儲一樣诞挨,HBase在Hadoop之上提供了類似于Bigtable的能力。HBase是Apache的Hadoop項(xiàng)目的子項(xiàng)目小作。HBase不同于一般的關(guān)系數(shù)據(jù)庫亭姥,它是一個(gè)適合于非結(jié)構(gòu)化數(shù)據(jù)存儲的數(shù)據(jù)庫。另一個(gè)不同的是HBase基于列的而不是基于行的模式顾稀。
官網(wǎng):http://hbase.apache.org/
文件存儲
一达罗、CouchDB
簡介:CouchDB是用Erlang開發(fā)的面向文檔的數(shù)據(jù)庫系統(tǒng),最近剛剛發(fā)布了1.0版本(2010年7月14日)静秆。CouchDB不是一個(gè)傳統(tǒng)的關(guān)系數(shù)據(jù)庫粮揉,而是面向文檔的數(shù)據(jù)庫,其數(shù)據(jù)存儲方式有點(diǎn)類似lucene的index文件格式抚笔,CouchDB最大的意義在于它是一個(gè)面向web應(yīng)用的新一代存儲系統(tǒng)扶认,事實(shí)上,CouchDB的口號就是:下一代的Web應(yīng)用存儲系統(tǒng)殊橙。
特點(diǎn):
一辐宾、CouchDB是分布式的數(shù)據(jù)庫,他可以把存儲系統(tǒng)分布到n臺物理的節(jié)點(diǎn)上面膨蛮,并且很好的協(xié)調(diào)和同步節(jié)點(diǎn)之間的數(shù)據(jù)讀寫一致性叠纹。這當(dāng)然也得靠Erlang無與倫比的并發(fā)特性才能做到。對于基于web的大規(guī)模應(yīng)用文檔應(yīng)用敞葛,分布式可以讓它不必像傳統(tǒng)的關(guān)系數(shù)據(jù)庫那樣分庫拆表誉察,在應(yīng)用代碼層進(jìn)行大量的改動。
二惹谐、CouchDB是面向文檔的數(shù)據(jù)庫持偏,存儲半結(jié)構(gòu)化的數(shù)據(jù),比較類似lucene的index結(jié)構(gòu)氨肌,特別適合存儲文檔鸿秆,因此很適合CMS,電話本怎囚,地址本等應(yīng)用谬莹,在這些應(yīng)用場合,文檔數(shù)據(jù)庫要比關(guān)系數(shù)據(jù)庫更加方便桩了,性能更好附帽。
三、CouchDB支持REST API井誉,可以讓用戶使用JavaScript來操作CouchDB數(shù)據(jù)庫蕉扮,也可以用JavaScript編寫查詢語句,我們可以想像一下颗圣,用AJAX技術(shù)結(jié)合CouchDB開發(fā)出來的CMS系統(tǒng)會是多么的簡單和方便喳钟。
其實(shí)CouchDB只是Erlang應(yīng)用的冰山一角屁使,在最近幾年,基于Erlang的應(yīng)用也得到的蓬勃的發(fā)展奔则,特別是在基于web的大規(guī)模蛮寂,分布式應(yīng)用領(lǐng)域,幾乎都是Erlang的優(yōu)勢項(xiàng)目易茬。
官網(wǎng):http://couchdb.apache.org/
二酬蹋、MongoDB
簡介:MongoDB 是一個(gè)基于分布式文件存儲的數(shù)據(jù)庫。由C++語言編寫抽莱。旨在為WEB應(yīng)用提供可擴(kuò)展的高性能數(shù)據(jù)存儲解決方案范抓。
MongoDB是一個(gè)介于關(guān)系數(shù)據(jù)庫和非關(guān)系數(shù)據(jù)庫之間的產(chǎn)品,是非關(guān)系數(shù)據(jù)庫當(dāng)中功能最豐富食铐,最像關(guān)系數(shù)據(jù)庫的匕垫。他支持的數(shù)據(jù)結(jié)構(gòu)非常松散,是類似json的bson格式虐呻,因此可以存儲比較復(fù)雜的數(shù)據(jù)類型象泵。Mongo最大的特點(diǎn)是他支持的查詢語言非常強(qiáng)大,其語法有點(diǎn)類似于面向?qū)ο蟮牟樵冋Z言斟叼,幾乎可以實(shí)現(xiàn)類似關(guān)系數(shù)據(jù)庫單表查詢的絕大部分功能偶惠,而且還支持對數(shù)據(jù)建立索引。
相關(guān)文章:MongoDB的基本特性與內(nèi)部構(gòu)造 大數(shù)據(jù)吃香 創(chuàng)業(yè)公司MongoDB估值達(dá)16億美元
特點(diǎn)
它的特點(diǎn)是高性能犁柜、易部署、易使用堂淡,存儲數(shù)據(jù)非常方便馋缅。主要功能特性有:
*面向集合存儲,易存儲對象類型的數(shù)據(jù)绢淀。
mongodb集群參考
mongodb集群參考
*模式自由萤悴。
*支持動態(tài)查詢。
*支持完全索引皆的,包含內(nèi)部對象覆履。
*支持查詢。
*支持復(fù)制和故障恢復(fù)费薄。
*使用高效的二進(jìn)制數(shù)據(jù)存儲硝全,包括大型對象(如視頻等)。
*自動處理碎片楞抡,以支持云計(jì)算層次的擴(kuò)展性伟众。
*支持RUBY,PYTHON召廷,JAVA凳厢,C++账胧,PHP,C#等多種語言先紫。
*文件存儲格式為BSON(一種JSON的擴(kuò)展)治泥。
*可通過網(wǎng)絡(luò)訪問。
官網(wǎng):https://www.mongodb.org/
三遮精、Tachyon
貢獻(xiàn)者:Haoyuan Li(李浩源)
簡介:Tachyon是一個(gè)分布式內(nèi)存文件系統(tǒng)居夹,可以在集群里以訪問內(nèi)存的速度來訪問存在tachyon里的文件。把Tachyon是架構(gòu)在最底層的分布式文件存儲和上層的各種計(jì)算框架之間的一種中間件仑鸥。主要職責(zé)是將那些不需要落地到DFS里的文件吮播,落地到分布式內(nèi)存文件系統(tǒng)中,來達(dá)到共享內(nèi)存眼俊,從而提高效率意狠。同時(shí)可以減少內(nèi)存冗余,GC時(shí)間等疮胖。
Tachyon架構(gòu)
Tachyon的架構(gòu)是傳統(tǒng)的Master—slave架構(gòu)环戈,這里和Hadoop類似,TachyonMaster里WorkflowManager是 Master進(jìn)程澎灸,因?yàn)槭菫榱朔乐箚吸c(diǎn)問題院塞,通過Zookeeper做了HA,可以部署多臺Standby Master性昭。Slave是由Worker Daemon和Ramdisk構(gòu)成拦止。這里個(gè)人理解只有Worker Daemon是基于JVM的,Ramdisk是一個(gè)off heap memory糜颠。Master和Worker直接的通訊協(xié)議是Thrift汹族。
下圖來自Tachyon的作者Haoyuan Li:
下載地址:https://github.com/amplab/tachyon
四、KFS
簡介:GFS的C++開源版本其兴,Kosmos distributed file system (KFS)是一個(gè)專門為數(shù)據(jù)密集型應(yīng)用(搜索引擎顶瞒,數(shù)據(jù)挖掘等)而設(shè)計(jì)的存儲系統(tǒng),類似于Google的GFS和Hadoop的HDFS分布式文件系統(tǒng)元旬。 KFS使用C++實(shí)現(xiàn)榴徐,支持的客戶端包括C++,Java和Python匀归。KFS系統(tǒng)由三部分組成坑资,分別是metaserver、chunkserver和client library穆端。
官網(wǎng):http://code.google.com/p/kosmosfs/
五盐茎、HDFS
簡介:Hadoop分布式文件系統(tǒng)(HDFS)被設(shè)計(jì)成適合運(yùn)行在通用硬件(commodity hardware)上的分布式文件系統(tǒng)。它和現(xiàn)有的分布式文件系統(tǒng)有很多共同點(diǎn)徙赢。但同時(shí)字柠,它和其他的分布式文件系統(tǒng)的區(qū)別也是很明顯的探越。HDFS是一個(gè)高度容錯(cuò)性的系統(tǒng),適合部署在廉價(jià)的機(jī)器上窑业。HDFS能提供高吞吐量的數(shù)據(jù)訪問钦幔,非常適合大規(guī)模數(shù)據(jù)集上的應(yīng)用。HDFS放寬了一部分POSIX約束常柄,來實(shí)現(xiàn)流式讀取文件系統(tǒng)數(shù)據(jù)的目的鲤氢。HDFS在最開始是作為Apache Nutch搜索引擎項(xiàng)目的基礎(chǔ)架構(gòu)而開發(fā)的。HDFS是Apache Hadoop Core項(xiàng)目的一部分西潘。
官網(wǎng):http://hadoop.apache.org/
資源管理
一卷玉、Twitter Mesos
開發(fā)者:Twitter研發(fā)人員John Oskasson
簡介:Apache Mesos是由加州大學(xué)伯克利分校的AMPLab首先開發(fā)的一款開源群集管理軟件,支持Hadoop喷市、ElasticSearch相种、Spark、Storm 和Kafka等架構(gòu)品姓,由于其開源性質(zhì)越來越受到一些大型云計(jì)算公司的青睞寝并,例如Twitter、Facebook等腹备。
參考文章:Mesos漸入主流,Twitter模式有望“無限復(fù)制”-CSDN.NET
官網(wǎng):http://mesos.apache.org/
二、Hadoop Yarn
Hadoop 新 MapReduce 框架 Yarn镀岛。為從根本上解決舊 MapReduce 框架的性能瓶頸友驮,促進(jìn) Hadoop 框架的更長遠(yuǎn)發(fā)展,從 0.23.0 版本開始拨与,Hadoop 的 MapReduce 框架完全重構(gòu)艾猜,發(fā)生了根本的變化捻悯。新的 Hadoop MapReduce 框架命名為 MapReduceV2 或者叫 Yarn匆赃,其架構(gòu)圖如下圖所示:
Yarn 框架相對于老的 MapReduce 框架什么優(yōu)勢呢?我們可以看到:
1今缚、這個(gè)設(shè)計(jì)大大減小了 JobTracker(也就是現(xiàn)在的 ResourceManager)的資源消耗算柳,并且讓監(jiān)測每一個(gè) Job 子任務(wù) (tasks) 狀態(tài)的程序分布式化了,更安全姓言、更優(yōu)美瞬项。
2蔗蹋、在新的 Yarn 中,ApplicationMaster 是一個(gè)可變更的部分囱淋,用戶可以對不同的編程模型寫自己的 AppMst猪杭,讓更多類型的編程模型能夠跑在 Hadoop 集群中,可以參考 hadoop Yarn 官方配置模板中的 mapred-site.xml 配置妥衣。
3皂吮、對于資源的表示以內(nèi)存為單位 ( 在目前版本的 Yarn 中,沒有考慮 cpu 的占用 )税手,比之前以剩余 slot 數(shù)目更合理蜂筹。
4、老的框架中芦倒,JobTracker 一個(gè)很大的負(fù)擔(dān)就是監(jiān)控 job 下的 tasks 的運(yùn)行狀況艺挪,現(xiàn)在,這個(gè)部分就扔給 ApplicationMaster 做了熙暴,而 ResourceManager 中有一個(gè)模塊叫做 ApplicationsMasters( 注意不是 ApplicationMaster)闺属,它是監(jiān)測 ApplicationMaster 的行狀況,如果出問題掂器,會將其在其他機(jī)器上重啟国瓮。
5、Container 是 Yarn 為了將來作資源隔離而提出的一個(gè)框架孵睬。這一點(diǎn)應(yīng)該借鑒了 Mesos 的工作,目前是一個(gè)框架蹈集,僅僅提供 java 虛擬機(jī)內(nèi)存的隔離 ,hadoop 團(tuán)隊(duì)的設(shè)計(jì)思路應(yīng)該后續(xù)能支持更多的資源調(diào)度和控制 , 既然資源表示成內(nèi)存量拢肆,那就沒有了之前的 map slot/reduce slot 分開造成集群資源閑置的尷尬情況。
官網(wǎng):http://hadoop.apache.org/
第二部分將整合大數(shù)據(jù)日志收集系統(tǒng)悼院、消息系統(tǒng)咒循、集群管理颖医、基礎(chǔ)設(shè)施熔萧、監(jiān)控管理等開源工具。并將于3月12日發(fā)布俺榆,盡請期待罐脊。
一共81個(gè),開源大數(shù)據(jù)處理工具匯總(下)上炎,包括日志收集系統(tǒng)/集群管理/RPC等
End.