官术网_书友最值得收藏!

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)域。

主站蜘蛛池模板: 宝鸡市| 海兴县| 仁布县| 双柏县| 闸北区| 泸溪县| 高唐县| 清河县| 仪征市| 桂林市| 深泽县| 怀集县| 呼图壁县| 安庆市| 龙门县| 息烽县| 甘德县| 汾西县| 镇远县| 彩票| 郎溪县| 纳雍县| 大化| 新宾| 宁强县| 综艺| 观塘区| 云林县| 尉犁县| 九龙城区| 昔阳县| 濉溪县| 兰考县| 安图县| 商洛市| 麻江县| 清水河县| 家居| 东莞市| 双鸭山市| 黔西县|