大数据简介,技术体系分类整理
一、大數(shù)據(jù)簡(jiǎn)介
1、基礎(chǔ)概念
大數(shù)據(jù)是指無(wú)法在一定時(shí)間范圍內(nèi)用常規(guī)軟件工具進(jìn)行捕捉、管理和處理的數(shù)據(jù)集合,是需要新處理模式才能具有更強(qiáng)的決策力、洞察發(fā)現(xiàn)力和流程優(yōu)化能力的海量、高增長(zhǎng)率和多樣化的信息資產(chǎn)。大數(shù)據(jù)技術(shù)則主要用來(lái)解決海量數(shù)據(jù)的存儲(chǔ)和分析。
2、特點(diǎn)分析
大數(shù)據(jù)的5V特點(diǎn)(IBM提出):Volume(大量)、Velocity(高速)、Variety(多樣)、Value(低價(jià)值密度)、Veracity(真實(shí)性)。
3、發(fā)展過(guò)程
Google在2004年前后發(fā)表的三篇論文,分別是文件系統(tǒng)GFS、計(jì)算框架MapReduce、NoSQL數(shù)據(jù)庫(kù)系統(tǒng)BigTable。海量數(shù)據(jù)文件,分析計(jì)算,并存儲(chǔ),確立了大數(shù)據(jù)的基本原理和思路。
天才程序員DougCutting,也是Lucene、Nutch項(xiàng)目發(fā)起人。根據(jù)Google論文原理初步實(shí)現(xiàn)類似GFS和MapReduce的功能,后來(lái)發(fā)展成為大名鼎鼎的Hadoop。
再后來(lái),Hadoop經(jīng)過(guò)高速的發(fā)展,已經(jīng)形成一個(gè)生態(tài)體系,基于Hadoop之上,有實(shí)時(shí)計(jì)算,離線計(jì)算,NoSQL存儲(chǔ),數(shù)據(jù)分析,機(jī)器學(xué)習(xí)等一系列內(nèi)容。
從這一系列事情發(fā)展看技術(shù)規(guī)律:Google業(yè)務(wù)實(shí)踐中創(chuàng)造性的提出論文作為基礎(chǔ),業(yè)務(wù)的成長(zhǎng)和需求,迫使技術(shù)不斷更新?lián)Q代。所以業(yè)務(wù)是技術(shù)不斷發(fā)展的關(guān)鍵。
二、Hadoop框架
1、Hadoop簡(jiǎn)介
注意這里基于Hadoop2.X版本描述。后續(xù)如果沒(méi)有特別說(shuō)明,都是2.7版本。
Hadoop是一個(gè)由Apache基金會(huì)所開(kāi)發(fā)的分布式系統(tǒng)基礎(chǔ)架構(gòu);
提供海量的數(shù)據(jù)存儲(chǔ)能力,和分析計(jì)算能力;
作為Apache的頂級(jí)項(xiàng)目,包含眾多子項(xiàng)目是一個(gè)生態(tài)圈;
2、框架特點(diǎn)
可靠性:Hadoop按位存儲(chǔ)和存儲(chǔ)多個(gè)數(shù)據(jù)副本,提供可靠服務(wù);
擴(kuò)展性:Hadoop利用計(jì)算機(jī)集群分配數(shù)據(jù)并完成計(jì)算任務(wù),可以方便地?cái)U(kuò)展到數(shù)以千計(jì)的節(jié)點(diǎn)中;
高效性:基于MapReduce思想,為海量的數(shù)據(jù)提供高效的并行計(jì)算;
容錯(cuò)性:自動(dòng)保存數(shù)據(jù)的多個(gè)副本,并且能夠自動(dòng)將失敗的任務(wù)重新分配;
3、組成結(jié)構(gòu)
HDFS存儲(chǔ)
- NameNode
存儲(chǔ)文件相關(guān)的元數(shù)據(jù),例如:文件名,文件目錄,創(chuàng)建時(shí)間,權(quán)限副本數(shù)等。
- DataNode
文件系統(tǒng)存儲(chǔ)文件塊數(shù)據(jù),以及和數(shù)據(jù)塊ID的映射關(guān)系。
Yarn調(diào)度
負(fù)責(zé)資源管理和作業(yè)調(diào)度,將系統(tǒng)資源分配給在Hadoop集群中運(yùn)行的各種應(yīng)用程序,并調(diào)度要在不同集群節(jié)點(diǎn)上執(zhí)行的任務(wù)。
MapReduce計(jì)算
MapReduce將計(jì)算過(guò)程分為兩個(gè)階段:Map階段并行處理輸入數(shù)據(jù),Reduce階段對(duì)Map結(jié)果進(jìn)行匯總。
三、大數(shù)據(jù)技術(shù)棧
1、Kafka中間件
開(kāi)源組織: Apache軟件
應(yīng)用場(chǎng)景:
Kafka是一種高吞吐量的分布式發(fā)布訂閱消息系統(tǒng),通過(guò)磁盤(pán)數(shù)據(jù)結(jié)構(gòu)提供消息的持久化,這種結(jié)構(gòu)對(duì)于即使數(shù)以TB的消息存儲(chǔ)也能夠保持長(zhǎng)時(shí)間的穩(wěn)定性能。高吞吐量:即使是非常普通的硬件Kafka也可以支持每秒數(shù)百萬(wàn)的消息。支持通過(guò)Kafka服務(wù)器和消費(fèi)機(jī)集群來(lái)分區(qū)消息。支持Hadoop并行數(shù)據(jù)加載。
2、Flume日志系統(tǒng)
開(kāi)源組織: Cloudera公司
應(yīng)用場(chǎng)景:
Flume是Cloudera提供的一個(gè)高可用的,高可靠的,分布式的海量日志采集、聚合和傳輸?shù)南到y(tǒng),Flume支持在日志系統(tǒng)中定制各類數(shù)據(jù)發(fā)送方,用于收集數(shù)據(jù);同時(shí),Flume提供對(duì)數(shù)據(jù)進(jìn)行簡(jiǎn)單處理,并寫(xiě)到各種數(shù)據(jù)接受方(可定制)的能力。
3、Sqoop同步工具
開(kāi)源組織: Apache軟件
應(yīng)用場(chǎng)景:
Sqoop是一款開(kāi)源的工具,主要用于在Hadoop、Hive與傳統(tǒng)的數(shù)據(jù)庫(kù)例如:MySql間進(jìn)行數(shù)據(jù)的傳遞,可以將一個(gè)關(guān)系型數(shù)據(jù)庫(kù)(例如:MySQL,Oracle 等)中的數(shù)據(jù)導(dǎo)進(jìn)到Hadoop的HDFS中,也可以將HDFS的數(shù)據(jù)導(dǎo)進(jìn)到關(guān)系型數(shù)據(jù)庫(kù)中。
4、HBase數(shù)據(jù)庫(kù)
開(kāi)源組織: Apache軟件
應(yīng)用場(chǎng)景:
HBase是一個(gè)分布式的、面向列的開(kāi)源數(shù)據(jù)庫(kù),HBase在Hadoop之上提供了類似于Bigtable的能力。HBase是Apache的Hadoop項(xiàng)目的子項(xiàng)目。HBase不同于一般的關(guān)系數(shù)據(jù)庫(kù),它是一個(gè)適合于非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)的數(shù)據(jù)庫(kù),并且基于列的而不是基于行的存儲(chǔ)模式。
5、Storm實(shí)時(shí)計(jì)算
開(kāi)源組織: Apache軟件
應(yīng)用場(chǎng)景:
Storm用于實(shí)時(shí)計(jì)算,對(duì)數(shù)據(jù)流做連續(xù)查詢,在計(jì)算時(shí)就將結(jié)果以流的形式輸出給用戶。Storm相對(duì)簡(jiǎn)單,可以與任何編程語(yǔ)言一起使用。
6、Spark計(jì)算引擎
開(kāi)源組織: Apache軟件
應(yīng)用場(chǎng)景:
Spark是專為大規(guī)模數(shù)據(jù)處理而設(shè)計(jì)的快速通用的計(jì)算引擎,擁有Hadoop的MapReduce所具有的優(yōu)點(diǎn);但不同于MapReduce的是——Job中間輸出結(jié)果可以保存在內(nèi)存中,從而不再需要讀寫(xiě)HDFS,因此Spark能更好地適用于數(shù)據(jù)挖掘與機(jī)器學(xué)習(xí)等需要迭代的MapReduce的算法。Spark是在Scala 語(yǔ)言中實(shí)現(xiàn)的,它將Scala用作其應(yīng)用程序框架。
7、R語(yǔ)言
開(kāi)源組織: 微軟公司
應(yīng)用場(chǎng)景:
R是用于統(tǒng)計(jì)分析、繪圖的語(yǔ)言和操作環(huán)境。R是屬于GNU系統(tǒng)的一個(gè)自由、免費(fèi)、源代碼開(kāi)放的軟件,它是一個(gè)用于統(tǒng)計(jì)計(jì)算和統(tǒng)計(jì)制圖的優(yōu)秀工具。
8、Hive數(shù)倉(cāng)工具
開(kāi)源組織: 臉書(shū)公司
應(yīng)用場(chǎng)景:
hive是基于Hadoop的一個(gè)數(shù)據(jù)倉(cāng)庫(kù)工具,用來(lái)進(jìn)行數(shù)據(jù)提取、轉(zhuǎn)化、加載,這是一種可以存儲(chǔ)、查詢和分析存儲(chǔ)在Hadoop中的大規(guī)模數(shù)據(jù)的機(jī)制。hive數(shù)據(jù)倉(cāng)庫(kù)工具能將結(jié)構(gòu)化的數(shù)據(jù)文件映射為一張數(shù)據(jù)庫(kù)表,并提供SQL查詢功能,能將SQL語(yǔ)句轉(zhuǎn)變成MapReduce任務(wù)來(lái)執(zhí)行。
9、Oozie組件
開(kāi)源組織: Apache軟件
應(yīng)用場(chǎng)景:
Oozie是一個(gè)管理Hdoop作業(yè)(job)的工作流程調(diào)度管理系統(tǒng)。
10、Azkaban組件
開(kāi)源組織: Linkedin公司
應(yīng)用場(chǎng)景:
批量工作流任務(wù)調(diào)度器。用于在一個(gè)工作流內(nèi)以一個(gè)特定的順序運(yùn)行一組工作和流程。Azkaban定義了一種KV文件格式來(lái)建立任務(wù)之間的依賴關(guān)系,并提供一個(gè)易于使用的web用戶界面維護(hù)和跟蹤的工作流。
11、Mahout組件
開(kāi)源組織: Apache軟件
應(yīng)用場(chǎng)景:
Mahout提供一些可擴(kuò)展的機(jī)器學(xué)習(xí)領(lǐng)域經(jīng)典算法的實(shí)現(xiàn),旨在幫助開(kāi)發(fā)人員更加方便快捷地創(chuàng)建智能應(yīng)用程序。Mahout包含許多實(shí)現(xiàn),包括聚類、分類、推薦過(guò)濾、頻繁子項(xiàng)挖掘。
12、ZooKeeper組件
開(kāi)源組織: Apache軟件
應(yīng)用場(chǎng)景:
ZooKeeper是一個(gè)分布式的,開(kāi)放源碼的分布式應(yīng)用程序協(xié)調(diào)服務(wù),是Google的Chubby一個(gè)開(kāi)源的實(shí)現(xiàn),是Hadoop和Hbase的重要組件。它是一個(gè)為分布式應(yīng)用提供一致性服務(wù)的軟件,提供的功能包括:配置維護(hù)、域名服務(wù)、分布式同步、組服務(wù)等。
四、技術(shù)棧分類
存儲(chǔ)體系:Hadoop-HDFS、HBase、MongoDB、Cassandra
計(jì)算體系:Hadoop-MapReduce、Spark、Storm、Flink
數(shù)據(jù)同步:Sqoop、DataX
資源調(diào)度:YARN、Oozie、Zookeeper
日志收集:Flume、Logstash、Kibana
分析引擎:Hive、Impala、Presto、Phoenix、SparkSQL
集群監(jiān)控:Ambari、Ganglia、Zabbix
五、源代碼地址
GitHub·地址 https://github.com/cicadasmile/big-data-parent GitEE·地址 https://gitee.com/cicadasmile/big-data-parent原文鏈接:https://developer.aliyun.com/article/772337?
版權(quán)聲明:本文內(nèi)容由阿里云實(shí)名注冊(cè)用戶自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,阿里云開(kāi)發(fā)者社區(qū)不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。具體規(guī)則請(qǐng)查看《阿里云開(kāi)發(fā)者社區(qū)用戶服務(wù)協(xié)議》和《阿里云開(kāi)發(fā)者社區(qū)知識(shí)產(chǎn)權(quán)保護(hù)指引》。如果您發(fā)現(xiàn)本社區(qū)中有涉嫌抄襲的內(nèi)容,填寫(xiě)侵權(quán)投訴表單進(jìn)行舉報(bào),一經(jīng)查實(shí),本社區(qū)將立刻刪除涉嫌侵權(quán)內(nèi)容。總結(jié)
以上是生活随笔為你收集整理的大数据简介,技术体系分类整理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 欢迎参与2020年云栖大会——引领企业基
- 下一篇: 数据湖架构,为什么需要“湖加速”?