版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
大數(shù)據(jù)與機(jī)器學(xué)習(xí)
目錄第八章Hive介紹 31.1.1HIVE產(chǎn)生背景 31.1.2組件生態(tài)架構(gòu) 31.1.3HIVE架構(gòu) 41.1.4部署架構(gòu)-主備模式 51.1.5處理流程 6第九章Spark介紹 71.1.6Spark產(chǎn)生背景 71.1.7Spark業(yè)務(wù)架構(gòu) 91.1.8Spark部署 101.1.9Spark原理 111.1.10Spark-core的RDD 111.1.11產(chǎn)生背景 171.1.12Spark-streaming 181.1.13Spark-graphX圖計(jì)算 20第八章Hive介紹HIVE產(chǎn)生背景為了使用大數(shù)據(jù)Hadoop組件,減少M(fèi)apReduce函數(shù)使用的學(xué)習(xí)成本,F(xiàn)acebook開發(fā)了通過使用SQL語(yǔ)言轉(zhuǎn)換為MR函數(shù)的工具HIVE。從而可以直接使用MR作業(yè)進(jìn)行數(shù)據(jù)統(tǒng)計(jì)作業(yè),或者直接調(diào)用HDFS。組件生態(tài)架構(gòu)HIVE架構(gòu)Command-lineshell:命令行模式調(diào)用顯示數(shù)據(jù)計(jì)算結(jié)果Thrift與JDBC:支持SQL語(yǔ)句調(diào)用顯示數(shù)據(jù)計(jì)算結(jié)果HueWeb:大數(shù)據(jù)交互平臺(tái),支持Web調(diào)用HDFS以圖表類型顯示數(shù)據(jù)統(tǒng)計(jì)結(jié)果。Metastore:元數(shù)據(jù)存儲(chǔ)。主要使用的是關(guān)系型數(shù)據(jù)庫(kù)(MySQL)。元數(shù)據(jù)主要是描述數(shù)據(jù)資源屬性信息的數(shù)據(jù)。如:存儲(chǔ)位置、數(shù)據(jù)字段、數(shù)據(jù)目錄。部署架構(gòu)-主備模式主備模式,以防HIVE中的MySQL崩潰而丟失數(shù)據(jù)。處理流程Hive是基于Hadoop的一個(gè)數(shù)據(jù)倉(cāng)庫(kù)工具,用來進(jìn)行數(shù)據(jù)提取、轉(zhuǎn)化、加載。Hive是將結(jié)構(gòu)化的數(shù)據(jù)文件映射為數(shù)據(jù)庫(kù)表,通過SQL語(yǔ)句底層調(diào)用MapReduce進(jìn)行數(shù)據(jù)分析。hive十分適合對(duì)數(shù)據(jù)倉(cāng)庫(kù)進(jìn)行統(tǒng)計(jì)分析。Hive客戶端:由CLI命令行、JDBC(java數(shù)據(jù)庫(kù)連接器-JAVA開發(fā))/ODBC(面向?qū)γ鏀?shù)據(jù)庫(kù)連接器-C語(yǔ)言開發(fā))、WebGUI網(wǎng)頁(yè)模式,其中CLI和WebGUI都可以直接命令Driver執(zhí)行任務(wù)提取數(shù)據(jù)。而JDBC/ODBC方式需要啟動(dòng)ThriftServer(RPC遠(yuǎn)程調(diào)用),可以允許客戶端使用包括Java、C++、Ruby和其他很多種語(yǔ)言,通過編程的方式遠(yuǎn)程訪問Hive
。(即前端服務(wù)可以遠(yuǎn)程調(diào)用后端數(shù)據(jù))Metastore:因?yàn)閷?shù)據(jù)映射為表,所以需要將元數(shù)據(jù)(表的列和分區(qū)及其屬性,表的屬性(是否為外部表等),表的數(shù)據(jù)所在目錄等)存入數(shù)據(jù)庫(kù),目前Metastore用的是MySQL關(guān)系數(shù)據(jù)庫(kù)。將元數(shù)據(jù)保存在關(guān)系數(shù)據(jù)庫(kù)中,大大減少了在查詢過程中執(zhí)行語(yǔ)義檢查的時(shí)間(即數(shù)據(jù)庫(kù)會(huì)去判斷SQL語(yǔ)句是否真正具有相應(yīng)的含義,比如說sql語(yǔ)句涉及的表,或者字段是否存在等。)Driver:包含解釋器、Compiler編譯器、Optimizer優(yōu)化器、Executor執(zhí)行器解釋器:解析sql語(yǔ)句,檢查表,字段是否存在。編譯器:生成Job任務(wù),當(dāng)前sql語(yǔ)句會(huì)生成幾個(gè)job優(yōu)化器:檢查sql語(yǔ)句是否可以優(yōu)化執(zhí)行器:執(zhí)行sql,調(diào)用MapReduce任務(wù)MapReduce任務(wù)全過程客戶端向JobTracker申請(qǐng)任務(wù),由JobTracker向多個(gè)TaskTracker分配任務(wù)。再由客戶端向YARN的SourceManager申請(qǐng)資源,SourceManager在隨機(jī)向一臺(tái)NodeManager發(fā)布建立里ApplicationMaster的命令,NodeManager本地建立一個(gè)container,然后啟動(dòng)ApplicationMaster,AM再向SM注冊(cè)和申請(qǐng)資源,SM收到請(qǐng)求后分配資源,并返回給AM。AM收到后,分別到各個(gè)NM要求其啟動(dòng)container執(zhí)行任務(wù),并為任務(wù)設(shè)置資源。各個(gè)NM執(zhí)行任務(wù),讀取本地DataNode的HDFS文件。讀取文件過程為,客戶端先向NameNode請(qǐng)求訪問,請(qǐng)求通過后,由NM將本地最新鏡像文件返回給客戶端,客戶端按照鏡像文件的元數(shù)據(jù)建立各個(gè)NM讀取通道。第九章Spark介紹Spark產(chǎn)生背景Spark是在MapReduce基礎(chǔ)上完善出來的。為了彌補(bǔ)MR的應(yīng)用不足(實(shí)時(shí)處理、內(nèi)存高效、易用提升、迭代處理)。本質(zhì)上與MR一樣,都是大數(shù)據(jù)處理引擎。以下是與MR相比的優(yōu)勢(shì)性提升100倍處理效率:因Spark在內(nèi)存中處理,比MR處理快100倍?;蛘咴谟脖P處理也要快上10倍。提升易用性:Spark提供了80多種high-level操作(ioin、group、sum、count...)更容易建立并行應(yīng)用,比MR的Map和Reduce的低等級(jí)操作要多。完善迭代處理:MapReduce每次操作都要對(duì)磁盤進(jìn)行I\O操作,Spark的通過RDD可以控制中間結(jié)果,將結(jié)果應(yīng)用到后續(xù)的計(jì)算中。最后統(tǒng)計(jì)寫入HDFS,大大減少了中間結(jié)果的存儲(chǔ),降低了數(shù)據(jù)復(fù)制、磁盤I\O和數(shù)據(jù)序列化開銷。完善實(shí)時(shí)流處理:Streaming流式處理完善實(shí)時(shí)計(jì)算Spark業(yè)務(wù)架構(gòu)SparkCore:
實(shí)現(xiàn)了Spark的基本功能,包含任務(wù)調(diào)度、內(nèi)存管理、錯(cuò)誤恢復(fù)、與存儲(chǔ)系統(tǒng)交互等模塊。SparkCore中還包含了對(duì)彈性分布式數(shù)據(jù)集(resilientdistributeddataset,簡(jiǎn)稱RDD)的API定義。
SparkSQL:
是Spark用來操作結(jié)構(gòu)化數(shù)據(jù)的程序包。通過SparkSQL,我們可以使用SQL或者ApacheHive版本的SQL方言(HQL)來查詢數(shù)據(jù)。SparkSQL支持多種數(shù)據(jù)源,比如Hive表、Parquet以及JSON等。
SparkStreaming:
是Spark提供的對(duì)實(shí)時(shí)數(shù)據(jù)進(jìn)行流式計(jì)算的組件。提供了用來操作數(shù)據(jù)流的API,并且與SparkCore中的RDDAPI高度對(duì)應(yīng)。
SparkMLlib:
提供常見的機(jī)器學(xué)習(xí)(ML)功能的程序庫(kù)。包括分類、回歸、聚類、協(xié)同過濾等,還提供了模型評(píng)估、數(shù)據(jù)導(dǎo)入等額外的支持功能。
集群管理器:
Spark設(shè)計(jì)為可以高效地在一個(gè)計(jì)算節(jié)點(diǎn)到數(shù)千個(gè)計(jì)算節(jié)點(diǎn)之間伸縮計(jì)算。為了實(shí)現(xiàn)這樣的要求,同時(shí)獲得最大靈活性,Spark支持在各種集群管理器(clustermanager)上運(yùn)行,包括HadoopYARN、ApacheMesos,以及Spark自帶的一個(gè)簡(jiǎn)易調(diào)度器,叫作獨(dú)立調(diào)度器。Spark部署從物理部署層面上來看,Spark主要分為兩種類型的節(jié)點(diǎn),Master節(jié)點(diǎn)和Worker節(jié)點(diǎn),Master節(jié)點(diǎn)主要運(yùn)行集群管理器的中心化部分,所承載的作用是分配Application到Worker節(jié)點(diǎn),維護(hù)Worker節(jié)點(diǎn),Driver,Application的狀態(tài)。Worker節(jié)點(diǎn)負(fù)責(zé)具體的業(yè)務(wù)運(yùn)行。從Spark程序運(yùn)行的層面來看,Spark主要分為驅(qū)動(dòng)器節(jié)點(diǎn)和執(zhí)行器節(jié)點(diǎn)。Spark原理RDD基本操作RDD的操作分為轉(zhuǎn)化(Transformation)操作和行動(dòng)(Action)操作。轉(zhuǎn)化操作就是從一個(gè)RDD產(chǎn)生一個(gè)新的RDD,而行動(dòng)操作就是進(jìn)行實(shí)際的計(jì)算。RDD的操作是惰性的,當(dāng)RDD執(zhí)行轉(zhuǎn)化操作的時(shí)候,實(shí)際計(jì)算并沒有被執(zhí)行,只有當(dāng)RDD執(zhí)行行動(dòng)操作時(shí)才會(huì)促發(fā)計(jì)算任務(wù)提交,從而執(zhí)行相應(yīng)的計(jì)算操作。1.構(gòu)建操作Spark里的計(jì)算都是通過操作RDD完成的,學(xué)習(xí)RDD的第一個(gè)問題就是如何構(gòu)建RDD,構(gòu)建RDD的方式從數(shù)據(jù)來源角度分為以下兩類。從內(nèi)存里直接讀取數(shù)據(jù)。從文件系統(tǒng)里讀取數(shù)據(jù),文件系統(tǒng)的種類很多,常見的就是HDFS及本地文件系統(tǒng)。第一類方式是從內(nèi)存里構(gòu)造RDD,需要使用makeRDD方法,代碼如下所示。valrdd01=sc.makeRDD(List(l,2,3,4,5,6))這個(gè)語(yǔ)句創(chuàng)建了一個(gè)由“1,2,3,4,5,6”六個(gè)元素組成的RDD。第二類方式是通過文件系統(tǒng)構(gòu)造RDD,代碼如下所示valrdd:RDD[String]==sc.textFile(“file:///D:/sparkdata.txt”,1)這里例子使用的是本地文件系統(tǒng),所以文件路徑協(xié)議前綴是file://。2.轉(zhuǎn)換操作RDD的轉(zhuǎn)換操作是返回新的RDD的操作。轉(zhuǎn)換出來的RDD是惰性求值的,只有在行動(dòng)操作中用到這些RDD時(shí)才會(huì)被計(jì)算。許多轉(zhuǎn)換操作都是針對(duì)各個(gè)元素的,也就是說,這些轉(zhuǎn)換操作每次只會(huì)操作RDD中的一個(gè)元素,不過并不是所有的轉(zhuǎn)換操作都是這樣的。表1描述了常用的RDD轉(zhuǎn)換操作。3.行動(dòng)操作行動(dòng)操作用于執(zhí)行計(jì)算并按指定的方式輸出結(jié)果。行動(dòng)操作接受RDD,但是返回非RDD,即輸出一個(gè)值或者結(jié)果。在RDD執(zhí)行過程中,真正的計(jì)算發(fā)生在行動(dòng)操作。表2描述了常用的RDD行動(dòng)操作。RDD血緣關(guān)系RDD的最重要的特性之一就是血緣關(guān)系(Lineage),它描述了一個(gè)RDD是如何從父RDD計(jì)算得來的。如果某個(gè)RDD丟失了,則可以根據(jù)血緣關(guān)系,從父RDD計(jì)算得來。圖2給出了一個(gè)RDD執(zhí)行過程的實(shí)例。系統(tǒng)從輸入中邏輯上生成了A和C兩個(gè)RDD,經(jīng)過一系列轉(zhuǎn)換操作,邏輯上生成了F這個(gè)RDD。Spark記錄了RDD之間的生成和依賴關(guān)系。當(dāng)F進(jìn)行行動(dòng)操作時(shí),Spark才會(huì)根據(jù)RDD的依賴關(guān)系生成DAG,并從起點(diǎn)開始真正的計(jì)算。上述一系列處理稱為一個(gè)血緣關(guān)系(Lineage),即DAG拓?fù)渑判虻慕Y(jié)果。在血緣關(guān)系中,下一代的RDD依賴于上一代的RDD。例如,在圖2中,B依賴于A,D依賴于C,而E依賴于B和D。RDD依賴類型根據(jù)不同的轉(zhuǎn)換操作,RDD血緣關(guān)系的依賴分為窄依賴和寬依賴。窄依賴是指父RDD的每個(gè)分區(qū)都只被子RDD的一個(gè)分區(qū)所使用(一對(duì)一)。寬依賴是指父RDD的每個(gè)分區(qū)都被多個(gè)子RDD的分區(qū)所依賴(一對(duì)多)。map、filter、union等操作是窄依賴,而groupByKey、reduceByKey等操作是寬依賴,如圖3所示join操作有兩種情況,如果join操作中使用的每個(gè)Partition僅僅和固定個(gè)Partition進(jìn)行join,則該join操作是窄依賴,其他情況下的join操作是寬依賴。所以可得出一個(gè)結(jié)論,窄依賴不僅包含一對(duì)一的窄依賴,還包含一對(duì)固定個(gè)數(shù)的窄依賴,也就是說,對(duì)父RDD依賴的Partition不會(huì)隨著RDD數(shù)據(jù)規(guī)模的改變而改變。1.窄依賴1)子RDD的每個(gè)分區(qū)依賴于常數(shù)個(gè)父分區(qū)(即與數(shù)據(jù)規(guī)模無關(guān))。2)輸入輸出一對(duì)一的算子,且結(jié)果RDD的分區(qū)結(jié)構(gòu)不變,如map、flatMap。3)輸入輸出一對(duì)一的算子,但結(jié)果RDD的分區(qū)結(jié)構(gòu)發(fā)生了變化,如union。4)從輸入中選擇部分元素的算子,如filter、distinct、subtract、sample。2.寬依賴對(duì)單個(gè)RDD基于Key進(jìn)行重組和reduce,如groupByKey、reduceByKey。3)對(duì)兩個(gè)RDD基于Key進(jìn)行join和重組,如join。Spark的這種依賴關(guān)系設(shè)計(jì),使其具有了天生的容錯(cuò)性,大大加快了Spark的執(zhí)行速度。RDD通過血緣關(guān)系記住了它是如何從其他RDD中演變過來的。當(dāng)這個(gè)RDD的部分分區(qū)數(shù)據(jù)丟失時(shí),它可以通過血緣關(guān)系獲取足夠的信息來重新運(yùn)算和恢復(fù)丟失的數(shù)據(jù)分區(qū),從而帶來性能的提升。相對(duì)而言,窄依賴的失敗恢復(fù)更為高效,它只需要根據(jù)父RDD分區(qū)重新計(jì)算丟失的分區(qū)即可,而不需要重新計(jì)算父RDD的所有分區(qū)。而對(duì)于寬依賴來講,單個(gè)結(jié)點(diǎn)失效,即使只是RDD的一個(gè)分區(qū)失效,也需要重新計(jì)算父RDD的所有分區(qū),開銷較大。寬依賴操作就像是將父RDD中所有分區(qū)的記錄進(jìn)行了“洗牌”,數(shù)據(jù)被打散,然后在子RDD中進(jìn)行重組。階段劃分DAGDAG(DirectedAcyclicGraph有向無環(huán)圖)又稱“血統(tǒng)”Lineage。用戶提交的計(jì)算任務(wù)是一個(gè)由RDD構(gòu)成的DAG,如果RDD的轉(zhuǎn)換是寬依賴,那么這個(gè)寬依賴轉(zhuǎn)換就將這個(gè)DAG分為了不同的階段(Stage)。由于寬依賴會(huì)帶來“洗牌”,所以不同的Stage是不能并行計(jì)算的,后面Stage的RDD的計(jì)算需要等待前面Stage的RDD的所有分區(qū)全部計(jì)算完畢以后才能進(jìn)行。這點(diǎn)就類似于在MapReduce中,Reduce階段的計(jì)算必須等待所有Map任務(wù)完成后才能開始一樣。在對(duì)Job中的所有操作劃分Stage時(shí),一般會(huì)按照倒序進(jìn)行,即從Action開始,遇到窄依賴操作,則劃分到同一個(gè)執(zhí)行階段,遇到寬依賴操作,則劃分一個(gè)新的執(zhí)行階段。后面的Stage需要等待所有的前面的Stage執(zhí)行完之后才可以執(zhí)行,這樣Stage之間根據(jù)依賴關(guān)系就構(gòu)成了一個(gè)大粒度的DAG。下面通過圖4詳細(xì)解釋一下階段劃分。假設(shè)從HDFS中讀入數(shù)據(jù)生成3個(gè)不同的RDD(A、C和E),通過一系列轉(zhuǎn)換操作后得到新的RDD(G),并把結(jié)果保存到HDFS中??梢钥吹竭@幅DAG中只有join操作是一個(gè)寬依賴,Spark會(huì)以此為邊界將其前后劃分成不同的階段。同時(shí)可以注意到,在Stage2中,從map到union都是窄依賴,這兩步操作可以形成一個(gè)流水線操作,通過map操作生成的分區(qū)可以不用等待整個(gè)RDD計(jì)算結(jié)束,而是繼續(xù)進(jìn)行union操作,這樣大大提高了計(jì)算的效率。把一個(gè)DAG圖劃分成多個(gè)Stage以后,每個(gè)Stage都代表了一組由關(guān)聯(lián)的、相互之間沒有寬依賴關(guān)系的任務(wù)組成的任務(wù)集合。在運(yùn)行的時(shí)候,Spark會(huì)把每個(gè)任務(wù)集合提交給任務(wù)調(diào)度器進(jìn)行處理。產(chǎn)生背景ApacheFlink是由Apache軟件基金會(huì)開發(fā)的開源流處理框架,其核心是用Java和Scala編寫的分布式流數(shù)據(jù)處理引擎。Flink以數(shù)據(jù)并行和流水線方式執(zhí)行任意流數(shù)據(jù)程序,F(xiàn)link的流水線運(yùn)行時(shí)系統(tǒng)可以執(zhí)行批處理和流處理程序。此外,F(xiàn)link的運(yùn)行時(shí)本身也支持迭代算法的執(zhí)行。Flink提供高吞吐量、低延遲的流數(shù)據(jù)處理引擎以及對(duì)事件-時(shí)間處理和狀態(tài)管理的支持。Flink應(yīng)用程序在發(fā)生機(jī)器故障時(shí)具有容錯(cuò)能力,并且支持exactly-once語(yǔ)義。(嚴(yán)格一次)Spark-streamingStreaming:是一種數(shù)據(jù)傳送技術(shù),它把客戶機(jī)收到的數(shù)據(jù)變成一個(gè)穩(wěn)定連續(xù)的流,源源不斷地送出,使用戶聽到的聲音或看到的圖象十分平穩(wěn),而且用戶在整個(gè)文件送完之前就可以開始在屏幕上瀏覽文件。常見的流式計(jì)算框架ApacheStormSparkStreamingApacheSamzaSparkStreaming是SparkCore的擴(kuò)展應(yīng)用,它具有可擴(kuò)展,高吞吐量,對(duì)于流數(shù)據(jù)的可容錯(cuò)性等特點(diǎn)??梢员O(jiān)控來自Kafka,Flume,HDFS。Kinesis,Twitter,ZeroMQ或者Scoket套接字的數(shù)據(jù)通過復(fù)雜的算法以及一系列的計(jì)算分析數(shù)據(jù),并且可以將分析結(jié)果存入到HDFS文件系統(tǒng),數(shù)據(jù)庫(kù)以及前端頁(yè)面中。SparkStreaming有以下特點(diǎn):高可擴(kuò)展性,可以運(yùn)行在上百臺(tái)機(jī)器上(Scalestohundredsofnodes)低延遲,可以在秒級(jí)別上對(duì)數(shù)據(jù)進(jìn)行處理(Achieveslowlatency)高可容錯(cuò)性(Efficientlyrecoverfromfailures)能夠集成并行計(jì)算程序,比如SparkCore(Integrateswithbatchandinteractiveprocessing)工作原理對(duì)于SparkCore它的核心就是RDD,對(duì)于SparkStreaming來說,它的核心是DStream,DStream類似于RDD,它實(shí)質(zhì)上一系列的RDD的集合,DStream可以按照秒數(shù)將數(shù)據(jù)流進(jìn)行批量的劃分。首先從接收到流數(shù)據(jù)之后,將其劃分為多個(gè)batch,然后提交給Spark集群進(jìn)行計(jì)算,最后將結(jié)果批量輸出到HDFS或者數(shù)據(jù)庫(kù)以及前端頁(yè)面展示等等??梢詤⒖枷旅孢@幅圖來幫助理解:DStream是一系列連續(xù)的RDD,它是建立在Spark之上的不可變的,分布式數(shù)據(jù)集,在DStream中的每一個(gè)RDD包含著一定時(shí)間間隔的數(shù)據(jù),如下圖所示:SparkCore在初始化時(shí)會(huì)生成一個(gè)SparkContext對(duì)象來對(duì)數(shù)據(jù)進(jìn)行后續(xù)的處理,相對(duì)應(yīng)的SparkStreaming會(huì)創(chuàng)建一個(gè)StreamingContext,它的底層是SparkContext,也就是說它會(huì)將任務(wù)提交給SparkContext來執(zhí)行,這也很好的解釋了DStream是一系列的RDD。當(dāng)啟動(dòng)SparkStreaming應(yīng)用的時(shí)候,首先會(huì)在一個(gè)節(jié)點(diǎn)的Executor上啟動(dòng)一個(gè)Receiver接受者,然后當(dāng)從數(shù)據(jù)源寫入數(shù)據(jù)的時(shí)候會(huì)被Receiver接收,接收到數(shù)據(jù)之后Receiv
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025寧夏廣泰恒業(yè)傳媒有限公司招聘市場(chǎng)專員備考考試試題及答案解析
- 班級(jí)環(huán)境創(chuàng)設(shè)與衛(wèi)生管理方案
- 一年級(jí)數(shù)學(xué)上冊(cè)有趣的數(shù)字教案冀教版教案(2025-2026學(xué)年)
- 企業(yè)級(jí)視頻監(jiān)控集中存儲(chǔ)實(shí)施方案
- 如何正確認(rèn)知職責(zé)教案
- 高中數(shù)學(xué)第二章基本初等函數(shù)Ⅰ冪函數(shù)新課教案
- 2025馬鞍山寧馬城際招聘車站協(xié)理員70人備考考試題庫(kù)及答案解析
- 牙齒缺損的修復(fù)護(hù)理教案
- 手足口病相關(guān)知識(shí)培訓(xùn)教案
- 集合常用邏輯用語(yǔ)測(cè)評(píng)卷教師版人教A版數(shù)學(xué)必修一試卷共享圈教案(2025-2026學(xué)年)
- 2026中央紀(jì)委國(guó)家監(jiān)委機(jī)關(guān)直屬單位招聘24人筆試備考題庫(kù)含答案解析(奪冠)
- 平面包裝設(shè)計(jì)創(chuàng)新創(chuàng)業(yè)
- 煙酒店委托合同范本
- 加盟2025年房地產(chǎn)經(jīng)紀(jì)協(xié)議合同
- 2025至2030中國(guó)商業(yè)攝影行業(yè)市場(chǎng)發(fā)展分析及發(fā)展前景預(yù)測(cè)與投資風(fēng)險(xiǎn)報(bào)告
- 地球系統(tǒng)多源數(shù)據(jù)融合-洞察及研究
- 香水銷售知識(shí)培訓(xùn)內(nèi)容課件
- 工業(yè)產(chǎn)品早期可制造性評(píng)估標(biāo)準(zhǔn)
- DB45-T 2757.1-2023 交通運(yùn)輸行業(yè)安全風(fēng)險(xiǎn)評(píng)估規(guī)范 第1部分:總則
- 3.6運(yùn)動(dòng)和能量課件-科學(xué)三年級(jí)上冊(cè)教科版-1
- 2025年酒店行業(yè)全球酒店管理與酒店服務(wù)創(chuàng)新研究報(bào)告
評(píng)論
0/150
提交評(píng)論