大數(shù)據(jù)常用技術(shù)棧

提起大數(shù)據(jù)颜启,不得不提由IBM提出的關(guān)于大數(shù)據(jù)的5V特點(diǎn):Volume(大量)塞颁、Velocity(高速)过咬、Variety(多樣)大渤、Value(低價(jià)值密度)、Veracity(真實(shí)性)掸绞,而對(duì)于大數(shù)據(jù)領(lǐng)域的從業(yè)人員的日常工作也與這5V密切相關(guān)泵三。大數(shù)據(jù)技術(shù)在過(guò)去的幾十年中取得非常迅速的發(fā)展,尤以Hadoop和Spark最為突出衔掸,已構(gòu)建起龐大的技術(shù)生態(tài)體系圈烫幕。

首先通過(guò)一張圖來(lái)了解一下目前大數(shù)據(jù)領(lǐng)域常用的一些技術(shù),當(dāng)然大數(shù)據(jù)發(fā)展至今所涉及技術(shù)遠(yuǎn)不止這些敞映。

BigData Stack:

image

下面分不同層介紹各個(gè)技術(shù)较曼,當(dāng)然各個(gè)層并不是字面意義上的嚴(yán)格劃分,如Hive既提供數(shù)據(jù)處理功能也提供數(shù)據(jù)存儲(chǔ)功能振愿,但此處將其劃為數(shù)據(jù)分析層中
1. 數(shù)據(jù)采集和傳輸層

  • Flume
    Flume一個(gè)分布式捷犹、可靠的、高可用的用于數(shù)據(jù)采集冕末、聚合和傳輸?shù)南到y(tǒng)伏恐。常用于日志采集系統(tǒng)中,支持定制各類數(shù)據(jù)發(fā)送方用于收集數(shù)據(jù)栓霜、通過(guò)自定義攔截器對(duì)數(shù)據(jù)進(jìn)行簡(jiǎn)單的預(yù)處理并傳輸?shù)礁鞣N數(shù)據(jù)接收方如HDFS、HBase横蜒、Kafka中胳蛮。之前由Cloudera開(kāi)發(fā),后納入Apache
  • Logstash
    ELK工作棧的一員丛晌,也常用于數(shù)據(jù)采集仅炊,是開(kāi)源的服務(wù)器端數(shù)據(jù)處理管道
  • Sqoop
    Sqoop主要通過(guò)一組命令進(jìn)行數(shù)據(jù)導(dǎo)入導(dǎo)出的工具雷恃,底層引擎依賴于MapReduce着倾,主要用于Hadoop(如HDFS浮庐、Hive剩燥、HBase)和RDBMS(如mysql攀操、oracle)之間的數(shù)據(jù)導(dǎo)入導(dǎo)出
  • Kafka
    分布式消息系統(tǒng)庶灿。生產(chǎn)者(producer)——消費(fèi)者(consumer)模型梗摇。提供了類似于JMS的特性鹊漠,但設(shè)計(jì)上完全不同毁兆,不遵循JMS規(guī)范浙滤。如kafka允許多個(gè)消費(fèi)者主動(dòng)拉取數(shù)據(jù),而JMS中只有點(diǎn)對(duì)點(diǎn)模式消費(fèi)者才會(huì)主動(dòng)拉取數(shù)據(jù)气堕。主要應(yīng)用在數(shù)據(jù)緩沖纺腊、異步通信畔咧、匯集數(shù)據(jù)、系統(tǒng)接偶等方面
  • Pulsar
    pub-sub模式的分布式消息平臺(tái)揖膜,擁有靈活的消息模型和直觀的客戶端API誓沸。類似于Kafka,但Pulsar支持多租戶壹粟,有著資產(chǎn)和命名空間的概念拜隧,資產(chǎn)代表系統(tǒng)里的租戶。假設(shè)有一個(gè)Pulsar集群用于支持多個(gè)應(yīng)用程序煮寡,集群里的每個(gè)資產(chǎn)可以代表一個(gè)組織的團(tuán)隊(duì)虹蓄、一個(gè)核心的功能或一個(gè)產(chǎn)品線。一個(gè)資產(chǎn)可以包含多個(gè)命名空間幸撕,一個(gè)命名空間可以包含任意個(gè)主題

2. 數(shù)據(jù)存儲(chǔ)層

  • HBase
    基于Google Bigtable的開(kāi)源實(shí)現(xiàn)薇组,是一個(gè)具有高可靠性、高性能坐儿、面向列律胀、可伸縮性、典型的key/value分布式存儲(chǔ)的nosql數(shù)據(jù)庫(kù)系統(tǒng)貌矿,主要用于海量結(jié)構(gòu)化和半結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)炭菌。它介于nosql和RDBMS之間,僅能通過(guò)行鍵(row key)和行鍵的range來(lái)檢索數(shù)據(jù)逛漫,行數(shù)據(jù)存儲(chǔ)是原子性的黑低,僅支持單行事務(wù)(可通過(guò)hive支持來(lái)實(shí)現(xiàn)多表join等復(fù)雜操作)。HBase查詢數(shù)據(jù)功能很簡(jiǎn)單酌毡,不支持join等復(fù)雜操作克握,不支持跨行和跨表事務(wù)
  • Kudu
    介于HDFS和HBase之間的基于列式存儲(chǔ)的分布式數(shù)據(jù)庫(kù)。兼具了HBase的實(shí)時(shí)性枷踏、HDFS的高吞吐菩暗,以及傳統(tǒng)數(shù)據(jù)庫(kù)的sql支持
  • HDFS
    分布式文件存儲(chǔ)系統(tǒng),具有高容錯(cuò)(high fault-tolerant)旭蠕、高吞吐(high throughput)停团、高可用(high available)的特性。HDFS非常適合大規(guī)模數(shù)據(jù)集上的應(yīng)用掏熬,提供高吞吐量的數(shù)據(jù)訪問(wèn)佑稠,可部署在廉價(jià)的機(jī)器上。它放寬了POSIX的要求孽江,這樣可以實(shí)現(xiàn)流的形式訪問(wèn)(文件系統(tǒng)中的數(shù)據(jù)讶坯。主要為各類分布式計(jì)算框架如Spark、MapReduce等提供海量數(shù)據(jù)存儲(chǔ)服務(wù)岗屏,同時(shí)HDFS和HBase底層數(shù)據(jù)存儲(chǔ)也依賴于HDFS

3. 數(shù)據(jù)分析層

  • Spark
    Spark是一個(gè)快速辆琅、通用漱办、可擴(kuò)展、可容錯(cuò)的婉烟、內(nèi)存迭代式計(jì)算的大數(shù)據(jù)分析引擎娩井。目前生態(tài)體系主要包括用于批數(shù)據(jù)處理的SparkRDD、SparkSQL似袁,用于流數(shù)據(jù)處理的SparkStreaming洞辣、Structured-Streaming,用于機(jī)器學(xué)習(xí)的Spark MLLib昙衅,用于圖計(jì)算的Graphx以及用于統(tǒng)計(jì)分析的SparkR扬霜,支持Java、Scala而涉、Python著瓶、R多種數(shù)據(jù)語(yǔ)言
  • Flink
    分布式的大數(shù)據(jù)處理引擎,可以對(duì)有限數(shù)據(jù)流和無(wú)線數(shù)據(jù)流進(jìn)行有狀態(tài)的計(jì)算啼县。Flink在設(shè)計(jì)之初就是以流為基礎(chǔ)發(fā)展的材原,然后再進(jìn)入批處理領(lǐng)域,相對(duì)于spark而言季眷,它是一個(gè)真正意義上的實(shí)時(shí)計(jì)算引擎
  • Storm
    由Twitter開(kāi)源后歸于Apache管理的分布式實(shí)時(shí)計(jì)算系統(tǒng)余蟹。Storm是一個(gè)沒(méi)有批處理能力的數(shù)據(jù)流處理計(jì)算引擎,storm提供了偏底層的API子刮,用戶需要自己實(shí)現(xiàn)很多復(fù)雜的邏輯
  • MapReduce
    分布式運(yùn)算程序的編程框架威酒,適用于離線數(shù)據(jù)處理場(chǎng)景,內(nèi)部處理流程主要?jiǎng)澐謒ap和reduce兩個(gè)階段
  • Hive
    Hive是基于Hadoop的一個(gè)數(shù)據(jù)倉(cāng)庫(kù)工具挺峡,可以將結(jié)構(gòu)化的數(shù)據(jù)文件映射為一張數(shù)據(jù)庫(kù)表兼搏,并提供HQL語(yǔ)句(類SQL語(yǔ)言)查詢功能,存儲(chǔ)依賴于HDFS沙郭。支持多種計(jì)算引擎,如Spark裳朋、MapReduce(默認(rèn))病线、Tez;支持多種存儲(chǔ)格式鲤嫡,如TextFile送挑、SequenceFile、RCFile暖眼、ORC惕耕、Parquet(常用);支持多種壓縮格式诫肠,如gzip司澎、lzo欺缘、snappy(常用)、bzip2
  • Tez
    支持DAG作業(yè)的開(kāi)源計(jì)算框架挤安。相對(duì)于MapReduce性能更好谚殊,主要原因在于其將作業(yè)描述為DAG(有向無(wú)環(huán)圖),這一點(diǎn)與Spark類似
  • Pig
    基于Hadoop的大規(guī)模數(shù)據(jù)分析平臺(tái)蛤铜,它包含了一種名為Pig Latin的腳本語(yǔ)言來(lái)描述數(shù)據(jù)流嫩絮,并行地執(zhí)行數(shù)據(jù)流處理的引擎,為復(fù)雜的海量數(shù)據(jù)并行計(jì)算提供了一個(gè)簡(jiǎn)單的操作和編程接口围肥。Pig Latin本身提供了許多傳統(tǒng)的數(shù)據(jù)操作剿干,同時(shí)允許用戶自己開(kāi)發(fā)一些自定義函數(shù)用來(lái)讀取、處理和寫數(shù)據(jù)穆刻,該語(yǔ)言的編譯器會(huì)把類SQL的數(shù)據(jù)分析請(qǐng)求轉(zhuǎn)換為一系列經(jīng)過(guò)優(yōu)化處理的MapReduce運(yùn)算
  • Mahout
    提供一些可擴(kuò)展的機(jī)器學(xué)習(xí)領(lǐng)域經(jīng)典算法的實(shí)現(xiàn)置尔,Mahout包含許多實(shí)現(xiàn),包括聚類蛹批、分類撰洗、推薦過(guò)濾、頻繁子項(xiàng)挖掘腐芍。通過(guò)使用Apache Hadoop 庫(kù)差导,可以將Mahout擴(kuò)展到云中
  • Phoenix
    構(gòu)建在HBase之上的一個(gè)SQL層,能讓我們通過(guò)標(biāo)準(zhǔn)的JDBC API操作HBase中的數(shù)據(jù)猪勇。Phoenix完全使用Java編寫设褐,作為HBase內(nèi)嵌的JDBC驅(qū)動(dòng)。Phoenix查詢引擎會(huì)將SQL查詢轉(zhuǎn)換為一個(gè)或多個(gè)HBase scan泣刹,并編排執(zhí)行以生成標(biāo)準(zhǔn)JDBC結(jié)果集

4. OLAP引擎

  • Druid
    開(kāi)源的助析、基于列存儲(chǔ)的、分布式的椅您,適用于實(shí)時(shí)數(shù)據(jù)分析的存儲(chǔ)系統(tǒng)外冀,能夠快速聚合、靈活過(guò)濾掀泳、毫秒級(jí)查詢和低延遲數(shù)據(jù)導(dǎo)入雪隧。通過(guò)使用Bitmap indexing加速列存儲(chǔ)的查詢速度,并使用CONCISE算法來(lái)對(duì)bitmap indexing進(jìn)行壓縮员舵,使得生成的segments比原始文本文件小很多脑沿,并且它的各個(gè)組成部分之間耦合性低,如果不需要實(shí)時(shí)數(shù)據(jù)完全可以忽略實(shí)時(shí)節(jié)點(diǎn)
  • Kylin
    最初由eBayInc.開(kāi)發(fā)并貢獻(xiàn)至開(kāi)源社區(qū)的分布式分析引擎马僻。提供Hadoop/Spark之上的SQL查詢接口及多維分析(OLAP)能力以支持超大規(guī)模數(shù)據(jù)庄拇,它能在亞秒內(nèi)查詢巨大的Hive表。需要使用者對(duì)數(shù)倉(cāng)模型有深度了解韭邓,并需構(gòu)建cube措近。能夠與多種可視化工具溶弟,如Tableau,PowerBI等熄诡,令用戶可以使用BI工具對(duì)Hadoop數(shù)據(jù)進(jìn)行分析
  • Impala提供對(duì)HDFS可很、HBase等數(shù)據(jù)的高性能、低延遲的交互式SQL查詢功能的大數(shù)據(jù)查詢分析引擎凰浮,由Cloudera開(kāi)源我抠。它基于Hive,使用Hive的元數(shù)據(jù)在內(nèi)存中計(jì)算袜茧,具有實(shí)時(shí)菜拓、批處理、高并發(fā)等優(yōu)點(diǎn)
  • Presto
    開(kāi)源的分布式大數(shù)據(jù)SQL查詢引擎笛厦,適用于交互式分析查詢纳鼎。可以將多個(gè)數(shù)據(jù)源的數(shù)據(jù)進(jìn)行合并裳凸,并且可以直接從HDFS讀取數(shù)據(jù)贱鄙,在使用前不需要大量的ETL操作

5. 資源管理層

  • Yarn
    Yarn是一個(gè)資源調(diào)度平臺(tái),負(fù)責(zé)為運(yùn)算程序分配資源和調(diào)度姨谷,不參與用戶程序內(nèi)部工作逗宁。核心組件包括:ResourceManager(全局資源管理器,負(fù)責(zé)整個(gè)系統(tǒng)的資源管理和分配)梦湘、NodeManager(每個(gè)節(jié)點(diǎn)上的資源和任務(wù)管理器)
  • Kubernetes
    又稱K8s瞎颗,為容器化的應(yīng)用提供資源調(diào)度、部署運(yùn)行捌议、均衡容災(zāi)哼拔、服務(wù)注冊(cè)、擴(kuò)容縮容等功能的自動(dòng)化容器操作的開(kāi)源平臺(tái)瓣颅。具體體現(xiàn)在:自動(dòng)化容器的部署和復(fù)制倦逐、隨時(shí)擴(kuò)展或收縮容器規(guī)模、將容器組織成組宫补,并且提供容器間的負(fù)載均衡等僻孝。Kubernetes支持docker和Rocket,可以將Docker看成Kubernetes內(nèi)部使用的低級(jí)別組件
  • Mesos
    類似于Yarn守谓,也是一個(gè)分布式資源管理平臺(tái),為MPI您单、Spark作業(yè)在統(tǒng)一資源管理環(huán)境下運(yùn)行斋荞。它對(duì)Hadoop2.0支持很好,但國(guó)內(nèi)用的不多

6. 工作流調(diào)度器

  • Oozie
    基于工作流引擎的任務(wù)調(diào)度框架虐秦,能夠提供能夠提供對(duì)MapReduce和Pig 任務(wù)的調(diào)度與協(xié)調(diào)
  • Azkaban
    由LinkedIn開(kāi)源平酿,相對(duì)Oozie更輕量級(jí)凤优。用于在一個(gè)工作流內(nèi)以一個(gè)特定順序運(yùn)行一組任務(wù),通過(guò)一種kv文件格式來(lái)建立任務(wù)之間的依賴關(guān)系并為用戶提供了易于使用的web界面來(lái)維護(hù)和跟蹤允許任務(wù)的工作流

7. 其他

  • Ambari
    基于web的安裝部署工具蜈彼,支持對(duì)大多數(shù)的Hadoop組件筑辨,如HDFS、MapReduce幸逆、Hive棍辕、Pig、HBase等的管理和監(jiān)控
  • Zookeeper
    分布式協(xié)調(diào)服務(wù)即為用戶的分布式應(yīng)用程序提供協(xié)調(diào)服務(wù)还绘,如主從協(xié)調(diào)楚昭、服務(wù)器節(jié)點(diǎn)動(dòng)態(tài)上下線、統(tǒng)一配置管理拍顷、分布式共享鎖等抚太,它本身也是一個(gè)分布式程序(部署奇數(shù)臺(tái),只要由半數(shù)以上zookeeper節(jié)點(diǎn)存活昔案,zookeeper集群就能正常提供服務(wù))尿贫,它是Google Chubby一個(gè)開(kāi)源實(shí)現(xiàn)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市踏揣,隨后出現(xiàn)的幾起案子庆亡,更是在濱河造成了極大的恐慌,老刑警劉巖呼伸,帶你破解...
    沈念sama閱讀 219,188評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件身冀,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡括享,警方通過(guò)查閱死者的電腦和手機(jī)搂根,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)铃辖,“玉大人剩愧,你說(shuō)我怎么就攤上這事〗空叮” “怎么了仁卷?”我有些...
    開(kāi)封第一講書人閱讀 165,562評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)犬第。 經(jīng)常有香客問(wèn)我锦积,道長(zhǎng),這世上最難降的妖魔是什么歉嗓? 我笑而不...
    開(kāi)封第一講書人閱讀 58,893評(píng)論 1 295
  • 正文 為了忘掉前任丰介,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘哮幢。我一直安慰自己带膀,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,917評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布橙垢。 她就那樣靜靜地躺著垛叨,像睡著了一般。 火紅的嫁衣襯著肌膚如雪柜某。 梳的紋絲不亂的頭發(fā)上嗽元,一...
    開(kāi)封第一講書人閱讀 51,708評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音莺琳,去河邊找鬼还棱。 笑死,一個(gè)胖子當(dāng)著我的面吹牛惭等,可吹牛的內(nèi)容都是我干的珍手。 我是一名探鬼主播,決...
    沈念sama閱讀 40,430評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼辞做,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼琳要!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起秤茅,我...
    開(kāi)封第一講書人閱讀 39,342評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤稚补,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后框喳,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體课幕,經(jīng)...
    沈念sama閱讀 45,801評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,976評(píng)論 3 337
  • 正文 我和宋清朗相戀三年五垮,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了乍惊。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,115評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡放仗,死狀恐怖润绎,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情诞挨,我是刑警寧澤莉撇,帶...
    沈念sama閱讀 35,804評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站惶傻,受9級(jí)特大地震影響棍郎,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜银室,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,458評(píng)論 3 331
  • 文/蒙蒙 一涂佃、第九天 我趴在偏房一處隱蔽的房頂上張望静秆。 院中可真熱鬧,春花似錦巡李、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 32,008評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至辐宾,卻和暖如春狱从,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背叠纹。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,135評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工季研, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人誉察。 一個(gè)月前我還...
    沈念sama閱讀 48,365評(píng)論 3 373
  • 正文 我出身青樓与涡,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親持偏。 傳聞我的和親對(duì)象是個(gè)殘疾皇子驼卖,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,055評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容