{eval=Array;=+count(Array);}
Apache?Hadoop?項(xiàng)目開(kāi)發(fā)了用于可靠,可擴(kuò)展的分布式計(jì)算的開(kāi)源軟件。
Apache Hadoop軟件庫(kù)是一個(gè)框架,該框架允許使用簡(jiǎn)單的編程模型跨計(jì)算機(jī)集群對(duì)大型數(shù)據(jù)集進(jìn)行分布式處理。 它旨在從單個(gè)服務(wù)器擴(kuò)展到數(shù)千臺(tái)機(jī)器,每臺(tái)機(jī)器都提供本地計(jì)算和存儲(chǔ)。 庫(kù)本身不是設(shè)計(jì)用來(lái)依靠硬件來(lái)提供高可用性,而是設(shè)計(jì)為在應(yīng)用程序?qū)訖z測(cè)和處理故障,因此可以在計(jì)算機(jī)集群的頂部提供高可用性服務(wù),而每臺(tái)計(jì)算機(jī)都容易出現(xiàn)故障。
1、hadoop1.0時(shí)期架構(gòu)
2、hadoop2.0時(shí)期架構(gòu)
3、hdfs架構(gòu)
Active Namenode
主 Master(只有一個(gè)),管理 HDFS 的名稱(chēng)空間,管理數(shù)據(jù)塊映射信息;配置副本策略;處理客戶(hù)端讀寫(xiě)請(qǐng)求
Secondary NameNode
NameNode 的熱備;定期合并 fsimage 和 fsedits,推送給 NameNode;當(dāng) Active NameNode 出現(xiàn)故障時(shí),快速切換為新的 Active NameNode。
Datanode
Slave(有多個(gè));存儲(chǔ)實(shí)際的數(shù)據(jù)塊;執(zhí)行數(shù)據(jù)塊讀 / 寫(xiě)
Client
與 NameNode 交互,獲取文件位置信息;與 DataNode 交互,讀取或者寫(xiě)入數(shù)據(jù);管理 HDFS、訪問(wèn) HDFS。
4、MapReduce
源自于 Google 的 MapReduce 論文
發(fā)表于 2004 年 12 月
Hadoop MapReduce 是 Google MapReduce 克隆版
MapReduce特點(diǎn)
良好的擴(kuò)展性
高容錯(cuò)性
適合 PB 級(jí)以上海量數(shù)據(jù)的離線(xiàn)處理
5、yarn架構(gòu)
6、hadoop1.0與hadoop2.0比較圖
7、Hive(基于MR的數(shù)據(jù)倉(cāng)庫(kù))
由Facebook開(kāi)源,最初用于海量結(jié)構(gòu)化日志數(shù)據(jù)統(tǒng)計(jì);ETL(Extraction-Transformation-Loading)工具構(gòu)建在Hadoop之上的數(shù)據(jù)倉(cāng)庫(kù);數(shù)據(jù)計(jì)算使用 MapReduce,數(shù)據(jù)存儲(chǔ)使用HDFS
Hive 定義了一種類(lèi) SQL 查詢(xún)語(yǔ)言——HQL
類(lèi)似SQL,但不完全相同
通常用于進(jìn)行離線(xiàn)數(shù)據(jù)處理(采用 MapReduce);可認(rèn)為是一個(gè) HQL→MR 的語(yǔ)言翻譯器
8、Hbase(分布式數(shù)據(jù)庫(kù))
源自 Google 的 Bigtable 論文
發(fā)表于 2006 年 11 月
Hbase 是 Google Bigtable 克隆版
Apache Spark是用于大規(guī)模數(shù)據(jù)處理的統(tǒng)一分析引擎。 它提供Java,Scala,Python和R中的高級(jí)API,以及支持常規(guī)執(zhí)行圖的優(yōu)化引擎。 它還支持豐富的高級(jí)工具集,包括用于SQL和結(jié)構(gòu)化數(shù)據(jù)處理的Spark SQL,用于機(jī)器學(xué)習(xí)的MLlib,用于圖形處理的GraphX和用于增量計(jì)算和流處理的結(jié)構(gòu)化流。
速度
運(yùn)行工作負(fù)載的速度提高了100倍。
Apache Spark使用最新的DAG調(diào)度程序,查詢(xún)優(yōu)化器和物理執(zhí)行引擎,為批處理數(shù)據(jù)和流數(shù)據(jù)提供了高性能。
使用方便
使用Java,Scala,Python,R和SQL快速編寫(xiě)應(yīng)用程序。
Spark提供了80多個(gè)高級(jí)操作員,可輕松構(gòu)建并行應(yīng)用程序。 您可以從Scala,Python,R和SQL Shell交互使用它。
通用
結(jié)合使用SQL,流和復(fù)雜的分析。
Spark為包括SQL和DataFrames,用于機(jī)器學(xué)習(xí)的MLlib,GraphX和Spark Streaming在內(nèi)的一堆庫(kù)提供支持。 您可以在同一應(yīng)用程序中無(wú)縫組合這些庫(kù)。
無(wú)處不在
Spark可在Hadoop,Apache Mesos,Kubernetes,獨(dú)立或云中運(yùn)行。 它可以訪問(wèn)各種數(shù)據(jù)源。
您可以在EC2,Hadoop YARN,Mesos或Kubernetes上使用其獨(dú)立集群模式運(yùn)行Spark。 訪問(wèn)HDFS,Alluxio,Apache Cassandra,Apache HBase,Apache Hive和數(shù)百種其他數(shù)據(jù)源中的數(shù)據(jù)。
1)hadoop簡(jiǎn)介
Hadoop是一個(gè)由Apache基金會(huì)所開(kāi)發(fā)的分布式系統(tǒng)基礎(chǔ)架構(gòu)。 Hadoop實(shí)現(xiàn)了一個(gè)分布式文件系統(tǒng)HDFS。HDFS有高容錯(cuò)性的特點(diǎn),并且設(shè)計(jì)用來(lái)部署在低廉的硬件上;而且它提供高吞吐量來(lái)訪問(wèn)應(yīng)用程序的數(shù)據(jù),適合那些有著超大數(shù)據(jù)集的應(yīng)用程序。Hadoop的框架最核心的設(shè)計(jì)就是:HDFS和MapReduce。HDFS為海量的數(shù)據(jù)提供了存儲(chǔ),而MapReduce則為海量的數(shù)據(jù)提供了計(jì)算
2)hadoop優(yōu)點(diǎn)
Hadoop 以一種可靠、高效、可伸縮的方式進(jìn)行數(shù)據(jù)處理。
可靠性: Hadoop將數(shù)據(jù)存儲(chǔ)在多個(gè)備份,Hadoop提供高吞吐量來(lái)訪問(wèn)應(yīng)用程序的數(shù)據(jù)。
高擴(kuò)展性: Hadoop是在可用的計(jì)算機(jī)集簇間分配數(shù)據(jù)并完成計(jì)算任務(wù)的,這些集簇可以方便地?cái)U(kuò)展到數(shù)以千計(jì)的節(jié)點(diǎn)中。
高效性: Hadoop以并行的方式工作,通過(guò)并行處理加快處理速度。
高容錯(cuò)性: Hadoop能夠自動(dòng)保存數(shù)據(jù)的多個(gè)副本,并且能夠自動(dòng)將失敗的任務(wù)重新分配。
低成本: Hadoop能夠部署在低廉的(low-cost)硬件上。
1)spark簡(jiǎn)介
Spark 是專(zhuān)為大規(guī)模數(shù)據(jù)處理而設(shè)計(jì)的快速通用的計(jì)算引擎。Spark擁有Hadoop MapReduce所具有的優(yōu)點(diǎn),Spark在Job中間輸出結(jié)果可以保存在內(nèi)存中,從而不再需要讀寫(xiě)HDFS,因此Spark性能以及運(yùn)算速度高于MapReduce。
2)spark優(yōu)點(diǎn)
計(jì)算速度快: 因?yàn)閟park從磁盤(pán)中讀取數(shù)據(jù),把中間數(shù)據(jù)放到內(nèi)存中,,完成所有必須的分析處理,將結(jié)果寫(xiě)回集群,所以spark更快。
Spark 提供了大量的庫(kù): 包括Spark Core、Spark SQL、Spark Streaming、MLlib、GraphX。
支持多種資源管理器: Spark 支持 Hadoop YARN,及其自帶的獨(dú)立集群管理器
操作簡(jiǎn)單: 高級(jí) API 剝離了對(duì)集群本身的關(guān)注,Spark 應(yīng)用開(kāi)發(fā)者可以專(zhuān)注于應(yīng)用所要做的計(jì)算本身
1)應(yīng)用場(chǎng)景不同
Hadoop和Spark兩者都是大數(shù)據(jù)框架,但是各自應(yīng)用場(chǎng)景是不同的。Hadoop是一個(gè)分布式數(shù)據(jù)存儲(chǔ)架構(gòu),它將巨大的數(shù)據(jù)集分派到一個(gè)由普通計(jì)算機(jī)組成的集群中的多個(gè)節(jié)點(diǎn)進(jìn)行存儲(chǔ),降低了硬件的成本。Spark是那么一個(gè)專(zhuān)門(mén)用來(lái)對(duì)那些分布式存儲(chǔ)的大數(shù)據(jù)進(jìn)行處理的工具,它要借助hdfs的數(shù)據(jù)存儲(chǔ)。
2)處理速度不同
hadoop的MapReduce是分步對(duì)數(shù)據(jù)進(jìn)行處理的,從磁盤(pán)中讀取數(shù)據(jù),進(jìn)行一次處理,將結(jié)果寫(xiě)到磁盤(pán),然后在從磁盤(pán)中讀取更新后的數(shù)據(jù),再次進(jìn)行的處理,最后再將結(jié)果存入磁盤(pán),這存取磁盤(pán)的過(guò)程會(huì)影響處理速度。spark從磁盤(pán)中讀取數(shù)據(jù),把中間數(shù)據(jù)放到內(nèi)存中,,完成所有必須的分析處理,將結(jié)果寫(xiě)回集群,所以spark更快。
3)容錯(cuò)性不同
Hadoop將每次處理后的數(shù)據(jù)都寫(xiě)入到磁盤(pán)上,基本談不上斷電或者出錯(cuò)數(shù)據(jù)丟失的情況。Spark的數(shù)據(jù)對(duì)象存儲(chǔ)在彈性分布式數(shù)據(jù)集 RDD,RDD是分布在一組節(jié)點(diǎn)中的只讀對(duì)象集合,如果數(shù)據(jù)集一部分丟失,則可以根據(jù)于數(shù)據(jù)衍生過(guò)程對(duì)它們進(jìn)行重建。而且RDD 計(jì)算時(shí)可以通過(guò) CheckPoint 來(lái)實(shí)現(xiàn)容錯(cuò)。
Hadoop提供分布式數(shù)據(jù)存儲(chǔ)功能HDFS,還提供了用于數(shù)據(jù)處理的MapReduce。 MapReduce是可以不依靠spark數(shù)據(jù)的處理的。當(dāng)然spark也可以不依靠HDFS進(jìn)行運(yùn)作,它可以依靠其它的分布式文件系統(tǒng)。但是兩者完全可以結(jié)合在一起,hadoop提供分布式 集群和分布式 文件系統(tǒng),spark可以依附在hadoop的HDFS代替MapReduce彌補(bǔ)MapReduce計(jì)算能力不足的問(wèn)題。
總結(jié)一句話(huà):spark在hadoop肩膀上可以讓大數(shù)據(jù)跑的更快
早期Hadoop指的hdfs+mapreduce,后來(lái)衍生為整個(gè)大數(shù)據(jù)生態(tài)。
大數(shù)據(jù)生態(tài)從底層往上是分布式文件存儲(chǔ),分布式數(shù)據(jù)庫(kù),分布式計(jì)算(實(shí)時(shí)+離線(xiàn)),檢索,資源管理,任務(wù)調(diào)度,以及周邊工具。
從上可以看出,spark只是Hadoop生態(tài)中的一個(gè)小分支。
0
回答0
回答0
回答0
回答0
回答0
回答0
回答0
回答0
回答9
回答