實(shí)時(shí)消息Kafka
Kafka是最初由Linkedin公司開發(fā)串前,是一個(gè)分布式、分區(qū)的实蔽、多副本的荡碾、多訂閱者,基于zookeeper協(xié)調(diào)的分布式日志系統(tǒng)(也可以當(dāng)做MQ系統(tǒng))局装,常見可以用于web/nginx日志坛吁、訪問日志劳殖,消息服務(wù)等等,Linkedin于2010年貢獻(xiàn)給了Apache基金會(huì)并成為頂級(jí)開源項(xiàng)目拨脉。
主要應(yīng)用場景是:日志收集系統(tǒng)和消息系統(tǒng)哆姻。
Kafka主要設(shè)計(jì)目標(biāo)如下:
以時(shí)間復(fù)雜度為O(1)的方式提供消息持久化能力,即使對(duì)TB級(jí)以上數(shù)據(jù)也能保證常數(shù)時(shí)間的訪問性能玫膀。
高吞吐率矛缨。即使在非常廉價(jià)的商用機(jī)器上也能做到單機(jī)支持每秒100K條消息的傳輸。
支持Kafka Server間的消息分區(qū)帖旨,及分布式消費(fèi)劳景,同時(shí)保證每個(gè)partition內(nèi)的消息順序傳輸。
同時(shí)支持離線數(shù)據(jù)處理和實(shí)時(shí)數(shù)據(jù)處理碉就。
Scale out:支持在線水平擴(kuò)展
流式計(jì)算Spark Streaming
Apache Flink框架的實(shí)時(shí)計(jì)算模型是基于Dataflow Model實(shí)現(xiàn)的,支持定義DAG圖闷串;支持定義各類窗口(固定窗口瓮钥、滑動(dòng)窗口和Session窗口);支持靈活定義計(jì)算觸發(fā)時(shí)間烹吵;支持豐富的Function定義數(shù)據(jù)更新模式碉熄。和Spark Streaming一樣,F(xiàn)link支持分層API肋拔,支持DataStream API锈津,Process Function,SQL凉蜂。Flink最大特點(diǎn)在于其實(shí)時(shí)計(jì)算的正確性保證:Exactly once琼梆,原生支持事件時(shí)間,支持延時(shí)數(shù)據(jù)處理窿吩。
Spark Streaming的實(shí)現(xiàn)非常簡單茎杂,通過微批次將實(shí)時(shí)數(shù)據(jù)拆成一個(gè)個(gè)批處理任務(wù),通過批處理的方式完成各個(gè)子Batch纫雁。Spark Streaming的API也非常簡單靈活煌往,既可以用DStream的java/scala API,也可以使用SQL定義處理邏輯轧邪。但Spark Streaming受限于微批次處理模型刽脖,業(yè)務(wù)方需要完成一個(gè)真正意義上的實(shí)時(shí)計(jì)算會(huì)非常困難,比如基于數(shù)據(jù)事件時(shí)間忌愚、數(shù)據(jù)晚到后的處理曲管,都得用戶進(jìn)行大量編程實(shí)現(xiàn)。Spark Streaming的優(yōu)勢體現(xiàn)在高性能的對(duì)海量實(shí)時(shí)數(shù)據(jù)的采集落盤菜循。
Hadoop分布式文件系統(tǒng)(hadoopdistributed filesystem翘地,HDFS)
HDFS是一個(gè)高度容錯(cuò)性的系統(tǒng)申尤,適合部署在廉價(jià)的機(jī)器上。HDFS能提供高吞吐量的數(shù)據(jù)訪問衙耕,非常適合大規(guī)模數(shù)據(jù)集上的應(yīng)用昧穿。HDFS可以實(shí)現(xiàn)流的形式訪問(streaming access)文件系統(tǒng)中的數(shù)據(jù)。
它是基于流數(shù)據(jù)模式的訪問和處理超大文件橙喘。
特點(diǎn):
錯(cuò)誤檢測和快速时鸵、自動(dòng)的恢復(fù)是 HDFS的核心架構(gòu)目標(biāo)
HDFS 以支持大數(shù)據(jù)集合為目標(biāo),一個(gè)存儲(chǔ)在上面的典型文件大小一般都在千兆至 T字節(jié)厅瞎,一個(gè)單一 HDFS實(shí)例應(yīng)該能支撐數(shù)以千萬計(jì)的文件饰潜。
主從架構(gòu)。
文件采用write-one-read-many訪問模型(一次寫和簸,多次讀彭雾,不可更新已有內(nèi)容)
跑在 HDFS上的應(yīng)用與一般的應(yīng)用不同,它們主要是以流式讀為主锁保,做批量處理薯酝;比之關(guān)注數(shù)據(jù)訪問的低延遲問題,更關(guān)鍵的在于數(shù)據(jù)訪問的高吞吐量爽柒。
批處理計(jì)算引擎OushuDB
Oushu Database(簡稱OushuDB)是由Apache HAWQ創(chuàng)始團(tuán)隊(duì)打造的新一代云原生數(shù)據(jù)倉庫吴菠,該產(chǎn)品采用了存儲(chǔ)與計(jì)算分離技術(shù)架構(gòu),具有MPP的所有優(yōu)點(diǎn)浩村,還具有彈性做葵,支持混合工作負(fù)載和高擴(kuò)展性等優(yōu)點(diǎn)。 高可擴(kuò)展心墅,遵循ANSI-SQL標(biāo)準(zhǔn)酿矢,具有極速執(zhí)行器,提供PB級(jí)數(shù)據(jù)交互式查詢能力怎燥。并且提供對(duì)主要BI工具的描述性分析支持棠涮。兼容Oracle,GPDB和PostgreSQL刺覆,可以輕松取代傳統(tǒng)數(shù)據(jù)倉庫包括Teradata严肪,Oracle,DB2谦屑,Greenplum和SQL-on-Hadoop引擎驳糯。
Oushu Database和Apache HAWQ的不同
全新執(zhí)行引擎,充分利用硬件的所有特性氢橙,比Apache HAWQ性能高出5-10倍
支持Update和Delete酝枢,以及索引
C++可插拔外部存儲(chǔ)
替換JAVA PXF,性能高數(shù)倍悍手,無需安裝部署PXF額外組件帘睦,極大簡化了用戶安裝部署和運(yùn)維
原生支持CSV/TEXT外部存儲(chǔ)
可以用于不同集群之間共享數(shù)據(jù)袍患,比如數(shù)據(jù)倉庫和集市之間共享及傳輸數(shù)據(jù)
可以用于高速數(shù)據(jù)加載和數(shù)據(jù)導(dǎo)出
可以實(shí)現(xiàn)可插拔文件系統(tǒng):比如S3, Ceph等
可以實(shí)現(xiàn)可插拔文件格式:比如ORC,Parquet等
支持ORC/TEXT/CSV作為內(nèi)部表格式竣付,支持ORC作為外部表格式 (通過C++可插拔外部存儲(chǔ))
csv和text文件格式中對(duì)非ASCII字符串或長度大于1的字符串作為分隔符的支持