




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1.Hadoop集群可以運(yùn)行的3個(gè)模式?單機(jī)(本地)模式偽分布式模式全分布式模式2. 單機(jī)(本地)模式中的注意點(diǎn)?在單機(jī)模式(standalone)中不會(huì)存在守護(hù)進(jìn)程,所有東西都運(yùn)行在一個(gè)JVM上。這里同樣沒(méi)有DFS,使用的是本地文件系統(tǒng)。單機(jī)模式適用于開發(fā)過(guò)程中運(yùn)行MapReduce程序,這也是最少使用的一個(gè)模式。3. 偽分布模式中的注意點(diǎn)?偽分布式(Pseudo)適用于開發(fā)和測(cè)試環(huán)境,在這個(gè)模式中,所有守護(hù)進(jìn)程都在同一臺(tái)機(jī)器上運(yùn)行。4. VM是否可以稱為Pseudo?不是,兩個(gè)事物,同時(shí)Pseudo只針對(duì)Hadoop。5. 全分布模式又有什么注意點(diǎn)?全分布模式通常被用于生產(chǎn)環(huán)境,這里我們使
2、用N臺(tái)主機(jī)組成一個(gè)Hadoop集群,Hadoop守護(hù)進(jìn)程運(yùn)行在每臺(tái)主機(jī)之上。這里會(huì)存在Namenode運(yùn)行的主機(jī),Datanode運(yùn)行的主機(jī),以及task tracker運(yùn)行的主機(jī)。在分布式環(huán)境下,主節(jié)點(diǎn)和從節(jié)點(diǎn)會(huì)分開。6. Hadoop是否遵循UNIX模式?是的,在UNIX用例下,Hadoop還擁有“conf”目錄。7. Hadoop安裝在什么目錄下?Cloudera和Apache使用相同的目錄結(jié)構(gòu),Hadoop被安裝在cd/usr/lib/hadoop-0.20/。8. Namenode、Job tracker和task tracker的端口號(hào)是?Namenode,70;Job track
3、er,30;Task tracker,60。9. Hadoop的核心配置是什么?Hadoop的核心配置通過(guò)兩個(gè)xml文件來(lái)完成:1,hadoop-default.xml;2,hadoop-site.xml。這些文件都使用xml格式,因此每個(gè)xml中都有一些屬性,包括名稱和值,但是當(dāng)下這些文件都已不復(fù)存在。10. 那當(dāng)下又該如何配置?Hadoop現(xiàn)在擁有3個(gè)配置文件:1,core-site.xml;2,hdfs-site.xml;3,mapred-site.xml。這些文件都保存在conf/子目錄下。11. RAM的溢出因子是?溢出因子(Spill factor)是臨時(shí)文件中儲(chǔ)存文件的大小,也就
4、是Hadoop-temp目錄。12. fs.mapr.working.dir只是單一的目錄?fs.mapr.working.dir只是一個(gè)目錄。13. hdfs-site.xml的3個(gè)主要屬性?.dir決定的是元數(shù)據(jù)存儲(chǔ)的路徑以及DFS的存儲(chǔ)方式(磁盤或是遠(yuǎn)端)dfs.data.dir決定的是數(shù)據(jù)存儲(chǔ)的路徑fs.checkpoint.dir用于第二Namenode14. 如何退出輸入模式?退出輸入的方式有:1,按ESC;2,鍵入:q(如果你沒(méi)有輸入任何當(dāng)下)或者鍵入:wq(如果你已經(jīng)輸入當(dāng)下),并且按下Enter。15. 當(dāng)你輸入hadoopfsck /造成“connectio
5、n refused java exception”時(shí),系統(tǒng)究竟發(fā)生了什么?這意味著Namenode沒(méi)有運(yùn)行在你的VM之上。16. 我們使用Ubuntu及Cloudera,那么我們?cè)撊ツ睦锵螺dHadoop,或者是默認(rèn)就與Ubuntu一起安裝?這個(gè)屬于Hadoop的默認(rèn)配置,你必須從Cloudera或者Edureka的dropbox下載,然后在你的系統(tǒng)上運(yùn)行。當(dāng)然,你也可以自己配置,但是你需要一個(gè)Linux box,Ubuntu或者是Red Hat。在Cloudera網(wǎng)站或者是Edureka的Dropbox中有安裝步驟。17. “jps”命令的用處?這個(gè)命令可以檢查Namenode、Datanod
6、e、Task Tracker、 Job Tracker是否正常工作。18. 如何重啟Namenode?點(diǎn)擊stop-all.sh,再點(diǎn)擊start-all.sh。鍵入sudo hdfs(Enter),su-hdfs (Enter),/etc/init.d/ha(Enter),及/etc/init.d/hadoop-0.20-namenode start(Enter)。19. Fsck的全名?全名是:File System Check。20. 如何檢查Namenode是否正常運(yùn)行?如果要檢查Namenode是否正常工作,使用命令/etc/init.d/hadoop-0.20-namenode s
7、tatus或者就是簡(jiǎn)單的jps。21. mapred.job.tracker命令的作用?可以讓你知道哪個(gè)節(jié)點(diǎn)是Job Tracker。22. /etc /init.d命令的作用是?/etc /init.d說(shuō)明了守護(hù)進(jìn)程(服務(wù))的位置或狀態(tài),其實(shí)是LINUX特性,和Hadoop關(guān)系不大。23. 如何在瀏覽器中查找Namenode?如果你確實(shí)需要在瀏覽器中查找Namenode,你不再需要localhost:8021,Namenode的端口號(hào)是50070。24. 如何從SU轉(zhuǎn)到Cloudera?從SU轉(zhuǎn)到Cloudera只需要鍵入exit。25. 啟動(dòng)和關(guān)閉命令會(huì)用到哪些文件?Slaves及Mast
8、ers。26. Slaves由什么組成?Slaves由主機(jī)的列表組成,每臺(tái)1行,用于說(shuō)明數(shù)據(jù)節(jié)點(diǎn)。27. Masters由什么組成?Masters同樣是主機(jī)的列表組成,每臺(tái)一行,用于說(shuō)明第二Namenode服務(wù)器。28. hadoop-env.sh是用于做什么的?hadoop-env.sh提供了Hadoop中. JAVA_HOME的運(yùn)行環(huán)境。29. Master文件是否提供了多個(gè)入口?是的你可以擁有多個(gè)Master文件接口。30. Hadoop-env.sh文件當(dāng)下的位置?hadoop-env.sh現(xiàn)在位于conf。31. 在Hadoop_PID_DIR中,PID代表了什么?PID代表了“Pr
9、ocess ID”。32. /var/hadoop/pids用于做什么?/var/hadoop/pids用來(lái)存儲(chǔ)PID。33. perties文件的作用是?perties被用做“Reporting”,控制Hadoop報(bào)告,初始狀態(tài)是“not to report”。34. Hadoop需求什么樣的網(wǎng)絡(luò)?Hadoop核心使用Shell(SSH)來(lái)驅(qū)動(dòng)從節(jié)點(diǎn)上的服務(wù)器進(jìn)程,并在主節(jié)點(diǎn)和從節(jié)點(diǎn)之間使用password-less SSH連接。35. 全分布式環(huán)境下為什么需求password-less SSH?這主要因?yàn)榧褐型ㄐ胚^(guò)于
10、頻繁,Job Tracker需要盡可能快的給Task Tracker發(fā)布任務(wù)。36. 這會(huì)導(dǎo)致安全問(wèn)題嗎?完全不用擔(dān)心。Hadoop集群是完全隔離的,通常情況下無(wú)法從互聯(lián)網(wǎng)進(jìn)行操作。與眾不同的配置,因此我們完全不需要在意這種級(jí)別的安全漏洞,比如說(shuō)通過(guò)互聯(lián)網(wǎng)侵入等等。Hadoop為機(jī)器之間的連接提供了一個(gè)相對(duì)安全的方式。37. SSH工作的端口號(hào)是?SSH工作的端口號(hào)是NO.22,當(dāng)然可以通過(guò)它來(lái)配置,22是默認(rèn)的端口號(hào)。38. SSH中的注意點(diǎn)還包括?SSH只是個(gè)安全的shell通信,可以把它當(dāng)做NO.22上的一種協(xié)議,只需要配置一個(gè)密碼就可以安全的訪問(wèn)。39. 為什么SSH本地主機(jī)需要密碼?
11、在SSH中使用密碼主要是增加安全性,在某些情況下也根本不會(huì)設(shè)置密碼通信。40. 如果在SSH中添加key,是否還需要設(shè)置密碼?是的,即使在SSH中添加了key,還是需要設(shè)置密碼。41. 假如Namenode中沒(méi)有數(shù)據(jù)會(huì)怎么樣?沒(méi)有數(shù)據(jù)的Namenode就不能稱之為Namenode,通常情況下,Namenode肯定會(huì)有數(shù)據(jù)。42. 當(dāng)Job Tracker宕掉時(shí),Namenode會(huì)發(fā)生什么?當(dāng)Job Tracker失敗時(shí),集群仍然可以正常工作,只要Namenode沒(méi)問(wèn)題。43. 是客戶端還是Namenode決定輸入的分片?這并不是客戶端決定的,在配置文件中以及決定分片細(xì)則。44. 是否可以自行搭
12、建Hadoop集群?是的,只要對(duì)Hadoop環(huán)境足夠熟悉,你完全可以這么做。45. 是否可以在Windows上運(yùn)行Hadoop?你最好不要這么做,Red Hat Linux或者是Ubuntu才是Hadoop的最佳操作系統(tǒng)。在Hadoop安裝中,Windows通常不會(huì)被使用,因?yàn)闀?huì)出現(xiàn)各種各樣的問(wèn)題。因此,Windows絕對(duì)不是Hadoop的推薦系統(tǒng)。Hadoop就業(yè)面試寶典 1.0 簡(jiǎn)要描述如何安裝配置apache的一個(gè)開源hadoop,只描述即可,無(wú)需列出具體步驟, 列出具體步驟更好。 答:1使用root賬戶登錄 2 修改IP 3 修改host主機(jī)名 4 配置SSH免密碼登錄 5 關(guān)閉防火墻
13、 6 安裝JDK 7 解壓hadoop安裝包 8 配置hadoop的核心文件 hadoop-env.sh,core-site.xml , mapred-site.xml , hdfs-site.xml 9 配置hadoop環(huán)境變量 10 格式化 hadoop namenode-format 11 啟動(dòng)節(jié)點(diǎn) start-all.sh 2.0 請(qǐng);列出正常的hadoop集群中hadoop都分別需要啟動(dòng) 哪些進(jìn)程,他們的作用分別都是什么,請(qǐng)盡量列的詳細(xì)一些。 答:namenode:管理集群,存儲(chǔ)數(shù)據(jù)的原信息,并管理記錄datanode中的文件信息。 Secondname:可以做冷備,對(duì)一定范圍內(nèi)數(shù)據(jù)
14、做快照性備份。 Datanode:存儲(chǔ)數(shù)據(jù) Jobtracker :管理任務(wù),并將任務(wù)分配給 tasktracker。 Tasktracker: 執(zhí)行JobTracker分配的任務(wù)。 3.0請(qǐng)寫出以下的shell命令 (1)殺死一個(gè)job (2)刪除hdfs上的 /tmp/aaa目錄 (3) 加入一個(gè)新的存儲(chǔ)節(jié)點(diǎn)和刪除一個(gè)節(jié)點(diǎn)需要執(zhí)行的命令 答:(1)hadoop job list 得到j(luò)ob的id,然后執(zhí) 行 hadoop job -kill jobId就可以殺死一個(gè)指定jobId的job工作了。 (2)hadoop fs -rmr /tmp/aaa (3) 增加一個(gè)新的節(jié)點(diǎn)在新的幾點(diǎn)上執(zhí)行
15、 Hadoop daemon.sh start datanode Hadooop daemon.sh start tasktracker 然后在主節(jié)點(diǎn)中執(zhí)行 hadoop dfsadmin -refreshnodes 刪除一個(gè)節(jié)點(diǎn)的時(shí)候,只需要在主節(jié)點(diǎn)執(zhí)行 hadoop mradmin -refreshnodes 4.0 請(qǐng)列出你所知道的hadoop調(diào)度器,并簡(jiǎn)要說(shuō)明其工作方法 答:Fifo schedular :默認(rèn),先進(jìn)先出的原則 Capacity schedular :計(jì)算能力調(diào)度器,選擇占用最小、優(yōu)先級(jí)高的先執(zhí)行,依此類推。 Fair schedular:公平調(diào)度,所有的 job 具有
16、相同的資源。 5.0 請(qǐng)列出你在工作中使用過(guò)的開發(fā)mapreduce的語(yǔ)言 答:java,hive 6.0 當(dāng)前日志采樣格式為 a , b , c , d b , b , f , e a , a , c , f 請(qǐng)你用最熟悉的語(yǔ)言編寫mapreduce,計(jì)算第四列每個(gè)元素出現(xiàn)的個(gè)數(shù) Static final String 答: public class WordCount1 public static final String INPUT_PATH = "hdfs:/hadoop0:9000/in" public static final String OUT_PATH =
17、 "hdfs:/hadoop0:9000/out" public static void main(String args) throws Exception Configuration conf = new Configuration(); FileSystem fileSystem = FileSystem.get(conf); if(fileSystem.exists(new Path(OUT_PATH) fileSystem.delete(new Path(OUT_PATH),true); Job job = new Job(conf,WordCount1.clas
18、s.getSimpleName(); /1.0讀取文件,解析成key,value對(duì) FileInputFormat.setInputPaths(job,new Path(INPUT_PATH); /2.0寫上自己的邏輯,對(duì)輸入的可以,value進(jìn)行處理,轉(zhuǎn)換成新的key,value對(duì)進(jìn)行輸出 job.setMapperClass(MyMapper.class); job.setMapOutputKeyClass(Text.class); job.setMapOutputValueClass(LongWritable.class); /3.0對(duì)輸出后的數(shù)據(jù)進(jìn)行分區(qū) /4.0對(duì)分區(qū)后的數(shù)據(jù)進(jìn)行排序
19、,分組,相同key的value放到一個(gè)集合中 /5.0對(duì)分組后的數(shù)據(jù)進(jìn)行規(guī)約 /6.0對(duì)通過(guò)網(wǎng)絡(luò)將map輸出的數(shù)據(jù)拷貝到reduce節(jié)點(diǎn) /7.0 寫上自己的reduce函數(shù)邏輯,對(duì)map輸出的數(shù)據(jù)進(jìn)行處理 job.setReducerClass(MyReducer.class); job.setOutputKeyClass(Text.class); job.setOutputValueClass(LongWritable.class); FileOutputFormat.setOutputPath(job, new Path(OUT_PATH); job.waitForCompletion(
20、true); static class MyMapper extends Mapper<LongWritable, Text, Text, LongWritable> Override protected void map(LongWritable k1, Text v1, org.apache.hadoop.mapreduce.Mapper.Context context) throws IOException, InterruptedException String split = v1.toString().split("t"); for(String w
21、ords :split) context.write(split3, 1); static class MyReducer extends Reducer<Text, LongWritable, Text, LongWritable> protected void reduce(Text k2, Iterable<LongWritable> v2, org.apache.hadoop.mapreduce.Reducer.Context context) throws IOException, InterruptedException Long count = 0L; f
22、or(LongWritable time : v2) count += time.get(); context.write(v2, new LongWritable(count); 7.0 你認(rèn)為用java , streaming , pipe方式開發(fā)map/reduce , 各有哪些優(yōu)點(diǎn) 就用過(guò) java 和 hiveQL。 Java 寫 mapreduce 可以實(shí)現(xiàn)復(fù)雜的邏輯,如果需求簡(jiǎn)單,則顯得繁瑣。 HiveQL 基本都是針對(duì) hive 中的表數(shù)據(jù)進(jìn)行編寫,但對(duì)復(fù)雜的邏輯很難進(jìn)行實(shí)現(xiàn)。寫 起來(lái)簡(jiǎn)單。 8.0 hive有哪些方式保存元數(shù)據(jù),各有哪些優(yōu)點(diǎn) 三種:內(nèi)存數(shù)據(jù)庫(kù) derby,挺小
23、,不常用 。 本地 mysql。常用 遠(yuǎn)程端 mysql。不常用 上網(wǎng)上找了下專業(yè)名稱:single user mode.multi user mode.remote user mode 9.0 請(qǐng)簡(jiǎn)述hadoop怎樣實(shí)現(xiàn)二級(jí)排序 第一種方法是,Reducer將給定key的所有值都緩存起來(lái),然后對(duì)它們?cè)僮鲆粋€(gè)Reducer內(nèi)排序。但是,由于Reducer需要保存給定key的所有值,可能會(huì)導(dǎo)致出現(xiàn)內(nèi)存耗盡的錯(cuò)誤。 第二種方法是,將值的一部分或整個(gè)值加入原始key,生成一個(gè)合成key。這兩種方法各有優(yōu)勢(shì),第一種方法可能會(huì)更快一些(但有內(nèi)存耗盡的危險(xiǎn)),第二種方法則是將排序的任務(wù)交給MapReduc
24、e框架,更符合Hadoop/Reduce的設(shè)計(jì)思想。這篇文章里選擇的是第二種。我們將編寫一個(gè)Partitioner,確保擁有相同key(原始key,不包括添加的部分)的所有數(shù)據(jù)被發(fā)往同一個(gè)Reducer,還將編寫一個(gè)Comparator,以便數(shù)據(jù)到達(dá)Reducer后即按原始key分組。 10.簡(jiǎn)述hadoop實(shí)現(xiàn)jion的幾種方法 利用dataJoin來(lái)實(shí)現(xiàn)mapreduce的jion問(wèn)題。 11.0 請(qǐng)用java實(shí)現(xiàn)非遞歸二分查詢 1. public class BinarySearchClass 2. 3. 4. public static int binary_search(int ar
25、ray, int value) 5. 6. int beginIndex = 0;/ 低位下標(biāo) 7. int endIndex = array.length - 1;/ 高位下標(biāo) 8. int midIndex = -1; 9. while (beginIndex <= endIndex) 10. midIndex = beginIndex + (endIndex - beginIndex) / 2;/防止溢出 11. if (value = arraymidIndex) 12. return midIndex; 13. else if (value < arraymidIndex
26、) 14. endIndex = midIndex - 1; 15. else 16. beginIndex = midIndex + 1; 17. 18. 19. return -1; 20. /找到了,返回找到的數(shù)值的下標(biāo),沒(méi)找到,返回-1 21. 22. 23. 24. /start 提示:自動(dòng)閱卷起始唯一標(biāo)識(shí),請(qǐng)勿刪除或增加。 25. public static void main(String args) 26. 27. System.out.println("Start."); 28. int myArray = new int 1, 2, 3, 5, 6, 7
27、, 8, 9 ; 29. System.out.println("查找數(shù)字8的下標(biāo):"); 30. System.out.println(binary_search(myArray, 8); 31. 32. /end /提示:自動(dòng)閱卷結(jié)束唯一標(biāo)識(shí),請(qǐng)勿刪除或增加。 33. 12.0 請(qǐng)簡(jiǎn)述mapreduce中的combine和partion的作用 答:combiner是發(fā)生在map的最后一個(gè)階段,其原理也是一個(gè)小型的reducer,主要作用是減少輸出到reduce的個(gè)數(shù),減少reducer的輸入,提高reducer的執(zhí)行效率。 Partion的主要作用就是指定輸出到redu
28、ce的個(gè)數(shù)的。 13.0 hive內(nèi)部表和外部表的區(qū)別 Hive 創(chuàng)建內(nèi)部表時(shí),會(huì)將數(shù)據(jù)移動(dòng)到數(shù)據(jù)倉(cāng)庫(kù)指向的路徑;若創(chuàng)建外部表,僅記錄數(shù)據(jù)所在的路徑, 不對(duì)數(shù)據(jù)的位置做任何改變。在刪除表的時(shí)候,內(nèi)部表的元數(shù)據(jù)和數(shù)據(jù)會(huì)被一起刪除, 而外部表只刪除元數(shù)據(jù),不刪除數(shù)據(jù)。這樣外部表相對(duì)來(lái)說(shuō)更加安全些,數(shù)據(jù)組織也更加靈活,方便共享源數(shù)據(jù)。 14. Hbase的rowKey怎么創(chuàng)建比較好?列簇怎么創(chuàng)建比較好? 答:rowKey最好要?jiǎng)?chuàng)建有規(guī)則的rowKey,即最好是有序的。HBase中一張表最好只創(chuàng)建一到兩個(gè)列族比較好,因?yàn)镠Base不能很好的處理多個(gè)列族。 15. 用mapreduce怎么處理數(shù)據(jù)傾斜問(wèn)
29、題 在mapreduce聚合key中所有values的時(shí)候,如果一個(gè)key對(duì)應(yīng)了很多values,就會(huì)產(chǎn)生數(shù)據(jù)傾斜的問(wèn)題。數(shù)據(jù)傾斜主要就是某個(gè)key下面對(duì)應(yīng)的value太多,導(dǎo)致某個(gè)reduce節(jié)點(diǎn)執(zhí)行的數(shù)據(jù)過(guò)多,然后產(chǎn)生某個(gè)或者某幾個(gè)reduce節(jié)點(diǎn)的執(zhí)行效率過(guò)低,導(dǎo)致整個(gè)集群中的任務(wù)執(zhí)行效率較慢,可以使用partion對(duì)數(shù)據(jù)過(guò)多的節(jié)點(diǎn)進(jìn)行再劃分,劃分成多個(gè)小的數(shù)據(jù)塊,輸入到reduce進(jìn)行處理。 16. hadoop框架怎么來(lái)優(yōu)化 答:hadoop優(yōu)化的范圍太寬泛了,可以從某個(gè)方面具體來(lái)談一談,比如說(shuō)HBase的rowKey和列族的創(chuàng)建的來(lái)進(jìn)行數(shù)據(jù)存儲(chǔ)的優(yōu)化,可以從網(wǎng)絡(luò)的拷貝對(duì)數(shù)據(jù)的優(yōu)化,
30、可以從mapreduce對(duì)數(shù)據(jù)的處理來(lái)談優(yōu)化,可以從參數(shù)方面來(lái)說(shuō)優(yōu)化等。 17. hbase內(nèi)部機(jī)制是什么 答:內(nèi)部機(jī)制更多的是借助nosql數(shù)據(jù)的關(guān)系模型,是建立的hdfs之上,提供高可靠性、高性能、列存儲(chǔ)、可伸縮、實(shí)時(shí)讀寫的數(shù)據(jù)庫(kù)系統(tǒng)。 18. 我們?cè)陂_發(fā)分布式計(jì)算job的時(shí)候,是否可以去掉reduce階段 答:可以,例如我們的集群就是為了存儲(chǔ)文件而設(shè)計(jì)的,不涉及到數(shù)據(jù)的計(jì)算,就可以將mapReduce都省掉。 19 hdfs的數(shù)據(jù)壓縮算法 答:可以使用sequenceFile和mapFile來(lái)對(duì)小文件進(jìn)行壓縮,壓縮成大文件,然后存儲(chǔ),減輕namenode的內(nèi)存壓力。 20. mapred
31、uce的調(diào)度模式 答:公平調(diào)度模式和容量調(diào)度模式 21. hive底層與數(shù)據(jù)庫(kù)交互原理 答:hive有一套自己的sql解析引擎,稱為metastore,存儲(chǔ)在mysql或者derby數(shù)據(jù)庫(kù)中,可以將sql語(yǔ)句轉(zhuǎn)化為mapreducejob任務(wù)執(zhí)行。 22. hbase過(guò)濾器實(shí)現(xiàn)原則 答:過(guò)濾器必須實(shí)現(xiàn)HBase Jar包中的Filter接口,或者繼承擴(kuò)展一個(gè)實(shí)現(xiàn)了該接口的抽象類 23. reduce之后數(shù)據(jù)的輸出量有多大 24. 現(xiàn)場(chǎng)出問(wèn)題測(cè)試mapreduce掌握情況和hive的ql語(yǔ)言掌握情況 25.datanode在什么情況下不會(huì)備份數(shù)據(jù) 答:在配置文件中設(shè)置文件副本數(shù)為1 bine出現(xiàn)
32、在哪個(gè)過(guò)程 答:map階段的最后一個(gè)過(guò)程。 27. hdfs的體系結(jié)構(gòu) 答:HDFS采用了主從(Master/Slave)結(jié)構(gòu)模型,一個(gè)HDFS集群是由一個(gè)NameNode和若干個(gè)DataNode組成的。其中NameNode作為主服務(wù)器,管理文件系統(tǒng)的命名空間和客戶端對(duì)文件的訪問(wèn)操作;集群中的DataNode管理存儲(chǔ)的數(shù)據(jù) 100. 假設(shè)我們有其他的日志是不是可以對(duì)這個(gè)日志有其他的業(yè)務(wù)分析?這些業(yè)務(wù)分析都有 什么? 101. job 的運(yùn)行流程(提交一個(gè) job 的流程)? 102Hadoop 生態(tài)圈中各種框架的運(yùn)用場(chǎng)景? 103. hive 中的壓縮格式 RCFile、TextFile、Se
33、quenceFile 各有什么區(qū)別? 以上 3 種格式一樣大的文件哪個(gè)占用空間大小.等等 104假如:Flume 收集到的數(shù)據(jù)很多個(gè)小文件,我需要寫 MR 處理時(shí)將這些文件合并 (是在 MR 中進(jìn)行優(yōu)化,不讓一個(gè)小文件一個(gè) MapReduce) 他們公司主要做的是中國(guó)電信的流量計(jì)費(fèi)為主,專門寫 MR。 105. 解釋“hadoop”和“hadoop 生態(tài)系統(tǒng)”兩個(gè)概念 106. 說(shuō)明 Hadoop 2.0 的基本構(gòu)成。 107. 相比于 HDFS1.0, HDFS 2.0 最主要的改進(jìn)在哪幾方面? 108. 試使用“步驟 1,步驟 2,步驟 3.”說(shuō)明 YARN 中運(yùn)行應(yīng)用程序的基本流程。 1
34、09. MapReduce 2.0”與“YARN”是否等同,嘗試解釋說(shuō)明 110. MapReduce 2.0 中,MRAppMaster 主要作用是什么,MRAppMaster 如何實(shí)現(xiàn)任務(wù) 容錯(cuò)的? 111. 為什么會(huì)產(chǎn)生 yarn,它解決了什么問(wèn)題,有什么優(yōu)勢(shì)? 112. 集群多少臺(tái),數(shù)據(jù)量多大,吞吐量是多大,每天處理多少 G 的數(shù)據(jù)? 113. 自動(dòng)化運(yùn)維了解過(guò)嗎,你們是否是自動(dòng)化運(yùn)維管理? 114. 數(shù)據(jù)備份,你們是多少份,如果數(shù)據(jù)超過(guò)存儲(chǔ)容量,你們?cè)趺刺幚恚?115. 怎么提升多個(gè) JOB 同時(shí)執(zhí)行帶來(lái)的壓力,如何優(yōu)化,說(shuō)說(shuō)思路? 116. 你們用 HBASE 存儲(chǔ)什么數(shù)據(jù)? 11
35、7. 你們的 hive 處理數(shù)據(jù)能達(dá)到的指標(biāo)是多少? 118.hadoop中RecorderReader的作用是什么? 1、 在hadoop中定義的主要公用InputFormat中,哪個(gè)是默認(rèn)值? FileInputFormat 2、 兩個(gè)類TextInputFormat和KeyValueInputFormat的區(qū)別是什么? 答:TextInputFormat主要是用來(lái)格式化輸入的文本文件的,KeyValueInputFormat則主要是用來(lái)指定輸入輸出的key,value類型的 3、 在一個(gè)運(yùn)行的hadoop任務(wù)中,什么是InputSplit? InputSplit是InputFormat中
36、的一個(gè)方法,主要是用來(lái)切割輸入文件的,將輸入文件切分成多個(gè)小文件, 然后每個(gè)小文件對(duì)應(yīng)一個(gè)map任務(wù) 4、 Hadoop框架中文件拆分是怎么調(diào)用的? InputFormat -> TextInputFormat -> RecordReader -> LineRecordReader -> LineReader 5、 參考下列M/R系統(tǒng)的場(chǎng)景:hdfs塊大小為64MB,輸入類為FileInputFormat,有3個(gè)文件的大小分別為64KB, 65MB, 127MB Hadoop框架會(huì)把這些文件拆分為多少塊? 5塊 6、 hadoop中RecordReader的作用是什么?
37、 RecorderReader是一個(gè)接口,主要是用來(lái)讀取文件的輸入鍵值對(duì)的,我們也可以自定義輸入的key,value對(duì)的讀取規(guī)則 7、 Map階段結(jié)束后,Hadoop框架會(huì)處理:Partitioning, Shuffle和Sort,在這個(gè)階段都發(fā)生了什么? Partition是對(duì)輸出的key,value進(jìn)行分區(qū),可以自定義分區(qū),按照業(yè)務(wù)需求,將map的輸出歸分到多個(gè)不同的文件中 將map的輸出作為輸入傳給reducer 稱為shuffle sort是排序的過(guò)程,將map的輸出,作為reduce的輸入之前,我們可以自定義排序,按照key來(lái)對(duì)map的輸出進(jìn)行排序 8、 如果沒(méi)有定義partitio
38、ner,那數(shù)據(jù)在被送達(dá)reducer前是如何被分區(qū)的? hadoop有一個(gè)默認(rèn)的分區(qū)類,HashPartioer類,通過(guò)對(duì)輸入的k2去hash值來(lái)確認(rèn)map輸出的k2,v2送到哪一個(gè)reduce中去執(zhí)行。 9、 什么是combiner? combiner就是規(guī)約操作,通過(guò)對(duì)map輸出的數(shù)量進(jìn)行規(guī)約,可以減少reduce的數(shù)量,提高執(zhí)行效率 combiner的輸入輸出類型必須和mapper的輸出以及reducer的輸入類型一致 10、分別舉例什么情況要使用 combiner,什么情況不使用? 求平均數(shù)的時(shí)候就不需要用combiner,因?yàn)椴粫?huì)減少reduce執(zhí)行數(shù)量。在其他的時(shí)候,可以依據(jù)情況,
39、使用combiner, 來(lái)減少map的輸出數(shù)量,減少拷貝到reduce的文件,從而減輕reduce的壓力,節(jié)省網(wǎng)絡(luò)開銷,提升執(zhí)行效率 11、Hadoop中job和tasks之間的區(qū)別是什么? 首先通過(guò)jobTracker接收到了用戶的操作請(qǐng)求之后,就會(huì)產(chǎn)生job任務(wù),job然后將任務(wù)分配給tasks分配給多個(gè)機(jī)器去并行的 執(zhí)行,通過(guò)將job任務(wù)分解為多個(gè)tasks任務(wù)并行的執(zhí)行,提高了執(zhí)行的效率。 12、hadoop中通過(guò)拆分任務(wù)到多個(gè)節(jié)點(diǎn)運(yùn)行來(lái)實(shí)現(xiàn)并行計(jì)算,但某些節(jié)點(diǎn)運(yùn)行較慢會(huì)拖慢整個(gè)任務(wù)的運(yùn)行,hadoop采用全程機(jī)制應(yīng)對(duì)這個(gè)情況? 對(duì)于那些較慢的tasks任務(wù),hadoop 13、流AP
40、I中的什么特性帶來(lái)可以使map/reduce任務(wù)可以以不同語(yǔ)言(如perl, ruby, awk等)實(shí)現(xiàn)的靈活性? 14、有可能使hadoop任務(wù)輸出到多個(gè)目錄中嗎?如果可以,怎么做? 可以,hadoop 15、如何為一個(gè)hadoop任務(wù)設(shè)置mappers的數(shù)量? 1 map的數(shù)量 map的數(shù)量通常是由hadoop集群的DFS塊大小確定的,也就是輸入文件的總塊數(shù),正常的map數(shù)量的并行規(guī)模大致是每一個(gè)Node是10100個(gè),對(duì)于CPU消耗較小的作業(yè)可以設(shè)置Map數(shù)量為300個(gè)左右,但是由于hadoop的沒(méi)一個(gè)任務(wù)在初始化時(shí)需要一定的時(shí)間,因此比較合理的情況是每個(gè)map執(zhí)行的時(shí)間至少超過(guò)1分鐘。
41、具體的數(shù)據(jù)分片是這樣的,InputFormat在默認(rèn)情況下會(huì)根據(jù)hadoop集群的DFS塊大小進(jìn)行分片,每一個(gè)分片會(huì)由一個(gè)map任務(wù)來(lái)進(jìn)行處理,當(dāng)然用戶還是可以通過(guò)參數(shù)mapred.min.split.size參數(shù)在作業(yè)提交客戶端進(jìn)行自定義設(shè)置。還有一個(gè)重要參數(shù)就是mapred.map.tasks,這個(gè)參數(shù)設(shè)置的map數(shù)量?jī)H僅是一個(gè)提示,只有當(dāng)InputFormat 決定了map任務(wù)的個(gè)數(shù)比mapred.map.tasks值小時(shí)才起作用。同樣,Map任務(wù)的個(gè)數(shù)也能通過(guò)使用JobConf 的conf.setNumMapTasks(int num)方法來(lái)手動(dòng)地設(shè)置。這個(gè)方法能夠用來(lái)增加map任務(wù)的
42、個(gè)數(shù),但是不能設(shè)定任務(wù)的個(gè)數(shù)小于Hadoop系統(tǒng)通過(guò)分割輸入數(shù)據(jù)得到的值。當(dāng)然為了提高集群的并發(fā)效率,可以設(shè)置一個(gè)默認(rèn)的map數(shù)量,當(dāng)用戶的map數(shù)量較小或者比本身自動(dòng)分割的值還小時(shí)可以使用一個(gè)相對(duì)交大的默認(rèn)值,從而提高整體hadoop集群的效率。 16、如何為一個(gè)hadoop任務(wù)設(shè)置要?jiǎng)?chuàng)建reduder的數(shù)量? 2 reduece的數(shù)量 reduce在運(yùn)行時(shí)往往需要從相關(guān)map端復(fù)制數(shù)據(jù)到reduce節(jié)點(diǎn)來(lái)處理,因此相比于map任務(wù)。reduce節(jié)點(diǎn)資源是相對(duì)比較缺少的,同時(shí)相對(duì)運(yùn)行較慢,正確的reduce任務(wù)的個(gè)數(shù)應(yīng)該是0.95或者1.75 *(節(jié)點(diǎn)數(shù) ×mapred.taskt
43、racker.tasks.maximum參數(shù)值)。如果任務(wù)數(shù)是節(jié)點(diǎn)個(gè)數(shù)的0.95倍,那么所有的reduce任務(wù)能夠在 map任務(wù)的輸出傳輸結(jié)束后同時(shí)開始運(yùn)行。如果任務(wù)數(shù)是節(jié)點(diǎn)個(gè)數(shù)的1.75倍,那么高速的節(jié)點(diǎn)會(huì)在完成他們第一批reduce任務(wù)計(jì)算之后開始計(jì)算第二批 reduce任務(wù),這樣的情況更有利于負(fù)載均衡。同時(shí)需要注意增加reduce的數(shù)量雖然會(huì)增加系統(tǒng)的資源開銷,但是可以改善負(fù)載勻衡,降低任務(wù)失敗帶來(lái)的負(fù)面影響。同樣,Reduce任務(wù)也能夠與 map任務(wù)一樣,通過(guò)設(shè)定JobConf 的conf.setNumReduceTasks(int num)方法來(lái)增加任務(wù)個(gè)數(shù)。 xxx信息技術(shù)有限公司
44、 1、你們的集群規(guī)模? 開發(fā)集群:10臺(tái)(8臺(tái)可用)8核cpu 2、你們的數(shù)據(jù)是用什么導(dǎo)入到數(shù)據(jù)庫(kù)的?導(dǎo)入到什么數(shù)據(jù)庫(kù)? 處理之前的導(dǎo)入:通過(guò)hadoop命令導(dǎo)入到hdfs文件系統(tǒng) 處理完成之后的導(dǎo)出:利用hive處理完成之后的數(shù)據(jù),通過(guò)sqoop導(dǎo)出到mysql數(shù)據(jù)庫(kù)中,以供報(bào)表層使用 3、你們業(yè)務(wù)數(shù)據(jù)量多大?有多少行數(shù)據(jù)?(面試了三家,都問(wèn)這個(gè)問(wèn)題) 開發(fā)時(shí)使用的是部分?jǐn)?shù)據(jù),不是全量數(shù)據(jù),有將近一億行(8、9千萬(wàn),具體不詳,一般開發(fā)中也沒(méi)人會(huì)特別關(guān)心這個(gè)問(wèn)題) 4、你們處理數(shù)據(jù)是直接讀數(shù)據(jù)庫(kù)的數(shù)據(jù)還是讀文本數(shù)據(jù)? 將日志數(shù)據(jù)導(dǎo)入到hdfs之后進(jìn)行處理 5、你們寫hive的hql語(yǔ)句,大概有
45、多少條? 不清楚,我自己寫的時(shí)候也沒(méi)有做過(guò)統(tǒng)計(jì) 6、你們提交的job任務(wù)大概有多少個(gè)?這些job執(zhí)行完大概用多少時(shí)間?(面試了三家,都問(wèn)這個(gè)問(wèn)題) 沒(méi)統(tǒng)計(jì)過(guò),加上測(cè)試的,會(huì)與很多 7、hive跟hbase的區(qū)別是? 這個(gè)可以百度 8、你在項(xiàng)目中主要的工作任務(wù)是? 利用hive分析數(shù)據(jù) 9、你在項(xiàng)目中遇到了哪些難題,是怎么解決的? 某些任務(wù)執(zhí)行時(shí)間過(guò)長(zhǎng),且失敗率過(guò)高,檢查日志后發(fā)現(xiàn)沒(méi)有執(zhí)行完就失敗,原因出在hadoop的job的timeout過(guò)短(相對(duì)于集群的能力來(lái)說(shuō)),設(shè)置長(zhǎng)一點(diǎn)即可 10、你自己寫過(guò)udf函數(shù)么?寫了哪些? 這個(gè)我沒(méi)有寫過(guò) 11、你的項(xiàng)目提交到j(luò)ob的時(shí)候數(shù)據(jù)量有多大?(面試
46、了三家,都問(wèn)這個(gè)問(wèn)題) 不清楚是要問(wèn)什么 12、reduce后輸出的數(shù)據(jù)量有多大? 不清楚 1.一個(gè)網(wǎng)絡(luò)商城1天大概產(chǎn)生多少G的日志? 2.大概有多少條日志記錄(在不清洗的情況下)? 3.日訪問(wèn)量大概有多少個(gè)? 4.注冊(cè)數(shù)大概多少? 5.我們的日志是不是除了apache的訪問(wèn)日志是不是還有其他的日志? 6.假設(shè)我們有其他的日志是不是可以對(duì)這個(gè)日志有其他的業(yè)務(wù)分析?這些業(yè)務(wù)分析都有什么(*) 1.問(wèn):你們的服務(wù)器有多少臺(tái)? 2.問(wèn):你們服務(wù)器的內(nèi)存多大? 3.問(wèn):你們的服務(wù)器怎么分布的?(這里說(shuō)地理位置分布,最好也從機(jī)架方面也談?wù)劊?4.問(wèn):你平常在公司都干些什么(一些建議) 下面是HBASE我
47、非常不懂的地方: 1.hbase怎么預(yù)分區(qū)? 2.hbase怎么給web前臺(tái)提供接口來(lái)訪問(wèn)(HTABLE可以提供對(duì)HTABLE的訪問(wèn),但是怎么查詢同一條記錄的多個(gè)版本數(shù)據(jù))? 3.htable API有沒(méi)有線程安全問(wèn)題,在程序中是單例還是多例? 4.我們的hbase大概在公司業(yè)務(wù)中(主要是網(wǎng)上商城)大概都幾個(gè)表,幾個(gè)表簇,大概都存什么樣的數(shù)據(jù)? 5.hbase的并發(fā)問(wèn)題? 1、將現(xiàn)有邏輯在Spark上面實(shí)現(xiàn)。2、數(shù)據(jù)傾斜怎么處理? 數(shù)據(jù)傾斜有很多解決方案,本例子簡(jiǎn)要介紹一種實(shí)現(xiàn)方式,假設(shè)表A 和表B連接,表A 數(shù)據(jù)傾斜,只有一個(gè)key傾斜,首先對(duì)A進(jìn)行采樣,統(tǒng)計(jì)出最傾斜的key,將A 表分隔為
48、A1 只有傾斜 key, A2 不包含傾斜key, 然后分別與 表B 連接。 最后將結(jié)果合并, union3 、各完成一個(gè)awk和sed的例子,最簡(jiǎn)單的應(yīng)用即可,并說(shuō)明。 cat /etc/passwd |awk -F ':' 'print $1' 讀取文件,指定文本分隔符,然后打印第一個(gè)域 cat test.sh | sed '2,50d' 讀取文件的每一行,然后對(duì)每一行進(jìn)行處理后打印在控制臺(tái), 有很多模式,很多方法。還可以直接修改文件4、簡(jiǎn)要描述你知道的數(shù)據(jù)挖掘算法和使用場(chǎng)景(一)基于分類模型的案例 ( 1)垃圾郵件的判別 通常會(huì)采用樸素貝葉
49、斯的方法進(jìn)行判別 (2)醫(yī)學(xué)上的腫瘤判斷 通過(guò)分類模型識(shí)別 (二)基于預(yù)測(cè)模型的案例 (1)紅酒品質(zhì)的判斷 分類回歸樹模型進(jìn)行預(yù)測(cè)和判斷紅酒的品質(zhì) ( 2)搜索引擎的搜索量和股價(jià)波動(dòng)(三)基于關(guān)聯(lián)分析的案例:沃爾瑪?shù)钠【颇虿迹ㄋ模┗诰垲惙治龅陌咐毫闶劭蛻艏?xì)分(五)基于異常值分析的案例:支付中的交易欺詐偵測(cè)(六)基于協(xié)同過(guò)濾的案例:電商猜你喜歡和推薦引擎(七)基于社會(huì)網(wǎng)絡(luò)分析的案例:電信中的種子客戶(八)基于文本分析的案例(1)字符識(shí)別:掃描王APP(2)文學(xué)著作與統(tǒng)計(jì):紅樓夢(mèng)歸屬5、列舉你知道的常用的Hadoop管理和監(jiān)控的命令、比如hdfs dfs -mkdir /usr -ls -ca
50、t -text -cp -put -chmod -chown -du -get -copyFromLocal -copyToLocal -mv -rm - tail -chgrp6、評(píng)述hadoop運(yùn)行原理 站在高處,大的方面講解 1、有hdfs 負(fù)責(zé)數(shù)據(jù)存放 是Hadoop的分布式文件存儲(chǔ)系統(tǒng)將大文件分解為多個(gè)Block,每個(gè)Block保存多個(gè)副本。提供容錯(cuò)機(jī)制,副本丟失或者宕機(jī)時(shí)自動(dòng)恢復(fù)。默認(rèn)每個(gè)Block保存3個(gè)副本,64M為1個(gè)Block。將Block按照key-value映射到內(nèi)存當(dāng)中。 2、有mapreduce負(fù)責(zé)計(jì)算,Map(映射)和Reduce(歸約) 7、講述mapreduc
51、e的原理ApplicationMaster 是一個(gè)詳細(xì)的框架庫(kù),它結(jié)合從 ResourceManager 獲得的資源和 NodeManager 協(xié)同工作來(lái)運(yùn)行和監(jiān)控任務(wù)。ResourceManager 支持分層級(jí)的應(yīng)用隊(duì)列,這些隊(duì)列享有集群一定比例的資源。從某種意義上講它就是一個(gè)純粹的調(diào)度器,ApplicationMaster 的職責(zé)有:向調(diào)度器索要適當(dāng)?shù)馁Y源容器,運(yùn)行任務(wù),跟蹤應(yīng)用程序的狀態(tài)和監(jiān)控它們的進(jìn)程,處理任務(wù)的失敗原因。輸入分片(input split)map階段:combiner階段:8、JVM&垃圾回收機(jī)制三個(gè)代:年輕代(Young Generation)、年老代(Old
52、 Generation)和持久代(Permanent Generation)。9、找出公共好友: 原理:A 有好友 B ,C,D F 有好友 D E F 其實(shí)A 的好友也是他好友的好友 其實(shí)F 的好友也是他的好友的好友 那么D 的共同好友就是 A F 10、combiner作用 Combiner最基本是實(shí)現(xiàn)本地key的聚合,對(duì)map輸出的key排序、value進(jìn)行迭代。 Combiner還有本地reduce功能(其本質(zhì)上就是一個(gè)reduce): 使用Combiner先完成在map端的本地聚合,可以減少網(wǎng)絡(luò)傳輸數(shù)據(jù)量,提高性能。 平均數(shù)的歸約算法不能多次調(diào)用。11、在mr環(huán)節(jié)中,那些環(huán)節(jié)需要優(yōu)化
53、,如何優(yōu)化,請(qǐng)?jiān)敿?xì)說(shuō)明。 1、 setNumReduceTasks 適當(dāng)?shù)脑O(shè)置reduce的數(shù)量,如果數(shù)據(jù)量比較大,那么可以增加reduce的數(shù)量 2、適當(dāng)?shù)臅r(shí)候使用 combine 函數(shù),減少網(wǎng)絡(luò)傳輸數(shù)據(jù)量 3、壓縮map和reduce的輸出數(shù)據(jù) 4、使用SequenceFile二進(jìn)制文件。 5、通過(guò)application 的ui頁(yè)面觀察job的運(yùn)行參數(shù) 6、太多小文件,造成map任務(wù)過(guò)多的問(wèn)題,應(yīng)該可以先合并小文件,或者有一個(gè)特定的map作為處理小文件的輸入 7、map端效率低原因分析源文件的大小遠(yuǎn)小于HDFS的塊的大小。這意味著任務(wù)的開啟和停止要耗費(fèi)更多的時(shí)間,就沒(méi)有足夠的時(shí)間來(lái)讀取并處理輸入數(shù)據(jù)。源文件
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 第2.6講 指數(shù)與指數(shù)函數(shù)(解析版)-2024年高考數(shù)學(xué)一輪復(fù)習(xí)精講精練寶典(新高考專用)
- 浙教版2023小學(xué)信息技術(shù)六年級(jí)上冊(cè)《算法的多樣性》教學(xué)設(shè)計(jì)及反思
- (一模)萍鄉(xiāng)市2025年高三第一次模擬考試歷史試卷(含答案解析)
- 2025年B2B營(yíng)銷業(yè)務(wù) AI提示詞手冊(cè)
- 陶瓷攔水帶施工方案
- 高樓地鐵隧道施工方案
- 砂漿基礎(chǔ)知識(shí)培訓(xùn)課件
- 2025年山東聊城高三一模高考數(shù)學(xué)試卷試題(含答案詳解)
- 2025年藥具科技工作培訓(xùn)標(biāo)準(zhǔn)教案
- 寫贈(zèng)予房產(chǎn)合同范例
- 2024-2025學(xué)年第二學(xué)期天域全國(guó)名校協(xié)作體高三3月聯(lián)考 地理試卷(含答案)
- 修理木橋施工合同范本
- 學(xué)校2025年每日兩小時(shí)體育活動(dòng)方案-陽(yáng)光體育活力四溢
- 錘擊式PHC預(yù)應(yīng)力混凝土管樁貫入度的控制
- 新教科版一年級(jí)科學(xué)下冊(cè)第一單元第6課《哪個(gè)流動(dòng)得快》課件
- 屋面種植土垂直施工方案
- 2025年新人教PEP版英語(yǔ)三年級(jí)下冊(cè)全冊(cè)課時(shí)練習(xí)
- 《愛(ài)耳日課件》課件
- 2024年安徽中醫(yī)藥高等??茖W(xué)校高職單招職業(yè)適應(yīng)性測(cè)試歷年參考題庫(kù)含答案解析
- GB/T 45107-2024表土剝離及其再利用技術(shù)要求
- 2025年保密工作計(jì)劃(3篇)
評(píng)論
0/150
提交評(píng)論