大數(shù)據(jù)框架整理_第1頁
大數(shù)據(jù)框架整理_第2頁
大數(shù)據(jù)框架整理_第3頁
大數(shù)據(jù)框架整理_第4頁
大數(shù)據(jù)框架整理_第5頁
已閱讀5頁,還剩16頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1/11大數(shù)據(jù)框架整理大數(shù)據(jù)離線部分NameNode存中報(bào)告自身存儲(chǔ)的塊信息以記日志的形式將每一個(gè)操作寫在磁盤的日志文件中,然后借助SecondaryNameNodecheckpointfsImage并。重點(diǎn):記住checkpoint工作過程配置多個(gè).dir路徑為本地磁盤路徑和nfs網(wǎng)絡(luò)磁盤路徑。hdfsNameNode是Datanode?只有一個(gè),他的存儲(chǔ)能力完全取決于他的內(nèi)存,所以。。。。,但是其實(shí)NameNode一般不會(huì)成為瓶頸,因?yàn)橐粋€(gè)塊記錄的元數(shù)據(jù)信息大小約為2/11默認(rèn)使用操作系統(tǒng)的內(nèi)核進(jìn)行磁盤數(shù)據(jù)的寫入,也就是需要一個(gè)winutil的工具,而默認(rèn)的安裝包中不提供,所以需要編譯源碼或者設(shè)置為使用Java的進(jìn)行磁盤寫入。9:hadoop的HA(高可用)endswritableandCompareble1、排序并且求TOPOne和TOPN2、求某個(gè)用戶前幾個(gè)月的總流量,并且選擇出流量前幾名的用戶。5、求共同好友問題一個(gè)將sql轉(zhuǎn)化為MapReduce程序的、單機(jī)版的、數(shù)據(jù)倉庫工具。通過關(guān)系型數(shù)據(jù)庫(mysql等)來記錄表元數(shù)據(jù)信息。真正的數(shù)據(jù)在HDFS中。 3/11Spark安裝的時(shí)候,需要注意jline的版本沖突。內(nèi)部表、外部表就差連個(gè)關(guān)鍵字(external和location)分區(qū)表、分桶表join動(dòng)態(tài)分區(qū)分組查詢個(gè)累計(jì)報(bào)表操作。6:hive自定義函數(shù)(UDF)hadoopmap端進(jìn)行數(shù)據(jù)的并行導(dǎo)入導(dǎo)出。HDFSHDFSHive即可。4/11//里面有一個(gè)靜態(tài)的公共內(nèi)部類。publicstaticclassmybuilderimplementsIterceptor.Builder大數(shù)據(jù)實(shí)時(shí)storm部分storm1:storm是一個(gè)實(shí)時(shí)的計(jì)算框架,只負(fù)責(zé)計(jì)算,不負(fù)責(zé)存儲(chǔ)。它通過spout的open和nextTuple方法去外部存儲(chǔ)系統(tǒng)(kafka)獲取數(shù)據(jù),然后傳送給后續(xù)的bolt處理,出目錄,把信息寫到指定的外部存儲(chǔ)系統(tǒng)中。交叉收到的數(shù)據(jù)做異或元算中間結(jié)果不為0的原理。4:jstorm的通信機(jī)制,每一個(gè):worker都有一個(gè)接受線程和輸出線程程,supervisor是可以快速失敗的,不影響任務(wù)的執(zhí)行。5/11topology:由spout和bolt組成的一個(gè)流程圖。他描述著本次任務(wù)的信息spout:nexttupledeclareOutputFieldsepareexecutedeclareOutputFieldsstormtuple構(gòu),它里面有兩個(gè)數(shù)據(jù)結(jié)構(gòu),一個(gè)list、一個(gè)是mapmap上面的list中找數(shù)據(jù)。kafkaitionbrokerpartition是topic信息在屋里存儲(chǔ)中的具體體現(xiàn),在磁盤中它是一個(gè)文件夾,名字是6/11每個(gè)partition對(duì)對(duì)應(yīng)多個(gè)segment文件,默認(rèn)大小是1G,為了快速定位到指定的1/使用了操作系統(tǒng)使用的pagecache緩存,緩存大,緩存到一定量的數(shù)據(jù)時(shí),以順序?qū)懭氲姆绞綄懭氲酱疟P中。因?yàn)椋捍疟P順序?qū)懭氲姆绞椒浅5目?>600MB/s,而隨機(jī)存儲(chǔ)只有100kb/s左右。2/使用操作系統(tǒng)的sendfile技術(shù)。在讀取信息發(fā)送的時(shí)候,不需要經(jīng)過用戶區(qū),而是os直接發(fā)送,可以減少很多步驟。6、為什么要多個(gè)partitioner7、為什么每個(gè)partitioner需要切分為多個(gè)segment文件對(duì)partitioner分區(qū)進(jìn)行備份,利用zookeeper的選舉機(jī)制選擇leader。數(shù)據(jù)的生產(chǎn)存儲(chǔ)和消費(fèi)讀取都是有l(wèi)eader負(fù)責(zé),其他的replicatition只是負(fù)責(zé)備份而已。1、如何定義變量的參數(shù)傳入進(jìn)去?樣例類的使用6、trit、抽象類的使用7、主構(gòu)造器和輔助構(gòu)造器的使用7/118、scala的高級(jí)特性高階函數(shù):作為值得函數(shù)、匿名函數(shù)、閉包、柯里化隱式轉(zhuǎn)換:一個(gè)類對(duì)象中,如果他沒有摸一個(gè)功能,但是我們有想要它實(shí)現(xiàn),可以使用objectMyPredef{//定義隱式轉(zhuǎn)換方法implicitdef(file:Rich)}使用:importMyPredef._9、Actor寫起來像多線程,用起來像socket10、akkaActorSystem.actorOf()創(chuàng)建一個(gè)Actor,創(chuàng)建的同時(shí),就是執(zhí)行Actor中的prestart方法,去初始化一些信息。SparkRDD1、SparkRDD叫做:彈性分布式數(shù)據(jù)集,其實(shí)就是一個(gè)類,用來描述:任務(wù)的數(shù)據(jù)從哪里讀取、用那個(gè)算進(jìn)行計(jì)算、得到的結(jié)果有存放在哪里、RDD之間的依賴關(guān)系是款以來還是窄依賴一系列分區(qū)每個(gè)算子作用在每個(gè)分區(qū)上一系列依賴關(guān)系最有位置(如果從HDFS上讀取數(shù)據(jù))8/11Transformation是懶加載,只是定義了這個(gè)算子的任務(wù),該如何做,但是還沒有做。Action是立即執(zhí)行,當(dāng)執(zhí)行到Action時(shí),會(huì)觸發(fā)DAGSchudle切分stage,切分完成后,有TaskScheduler將任務(wù)通過DriverActor發(fā)送到executor中執(zhí)行。->combineByKey(x=>x,(a:List[String],b:String)=>a:+b,(m:List[String],n:List[String])=>m++n)第一個(gè)參數(shù)表示分組后的第一個(gè)值如何處理,第二個(gè)參數(shù)表示后續(xù)的值和前一個(gè)值如何處理,ist初始量作用于沒一個(gè)分區(qū),第一個(gè)func作用于map端,第二個(gè)func作用于reducece其實(shí)reduceByKey和aggregateByKey在底層都調(diào)用了combineByKey方法來實(shí)現(xiàn)對(duì)每一個(gè)分區(qū)進(jìn)行操作,直接在里面使用匿名函數(shù)即可當(dāng)然如果邏輯非常復(fù)雜也是可以考慮在外面先定義好這個(gè)函數(shù)之后在傳輸進(jìn)去。rdd1.mapPartitions((it:Iterator[String])=>{it.toList.map(x=>(x,1)).iterator9/11首先定義一個(gè)函數(shù),當(dāng)然也可以寫在里面作為匿名函數(shù)valfunc=(index:Int,it:Iterator[Int])=>{it.toList.map(x=>("index:"+index,x)).iterator}rdd1.mapPartitionsWithIndex(func).collect//自定義分區(qū)器,重寫里面的getPartition方法和numPartitions方法。//構(gòu)造這個(gè)對(duì)象的時(shí)候,就把所有情況的信息傳輸過來,然后在里面進(jìn)行分類處理。classHostPartition(hostArr:Array[String])extendsPartitioner{//對(duì)所有的數(shù)據(jù)進(jìn)行分類,每一種類型對(duì)應(yīng)一個(gè)int編號(hào)。所以使用map比較合適。valmap=newmutable.HashMap[String,Int]()for(index<-0until(hostArr.length)){map.put(hostArr(index),index)}getPartition的方法。overridedefgetPartition(key:Any):Int={map.getOrElse(key.toString,0)}overridedefnumPartitions:Int=hostArr.length}應(yīng)用:10/11valhostPartition:HostPartition=newHostPartition(hostList)valallPartitionRDD:RDD[(String,(String,Int))]=host_url_count.partitionBy(hostPartition)6、自定義排序規(guī)則==>定義一個(gè)caseclassGril(yanzhi:Int,nianling:Int)extendsOrdered[Gril]withSerializable{overridedefcompare(that:Gril):Int={valyanzhiResult:Int=pareTo(that.yanzhi)if(yanzhiResult==0){returnpareTo(that.nianling)}returnyanzhiResult}}應(yīng)用:valrdd2:RDD[(String,Int,Int)]=rdd1.sortBy(msg=>Gril(msg._2,msg._3))道如何使用hive的表,同時(shí)也知道去哪個(gè)NameNode哪里都數(shù)據(jù)了。11/11->sqlContext.

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論