




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第第#頁共24頁17、Spark是UCBerkeleyAMPlab所開源的類HadoopMapReduce的通用的并行計算框架,Spark基于mapreduce算法實(shí)現(xiàn)的分布式計算,擁有HadoopMapReduce所具有的優(yōu)點(diǎn);但不同于MapReduce的是Job中間輸出和結(jié)果可以保存在內(nèi)存中,從而不再需要讀寫HDFS,因此Spark能更好地適用于數(shù)據(jù)挖掘與機(jī)器學(xué)習(xí)等需要迭代的mapreduce的算法。18、Spark與Hadoop的對比(Spark的優(yōu)勢)1、Spark的中間數(shù)據(jù)放到內(nèi)存中,對于迭代運(yùn)算效率更高2、Spark比Hadoop更通用3、Spark提供了統(tǒng)一的編程接口4、容錯性-在分布式數(shù)據(jù)集計算時通過checkpoint來實(shí)現(xiàn)容錯5、可用性-Spark通過提供豐富的Scala,Java,PythonAPI及交互式Shell來提高可用性19、Spark的組件1、SparkStreaming:支持高吞吐量、支持容錯的實(shí)時流數(shù)據(jù)處理2、SparkSQL,Dataframes:結(jié)構(gòu)化數(shù)據(jù)查詢3、MLLib:Spark生態(tài)系統(tǒng)里用來解決大數(shù)據(jù)機(jī)器學(xué)習(xí)問題的模塊4、GraphX:是構(gòu)建于Spark上的圖計算模型5、SparkR:是一個R語言包,它提供了輕量級的方式使得可以在R語言中使用Spark20、DataFrame是一種以RDD為基礎(chǔ)的分布式數(shù)據(jù)集,類似于傳統(tǒng)數(shù)據(jù)庫中的二維表格。21、DataFrame與RDD的主要區(qū)別在于:前者帶有schema元信息,即DataFrame所表示的二維表數(shù)據(jù)集的每一列都帶有名稱和類型。這使得SparkSQL得以洞察更多的結(jié)構(gòu)信息,從而對藏于DataFrame背后的數(shù)據(jù)源以及作用于DataFrame之上的變換進(jìn)行了針對性的優(yōu)化,最終達(dá)到大幅提升運(yùn)行時效率的目標(biāo)。反觀RDD,由于無從得知所存數(shù)據(jù)元素的具體內(nèi)部結(jié)構(gòu),SparkCore只能在stage層面進(jìn)行簡單、通用的流水線優(yōu)化。22、MLlib是spark的可以擴(kuò)展的機(jī)器學(xué)習(xí)庫,由以下部分組成:通用的學(xué)習(xí)算法和工具類,包括分類,回歸,聚類,協(xié)同過濾,降維23、SparkR實(shí)現(xiàn)了分布式的dataframe,支持類似查詢、過濾以及聚合的操作24、RDD,全稱為ResilientDistributedDatasets,是個容錯的、并行的數(shù)據(jù)結(jié)構(gòu),可以讓用戶顯式地將數(shù)據(jù)存儲到磁盤和內(nèi)存中,并能控制數(shù)據(jù)的分區(qū)。同時,RDD還提供了一組豐富的操作來操作這些數(shù)據(jù)。25、RDD的特點(diǎn):它是在集群節(jié)點(diǎn)上的不可變的、已分區(qū)的集合對象。通過并行轉(zhuǎn)換的方式來創(chuàng)建如(map,filter,join,etc)。失敗自動重建??梢钥刂拼鎯墑e(內(nèi)存、磁盤等)來進(jìn)行重用。必須是可序列化的。是靜態(tài)類型的。26、RDD核心概念Client:客戶端進(jìn)程,負(fù)責(zé)提交作業(yè)到Master。Master:Standalone模式中主控節(jié)點(diǎn),負(fù)責(zé)接收Client提交的作業(yè),管理Worker,并命令Worker啟動分配Driver的資源和啟動Executor的資源。Worker:Standalone模式中slave節(jié)點(diǎn)上的守護(hù)進(jìn)程,負(fù)責(zé)管理本節(jié)點(diǎn)的資源,定期向Master匯報心跳,接收Master的命令,啟動Driver和Executor。Driver:一個Spark作業(yè)運(yùn)行時包括一個Driver進(jìn)程,也是作業(yè)的主進(jìn)程,負(fù)責(zé)作業(yè)的解析、生成Stage并調(diào)度Task至HExecutor上。包括DAGScheduler,TaskScheduler。Executor:即真正執(zhí)行作業(yè)的地方,一個集群一般包含多個Executor,每個Executor接收Driver的命令LaunchTask,一個Executor可以執(zhí)行一到多個Task。27、RDD常見術(shù)語DAGScheduler:實(shí)現(xiàn)將Spark作業(yè)分解成一到多個Stage,每個Stage根據(jù)RDD的Partition個數(shù)決定Task的個數(shù),然后生成相應(yīng)的Taskset放到TaskScheduler中。TaskScheduler:實(shí)現(xiàn)Task分配到Executor上執(zhí)行。Task:運(yùn)行在Executor上的工作單元Job:SparkContext提交的具體Action操作,常和Action對應(yīng)Stage:每個Job會被拆分很多組任務(wù)(task),每組任務(wù)被稱為Stage,也稱TaskSetRDD:ResilientDistributedDatasets的簡稱,彈性分布式數(shù)據(jù)集,是Spark最核心的'模塊和類Transformation/Action:SparkAPI的兩種類型;Transformation返回值還是一個RDD,Action返回值不少一個RDD,而是一個Scala的集合;所有的Transformation都是采用的懶策略,如果只是將Transformation提交是不會執(zhí)行計算的,計算只有在Action被提交時才會被觸發(fā)。DataFrame:帶有Schema信息的RDD,主要是對結(jié)構(gòu)化數(shù)據(jù)的高度抽象。DataSet:結(jié)合了DataFrame和RDD兩者的優(yōu)勢,既允許用戶很方便的操作領(lǐng)域?qū)ο?又具有SQL執(zhí)行引擎的高效表現(xiàn)。28、RDD提供了兩種類型的操作:transformation和action1,transformation是得到一個新的RDD,方式很多,比如從數(shù)據(jù)源生成一個新的RDD,從RDD生成一個新的RDD2,action是得到一個值,或者一個結(jié)果(直接將RDDcache到內(nèi)存中)3,所有的transformation都是采用的懶策略,就是如果只是將transformation提交是不會執(zhí)行計算的,計算只有在action被提交的時候才被觸發(fā)29、RDD中關(guān)于轉(zhuǎn)換(transformation)與動作(action)的區(qū)別前者會生成新的RDD,而后者只是將RDD上某項(xiàng)操作的結(jié)果返回給程序,而不會生成新的RDD;無論執(zhí)行了多少次transformation操作,RDD都不會真正執(zhí)行運(yùn)算(記錄lineage),只有當(dāng)action操作被執(zhí)行時,運(yùn)算才會觸發(fā)。30、RDD與DSM(distributedsharedmemory)的最大不同是:RDD只能通過粗粒度轉(zhuǎn)換來創(chuàng)建,而DSM則允許對每個內(nèi)存位置上數(shù)據(jù)的讀和寫。在這種定義下,DSM不僅包括了傳統(tǒng)的共享內(nèi)存系統(tǒng),也包括了像提供了共享DHT(distributedhashtable)的Piccolo以及分布式數(shù)據(jù)庫等。31、RDD的優(yōu)勢1、高效的容錯機(jī)制2、結(jié)點(diǎn)落后問題的緩和(mitigatestraggler):3、批量操作:4、優(yōu)雅降級(degradegracefully)32、如何獲取RDD1、從共享的文件系統(tǒng)獲取,(如:HDFS)2、通過已存在的RDD轉(zhuǎn)換3、將已存在scala集合(只要是Seq對象)并行化,通過調(diào)用SparkContext的parallelize方法實(shí)現(xiàn)4、改變現(xiàn)有RDD的之久性;RDD是懶散,短暫的。33、RDD都需要包含以下四個部分源數(shù)據(jù)分割后的數(shù)據(jù)塊,源代碼中的splits變量關(guān)于“血統(tǒng)”的信息,源碼中的dependencies變量一個計算函數(shù)(該RDD如何通過父RDD計算得到),源碼中的iterator(split)和compute函數(shù)一些關(guān)于如何分塊和數(shù)據(jù)存放位置的元信息,如源碼中的partitioner和preferredLocations34、在RDD中將依賴劃分成了兩種類型:窄依賴(narrowdependencies)和寬依賴(widedependencies)。窄依賴是指父RDD的每個分區(qū)都只被子RDD的一個分區(qū)所使用。相應(yīng)的,那么寬依賴就是指父RDD的分區(qū)被多個子RDD的分區(qū)所依賴。例如,map就是一種窄依賴,而join則會導(dǎo)致寬依賴依賴關(guān)系分類的特性:第一,窄依賴可以在某個計算節(jié)點(diǎn)上直接通過計算父RDD的某塊數(shù)據(jù)計算得到子RDD對應(yīng)的某塊數(shù)據(jù);第二,數(shù)據(jù)丟失時,對于窄依賴只需要重新計算丟失的那一塊數(shù)據(jù)來恢復(fù);35、數(shù)據(jù)分析常見模式:1、IterativeAlgorithms,2、RelationalQueries,3、MapReduce,4、StreamProcessing,36、SparkStreaming的基本原理是將輸入數(shù)據(jù)流以時間片(秒級)為單位進(jìn)行拆分,然后以類似批處理的方式處理每個時間片數(shù)據(jù)37、SparkStreaming優(yōu)劣優(yōu)勢:1、統(tǒng)一的開發(fā)接口2、吞吐和容錯3、多種開發(fā)范式混用,Streaming+SQL,Streaming+MLlib4、利用Spark內(nèi)存pipeline計算劣勢:微批處理模式,準(zhǔn)實(shí)時38、Flume是一個分布式的日志收集系統(tǒng),具有高可靠、高可用、事務(wù)管理、失敗重啟等功能。數(shù)據(jù)處理速度快,完全可以用于生產(chǎn)環(huán)境。39、Flume的核心是agent。Agent是一個java進(jìn)程,運(yùn)行在日志收集端,通過agent接收日志,然后暫存起來,再發(fā)送到目的地。Agent里面包含3個核心組件:source、channel、sink。Source組件是專用于收集日志的,可以處理各種類型各種格式的日志數(shù)據(jù),包括avro、thrift、exec、jms、spoolingdirectory、netcat、sequencegenerator、syslog、http、legacy、自定義。source組件把數(shù)據(jù)收集來以后,臨時存放在channel中。Channel組件是在agent中專用于臨時存儲數(shù)據(jù)的,可以存放在memory、jdbc、file、自定義。channel中的數(shù)據(jù)只有在sink發(fā)送成功之后才會被刪除。Sink組件是用于把數(shù)據(jù)發(fā)送到目的地的組件,目的地包括hdfs、logger、avro、thrift、ipc、file、null、hbase、solr、自定義。40、ApacheKafka是分布式發(fā)布-訂閱消息系統(tǒng)。它最初由LinkedIn公司開發(fā),之后成為Apache項(xiàng)目的一部分。Kafka是一種快速、可擴(kuò)展的、設(shè)計內(nèi)在就是分布式的,分區(qū)的和可復(fù)制的提交日志服務(wù)。41、ApacheKafka與傳統(tǒng)消息系統(tǒng)相比,有以下不同:1、它被設(shè)計為一個分布式系統(tǒng),易于向外擴(kuò)展;2、它同時為發(fā)布和訂閱提供高吞吐量;3、它支持多訂閱者,當(dāng)失敗時能自動平衡消費(fèi)者;4、它將消息持久化到磁盤,因此可用于批量消費(fèi)42、DataFrame特性1、支持從KB到PB級的數(shù)據(jù)量2、支持多種數(shù)據(jù)格式和多種存儲系統(tǒng)3、通過Catalyst優(yōu)化器進(jìn)行先進(jìn)的優(yōu)化生成代碼4、通過Spark無縫集成主流大數(shù)據(jù)工具與基礎(chǔ)設(shè)施5、API支持Python、Java、Scala和R語言43、Scala的好處:1、面向?qū)ο蠛秃瘮?shù)式編程理念加入到靜態(tài)類型語言中的混合體2、Scala的兼容性能夠與Java庫無縫的交互3、Scala的簡潔性高效,更不容易犯錯4、Scala的高級抽象5、Scala是靜態(tài)類型類型推斷6、Scala是可擴(kuò)展的語言44、搜索引擎是指根據(jù)一定的策略、運(yùn)用特定的計算機(jī)程序從互聯(lián)網(wǎng)上搜集信息,在對信息進(jìn)行組織和處理后,為用戶提供檢索服務(wù),將用戶檢索相關(guān)的信息展示給用戶的系統(tǒng)。搜索引擎包括全文索引、目錄索引、元搜索引擎、垂直搜索引擎、集合式搜索引擎、門戶搜索引擎與免費(fèi)鏈接列表等。45、Lucene是一個高性能、可伸縮的信息搜索庫,即它不是一個完整的全文檢索引擎,而是一個全檢索引擎的架構(gòu),提供了完整的查詢引擎和索引引擎,部分文本分析引擎。46、Elasticsearch是一個高可擴(kuò)展的、開源的全文本搜索和分析工具。它允許你以近實(shí)時的方式快速存儲、搜索、分析大容量的數(shù)據(jù)。Elasticsearch是一個基于ApacheLucene(TM)的開源搜索引擎。無論在開源還是專有領(lǐng)域,Lucene可以被認(rèn)為是迄今為止最先進(jìn)、性能最好的、功能最全的搜索引擎庫。47、ElasticSearch有4種方式來構(gòu)建數(shù)據(jù)庫,最簡單的方法是使用indexAPI,將一個Document發(fā)送到特定的index,一般通過curltools實(shí)現(xiàn)。第二第三種方法是通過bulkAPI和UDPbulkAPI。兩者的區(qū)別僅在于連接方式。第四種方式是通過一個插件river。river運(yùn)行在ElasticSearch上,并且可以從外部數(shù)據(jù)庫導(dǎo)入數(shù)據(jù)到ES中。需要注意的是,數(shù)據(jù)構(gòu)建僅在分片上進(jìn)行,而不能在副本上進(jìn)行。48、ELK是一套常用的開源日志監(jiān)控和分析系統(tǒng),包括一個分布式索引與搜索服務(wù)Elasticsearch,一個管理日志和事件的工具logstash,和一個數(shù)據(jù)可視化服務(wù)Kibanalogstash負(fù)責(zé)日志的收集,處理和儲存elasticsearch負(fù)責(zé)日志檢索和分析Kibana負(fù)責(zé)日志的可視化49、Hive是什么?Hive是基于Hadoop的一個數(shù)據(jù)倉庫工具,可以將結(jié)構(gòu)化的數(shù)據(jù)文件映射為一張數(shù)據(jù)庫表,并提供類SQL查詢功能。本質(zhì)是將HQL轉(zhuǎn)換為MapReduce程序50、Hive的設(shè)計目標(biāo)?1、Hive的設(shè)計目標(biāo)是使Hadoop上的數(shù)據(jù)操作與傳統(tǒng)SQL相結(jié)合,讓熟悉SQL編程開發(fā)人員能夠輕松向Hadoop平臺遷移2、Hive提供類似SQL的查詢語言HQL,HQL在底層被轉(zhuǎn)換為相應(yīng)的MapReduce操作3、Hive在HDFS上構(gòu)建數(shù)據(jù)倉庫來存儲結(jié)構(gòu)化的數(shù)據(jù),這些數(shù)據(jù)一般來源與HDFS上的原始數(shù)據(jù),使用Hive可以對這些數(shù)據(jù)執(zhí)行查詢、分析等操作。51、Hive的數(shù)據(jù)模型1、Hive數(shù)據(jù)庫2、內(nèi)部表3、外部表4、分區(qū)5、桶6、Hive的視圖52、Hive的調(diào)用方式1、HiveShell2、Thrift3、JDBC4、ODBC53、Hive的運(yùn)行機(jī)制1、將sql轉(zhuǎn)換成抽象語法樹2、將抽象語法樹轉(zhuǎn)化成查詢塊3、將查詢塊轉(zhuǎn)換成邏輯查詢計劃(操作符樹)4、將邏輯計劃轉(zhuǎn)換成物理計劃(MRjobs)54、Hive的優(yōu)勢1、并行計算2、充分利用集群的CPU計算資源、存儲資源3、處理大規(guī)模數(shù)據(jù)集4、使用SQL,學(xué)習(xí)成本低55、Hive應(yīng)用場景1、海量數(shù)據(jù)處理2、數(shù)據(jù)挖掘3、數(shù)據(jù)分析4、SQL是商務(wù)智能工具的通用語言,Hive有條件和這些BI產(chǎn)品進(jìn)行集成56、Hive不適用場景1、復(fù)雜的科學(xué)計算2、不能做到交互式的實(shí)時查詢57、Hive和數(shù)據(jù)庫(RDBMS)的區(qū)別1、數(shù)據(jù)存儲位置。Hive是建立在Hadoop之上的,所有的Hive的數(shù)據(jù)都是存儲在HDFS中的。而數(shù)據(jù)庫則可以將數(shù)據(jù)保存在塊設(shè)備或本地文件系統(tǒng)中。2、數(shù)據(jù)格式。Hive中沒有定義專門的數(shù)據(jù)格式,由用戶指定三個屬性:列分隔符,行分隔符,以及讀取文件數(shù)據(jù)的方法。數(shù)據(jù)庫中,存儲引擎定義了自己的數(shù)據(jù)格式。所有數(shù)據(jù)都會按照一定的組織存儲。3、數(shù)據(jù)更
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 商品房預(yù)售抵押合同
- 筒倉鋼管樓梯施工方案
- 變壓器采購合同采購合同
- 商鋪物業(yè)服務(wù)合同
- 酒店裝修改造施工方案
- 外墻面鋁鋼板加固施工方案
- 2025屆甘肅省蘭州市部分學(xué)校高三一模地理試題(原卷版+解析版)
- 計劃生育手術(shù)器械項(xiàng)目風(fēng)險識別與評估綜合報告
- 2025年人力資源制度:04 -藝人簽約合同書
- 鋼筆的修理 課件
- 《魚意融生活》課件 2024-2025學(xué)年嶺南美版(2024) 初中美術(shù)七年級上冊
- 2024-2030年中國婦幼保健行業(yè)發(fā)展分析及發(fā)展前景與趨勢預(yù)測研究報告
- 20以內(nèi)加減法口算練習(xí)題帶括號填空135
- 昌都市公務(wù)員考試筆試真題及答案
- 高一下學(xué)期統(tǒng)編版歷史必修中外歷史綱要下第6課《全球航路的開辟》課件(共38張)
- 人教版(2024新版)九年級上冊化學(xué):第四單元 跨學(xué)科實(shí)踐活動3《水質(zhì)檢測及自制凈水器》教案教學(xué)設(shè)計
- 醫(yī)院污水設(shè)施運(yùn)營安全管理協(xié)議書
- AQ 1119-2023 煤礦井下人員定位系統(tǒng)技術(shù)條件
- 收割機(jī)收割協(xié)議合同
- GB/T 10781.4-2024白酒質(zhì)量要求第4部分:醬香型白酒
評論
0/150
提交評論