




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
【某公司筆試面試題】使用mr,spark,sparksql編寫wordcount程序【Spark版本】valsc=newSparkContext(conf,2)〃加載valwords=paris.map((_,1))valresult=words.reduceByKey(_+_).sortBy(x=>x._1,false)〃打印result.foreach(wds=>{單詞:個數:})sc.stop()【sparksql版本】valsc=newSparkContext(conf)valsqlContext=newSQLContext(sc)〃加載valdf=sqlContext.createDataFrame(rows,structType)sc.stop()的使用,內外部表的區別,分區作用,UDF和Hive優化⑴hive使用:倉庫、工具hive內外部表:內部表數據永久刪除,外部表數據刪除后、其他人依然可以訪問分區作用:防止數據傾斜UDF函數:用戶自定義的函數(主要解決格式,計算問題),需要繼承UDF類java代碼實現classTestUDFHiveextendsUDF{publicStringevalute(Stringstr){try{}catch(Exceptione){}}}Hive優化:看做mapreduce處理排序優化:sortby效率高于orderby分區:使用靜態分區,每個分區對應hdfs上的一個目錄減少job和task數量:使用表鏈接操作解決groupby數據傾斜問題:設置hive.groupby.skewindata=true,那么hive會自動負載均衡小文件合并成大文件:表連接操作使用UDF或UDAF函數:/ggjucheng/archive/2013/02/01/2888819.html的rk設計,Hbase優化aowkey:hbase三維存儲中的關鍵(rowkey:行鍵,columnKey(family+quilaty):列鍵,timestamp:時間戳)owkey字典排序、越短越好使用id+時間:使用hash散列:dsakjkdfuwdsf+9527+20160518應用中,rowkey—般10~100bytes,8字節的整數倍,有利于提高操作系統性能優化分區:RegionSplit()方法不超過3個硬盤配置,便于regionServer管理和數據備份及恢復分配合適的內存給regionserver其他:hbase查詢getscan使用startRow和endRow限制常用操作結束結束了線程2種方式實現、設計模式、鏈表操作、排序(1)2種線程實現類繼承TestCLth=newTestCL()〃類繼承Threadth.start()實現Runnable接口Threadth=newThread(newRunnable(){publicvoidrun(){〃實現}})th.start()(2)設計模式,分為4類創建模式:如工廠模式、單例模式結構模式:代理模式行為模式:觀察者模式線程池模式【最熟悉的一個項目簡介、架構圖、使用的技術、你負責哪塊】集群監控(1)數據庫監控(2)主機監控(3)服務監控(4)活動監控計算機網絡工作原理將分散的機器通過數據通信原理連接起來,實現共享!生態系統hdfs原理及各個模塊的功能mapreduce原理mapreduce優化數據傾斜11系統維護:hadoop升級datanode節點【講解項目要點:數據量、多少人、分工、運行時間、項目使用機器、算法、技術】【學會向對方提問】運行機制及內存原理運行:I加載.class文件II管理并且分配內存III垃圾回收內存原理:IJVM裝載環境和配置II裝載JVM.dll并初始化JVM.dllIV處理class類、yarn參數調優mapreduce.job.jvm.num.tasks默認為1,設置為-1,重用jvm、Hive、impala、zookeeper、Storm、spark原理和使用方法、使用其架構圖講解【某公司筆試題】1、如何為一個hadoop任務設置mappers的數量答案:使用job.setNumMapTask(intn)手動分割,這是不靠譜的官方文檔:"Note:Thisisonlyahinttotheframework"說明這個方法只是提示作用,不起決定性作用實際上要用公式計算:Max(min.split,min(max.split,block))就設置分片的最大最下值computeSplitSize()設置參考:/strongerbit/article/details/74401112、有可能使hadoop任務輸出到多個目錄中么?如果可以,怎么做?答案:在1.X版本后使用MultipleOutputs.java類實現源碼:String.class);String.class);參考:/leejun2005/blog/94706發音:Multiple['m?lt?pl]--》許多的3、如何為一個hadoop任務設置要創建的reducer的數量答案:job.setNumReduceTask(intn)或者調整hdfs-site.xml中的mapred.tasktracker.reduce.tasks.maximum默認參數值4、在hadoop中定義的主要公用InputFormats中,哪一個是默認值:TextInputFormatKeyValuelnputFormatSequenceFileInputFormat答案:A5、兩個類TextInputFormat和KeyValueTextInputFormat的區別?答案:FilelnputFormat的子類:TextlnputFormat(默認類型,鍵是LongWritable類型,值為Text類型,key為當前行在文件中的偏移量,value為當前行本身);KeyValueTextInputFormat(適合文件自帶key,value的情況,只要指定分隔符即可,比較實用,默認是分割);源碼:StringsepStr注意:在自定義輸入格式時,繼承FilelnputFormat父類參考:/vichao/archive/2013/06/06/3118100.html6、在一個運行的hadoop任務中,什么是InputSpilt?答案:InputSplit是MapReduce對文件進行處理和運算的輸入單位,只是一個邏輯概念,每個InputSplit并沒有對文件實際的切割,只是記錄了要處理的數據的位置(包括文件的path和hosts)和長度(由start和length決定),默認情況下與block一樣大。拓展:需要在定義InputSplit后,展開講解mapreduce的原理7、Hadoop框架中,文件拆分是怎么被調用的?答案:JobTracker,創建一個InputFormat的實例,調用它的getSplits()方法,把輸入目錄的文件拆分成FileSplist作為Mappertask的輸入,生成Mappertask加入Queue。源碼中體現了拆分的數量longgoalSize=totalSize/(numSplits==0?1:numSplits);longminSize=Math.max(job.getLong(org.apache.hadoop.mapreduce.lib.input.FileInputFormat.SPLIT_MINSIZE,1),minSplitSize);//minSplitSize默認是1&分別舉例什么情況下使用combiner,什么情況下不會使用?答案:Combiner適用于對記錄匯總的場景(如求和),但是,求平均數的場景就不能使用Combiner了9、Hadoop中job和Tasks之間的區別是什么?答案:job是工作的入口,負責控制、追蹤、管理任務,也是一個進程包含maptask和reducetaskTasks是map和reduce里面的步驟,主要用于完成任務,也是線程10、Hadoop中通過拆分任務到多個節點運行來實現并行計算,但是某些節點運行較慢會拖慢整個任務的運行,hadoop采用何種機制應對這種情況?答案:結果查看監控日志,得知產生這種現象的原因是數據傾斜問題解決:調整拆分mapper的數量(partition數量)增加jvm適當地將reduce的數量變大11、流API中的什么特性帶來可以使mapreduce任務可以以不同語言(如等)實現的靈活性?答案:用可執行文件作為Mapper和Reducer,接受的都是標準輸入,輸出的都是標準輸出參考:/archives/922012、參考下面的M/R系統的場景:--HDFS塊大小為64MB--輸入類型為FileInputFormat--有3個文件的大小分別是:64k65MB127MBHadoop框架會把這些文件拆分為多少塊?答案:64k>一個block65MB---->兩個文件:64MB是一個block,1MB是一個block127MB--->兩個文件:64MB是一個block,63MB是一個block13、Hadoop中的RecordReader的作用是什么?答案:屬于split和mapper之間的一個過程將inputsplit輸出的行為一個轉換記錄,成為key-value的記錄形式提供給mapper14、Map階段結束后,Hadoop框架會處理:Partitioning,shuffle和sort,在這個階段都會發生了什么?答案:MR一共有四個階段,splitmapshuffreduce在執行完map之后,可以對map的輸出結果進行分區,分區:這塊分片確定到哪個reduce去計算(匯總)排序:在每個分區中進行排序,默認是按照字典順序。Group:在排序之后進行分組15、如果沒有定義partitioner,那么數據在被送達reducer前是如何被分區的?答案:Partitioner是在map函數執行context.write()時被調用。用戶可以通過實現自定義的?Partitioner來控制哪個key被分配給哪個?Reducer。查看源碼知道:如果沒有定義partitioner,那么會走默認的分區HashpartitionerpublicclassHashPartitionervK,V>extendsPartitionervK,V>{/**Use{@linkObject#hashCode()}topartition.*/publicintgetPartition(Kkey,Vvalue,intnumReduceTasks){return(key.hashCode()&Integer.MAX_VALUE)%numReduceTasks;}}參考:/gamer_gyt/article/details/4733975516、什么是Combiner?答案:這是一個hadoop優化性能的步驟,它發生在map與reduce之間目的:解決了數據傾斜的問題,減輕網絡壓力,實際上時減少了maper的輸出源碼信息如下:publicvoidreduce(Textkey,IteratorvLongWritable>values,OutputCollectorvText,LongWritable>output,Reporterreporter)throwslOException{LongWritablemaxValue=nuII;while(values.hasNext()){LongWritablevalue=values.next();if(maxValue==null){maxValue=value;}elseif(pareTo(maxValue)>0){maxValue=value;}}output.collect(key,maxValue);}在collect實現類中,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 水電行業2025年技術創新動態與大型水電項目投資效益研究報告001
- 基于風險管理的2025年文化旅游小鎮開發社會穩定評估報告
- 2025年元宇宙社交平臺虛擬身份認同與用戶體驗研究報告
- 二手交易電商平臺信用體系建設與信用評級行業規范研究報告001
- 2025年農業新型經營主體農村金融服務創新與培育路徑研究報告
- 2025屆山東省濟南市萊蕪區蓮河學校英語八年級第二學期期中考試試題含答案
- 2025年農業科技成果轉化中的農業技術培訓案例報告
- 數字孿生在城市基礎設施建設中的應用模式及2025年發展趨勢報告
- 2025年醫藥流通供應鏈優化與成本控制創新策略研究報告
- 工業互聯網平臺數字水印技術實時監測與數據安全預警:2025年數據保護解決方案報告
- 中國概況(英文版)課件
- 2025年中國orc低溫余熱發電系統行業分析及發展趨勢預測
- 中醫護理疑難病例討論
- 2025年江蘇啟東市勞務技術經濟開發有限公司招聘筆試參考題庫含答案解析
- 房屋市政工程施工現場安全風險分級管控與防范措施清單
- 山西焦煤招聘筆試題庫2025
- DB50-T 1808-2025“一表通”智能報表市級業務數據規范
- 房屋市政工程生產安全重大事故隱患判定檢查表(2024版)
- 高企研發費用培訓
- 飼料公司銷售管理制度
- 物業維修電工培訓內容
評論
0/150
提交評論