- 大數(shù)據(jù):從基礎(chǔ)理論到最佳實(shí)踐
- 祁偉
- 1406字
- 2021-01-07 18:47:55
1.5 主流大數(shù)據(jù)技術(shù)
目前,主流的開源大數(shù)據(jù)技術(shù)的基礎(chǔ)原理皆基于上述基本理論。主流的大數(shù)據(jù)技術(shù)可以分為兩大類。
一類面向非實(shí)時(shí)批處理業(yè)務(wù)場(chǎng)景,著重用于處理傳統(tǒng)數(shù)據(jù)處理技術(shù)在有限的時(shí)空環(huán)境里無法勝任的TB級(jí)、PB級(jí)海量數(shù)據(jù)存儲(chǔ)、加工、分析、應(yīng)用等。一些典型的業(yè)務(wù)場(chǎng)景如:用戶行為分析、訂單防欺詐分析、用戶流失分析、數(shù)據(jù)倉庫等,這類業(yè)務(wù)場(chǎng)景的特點(diǎn),是非實(shí)時(shí)響應(yīng),通常,一些單位在晚上交易結(jié)束時(shí),抽取各類數(shù)據(jù)進(jìn)入大數(shù)據(jù)分析平臺(tái),在數(shù)小時(shí)內(nèi)獲得計(jì)算結(jié)果,并用于第二天的業(yè)務(wù)。比較主流的支撐技術(shù)為HDFS、MapReduce、Hive等。
另一類面向?qū)崟r(shí)處理業(yè)務(wù)場(chǎng)景,如微博應(yīng)用、實(shí)時(shí)社交、實(shí)時(shí)訂單處理等,這類業(yè)務(wù)場(chǎng)景,特點(diǎn)是強(qiáng)實(shí)時(shí)響應(yīng),用戶發(fā)出一條業(yè)務(wù)請(qǐng)求,在數(shù)秒鐘之內(nèi)要給予響應(yīng),并且確保數(shù)據(jù)完整性。比較主流的支撐技術(shù)為HBase、Kafka、Storm等。
這里先簡(jiǎn)要介紹這些技術(shù)的特點(diǎn),針對(duì)這些技術(shù)的詳細(xì)使用,在本書后面會(huì)安排。
(1)HDFS。
HDFS是Hadoop的核心子項(xiàng)目,是整個(gè)Hadoop平臺(tái)數(shù)據(jù)存儲(chǔ)與訪問的基礎(chǔ),在此之上,承載其他如MapReduce、HBase等子項(xiàng)目的運(yùn)轉(zhuǎn)。它是易于使用和管理的分布式文件系統(tǒng)。
HDFS是一個(gè)高度容錯(cuò)性的系統(tǒng),適合部署在廉價(jià)的機(jī)器上。HDFS能提供高吞吐量的數(shù)據(jù)訪問,非常適合大規(guī)模數(shù)據(jù)集上的應(yīng)用。HDFS放寬了一部分POSIX約束,來實(shí)現(xiàn)流式讀取文件系統(tǒng)數(shù)據(jù)的目的。
(2)MapReduce。
MapReduce是一個(gè)軟件架構(gòu),在數(shù)以千計(jì)的普通硬件構(gòu)成的集群中以平行計(jì)算的方式處理海量數(shù)據(jù),該計(jì)算框架具有很高的穩(wěn)定性和容錯(cuò)能力。MapReduce對(duì)負(fù)責(zé)邏輯進(jìn)行高度歸約,抽象為Mapper和Reducer類,復(fù)雜邏輯通過理解,轉(zhuǎn)化為符合MapReduce函數(shù)處理的模式。
MapReduce job會(huì)劃分輸入數(shù)據(jù)集為獨(dú)立的計(jì)算塊,這些分塊被map任務(wù)以完全并行、獨(dú)立的模式處理。MapReduce框架對(duì)maps的輸出進(jìn)行排序,排序后,數(shù)據(jù)作為reduce任務(wù)的輸入數(shù)據(jù)。job的input和output數(shù)據(jù)都存儲(chǔ)在HDFS文件系統(tǒng)中。計(jì)算框架管理作業(yè)調(diào)度、監(jiān)控作業(yè)、重新執(zhí)行失敗任務(wù)。
(3)YARN。
Apache Hadoop YARN(Yet Another Resource Negotiator,另一種資源協(xié)調(diào)者)是從Hadoop 0.23進(jìn)化來的一種新的資源管理和應(yīng)用調(diào)度框架?;赮ARN,可以運(yùn)行多種類型的應(yīng)用程序,例如MapReduce、Spark、Storm等。YARN不再具體管理應(yīng)用,資源管理和應(yīng)用管理是兩個(gè)低耦合的模塊。
YARN從某種意義上來說,是一個(gè)云操作系統(tǒng)(Cloud OS)。基于該操作系統(tǒng)之上,程序員可以開發(fā)多種應(yīng)用程序,例如批處理MapReduce程序、Spark程序以及流式作業(yè)Storm程序等。這些應(yīng)用,可以同時(shí)利用Hadoop集群的數(shù)據(jù)資源和計(jì)算資源。
(4)HBase。
HBase是Hadoop平臺(tái)中重要的非關(guān)系型數(shù)據(jù)庫,它通過線性可擴(kuò)展部署,可以支撐PB級(jí)數(shù)據(jù)存儲(chǔ)與處理能力。
作為非關(guān)系型數(shù)據(jù)庫,HBase適合于非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ),它的存儲(chǔ)模式是基于列的。
(5)Hive。
Hive是Apache基金會(huì)下面的開源框架,是基于Hadoop的數(shù)據(jù)倉庫工具,它可以把結(jié)構(gòu)化的數(shù)據(jù)文件映射為一張數(shù)據(jù)倉庫表,并提供簡(jiǎn)單的SQL(Structured Query Language)查詢功能,后臺(tái)將SQL語句轉(zhuǎn)換為MapReduce任務(wù)來運(yùn)行。
使用Hive,可以滿足一些不懂MapReduce但懂SQL的數(shù)據(jù)庫管理員的需求,讓他們能夠平滑地使用大數(shù)據(jù)分析平臺(tái)。
(6)Kafka。
Apache Kafka是分布式“發(fā)布-訂閱”消息系統(tǒng),最初,它由LinkedIn公司開發(fā),而后成為Apache項(xiàng)目。Kafka是一種快速、可擴(kuò)展的、設(shè)計(jì)時(shí)內(nèi)在地就是分布式的、分區(qū)的和可復(fù)制的提交日志服務(wù)。
Kafka是一個(gè)分布式系統(tǒng),易于向外擴(kuò)展,可為發(fā)布和訂閱提供高吞吐量,并且支持多訂閱者,當(dāng)失敗時(shí),能自動(dòng)平衡消費(fèi)者;Kafka可將消息持久化存儲(chǔ),既可面向非實(shí)時(shí)業(yè)務(wù),也可以面向?qū)崟r(shí)業(yè)務(wù)。
(7)Storm。
Storm是一個(gè)免費(fèi)開源、分布式、高容錯(cuò)的實(shí)時(shí)計(jì)算系統(tǒng)。它能夠處理持續(xù)不斷的流計(jì)算任務(wù),目前,比較多地被應(yīng)用到實(shí)時(shí)分析、在線機(jī)器學(xué)習(xí)、ETL等領(lǐng)域。
- 我的J2EE成功之路
- 協(xié)作機(jī)器人技術(shù)及應(yīng)用
- 來吧!帶你玩轉(zhuǎn)Excel VBA
- 數(shù)控銑削(加工中心)編程與加工
- 數(shù)據(jù)挖掘?qū)嵱冒咐治?/a>
- 數(shù)據(jù)運(yùn)營(yíng)之路:掘金數(shù)據(jù)化時(shí)代
- 計(jì)算機(jī)網(wǎng)絡(luò)應(yīng)用基礎(chǔ)
- 分布式多媒體計(jì)算機(jī)系統(tǒng)
- C語言寶典
- 工業(yè)機(jī)器人應(yīng)用案例集錦
- 軟件工程及實(shí)踐
- 生物3D打印:從醫(yī)療輔具制造到細(xì)胞打印
- Creating ELearning Games with Unity
- 分布式Java應(yīng)用
- Appcelerator Titanium Smartphone App Development Cookbook(Second Edition)