




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
5/5大數(shù)據(jù)技術(shù)原理及應(yīng)用大數(shù)據(jù)技術(shù)原理及應(yīng)用
大數(shù)據(jù)處理架構(gòu)—Hadoop簡介
Hadoop項(xiàng)目包括了很多子項(xiàng)目,結(jié)構(gòu)如下圖
Common
原名:Core,包含HDFS,MapReduce和其他公共項(xiàng)目,從Hadoop0.21版本后,HDFS和MapReduce分離出去,其余部分內(nèi)容構(gòu)成HadoopCommon。Common為其他子項(xiàng)目提供支持的常用工具,主要包括文件系統(tǒng)、RPC(Remoteprocedurecall)和串行化庫。
Avro
Avro是用于數(shù)據(jù)序列化的系統(tǒng)。它提供了豐富的數(shù)據(jù)結(jié)構(gòu)類型、快速可壓縮的二進(jìn)制數(shù)據(jù)格式、存儲持久性數(shù)據(jù)的文件集、遠(yuǎn)程調(diào)用RPC的功能和簡單的動(dòng)態(tài)語言集成功能。其中,代碼生成器既不需要讀寫文件數(shù)據(jù),也不需要使用或?qū)崿F(xiàn)RPC協(xié)議,它只是一個(gè)可選的對靜態(tài)類型語言的實(shí)現(xiàn)。Avro系統(tǒng)依賴于模式(Schema),Avro數(shù)據(jù)的讀和寫是在模式之下完成的。這樣就可以減少寫入數(shù)據(jù)的開銷,提高序列化的速度并縮減其大小。
Avro可以將數(shù)據(jù)結(jié)構(gòu)或?qū)ο筠D(zhuǎn)化成便于存儲和傳輸?shù)母袷?,?jié)約數(shù)據(jù)存儲空間和網(wǎng)絡(luò)傳輸帶寬,Hadoop的其他子項(xiàng)目(如HBase和Hive)的客戶端和服務(wù)端之間的數(shù)據(jù)傳輸。
HDFS
HDFS:是一個(gè)分布式文件系統(tǒng),為Hadoop項(xiàng)目兩大核心之一,是Googlefilesystem(GFS)的開源實(shí)現(xiàn)。由于HDFS具有高容錯(cuò)性(fault-tolerant)的特點(diǎn),所以可以設(shè)計(jì)部署在低廉(low-cost)的硬件上。它可以通過提供高吞吐率(highthroughput)來訪問應(yīng)用程序的數(shù)據(jù),適合那些有著超大數(shù)據(jù)集的應(yīng)用程序。HDFS放寬了可移植操作系統(tǒng)接口(POSIX,PortableOperatingSystemInterface)的要求,這樣就可以實(shí)現(xiàn)以流的形式訪問文件系統(tǒng)中的數(shù)據(jù)。MapReduce
HadoopMapReduce是針對谷歌MapReduce的開源實(shí)現(xiàn),它是一種編程模型,用于大規(guī)模數(shù)據(jù)集(大于1TB)的并行運(yùn)算。“映射”(map)、“化簡”(reduce)等概念和它們的主要思想都是從函數(shù)式編程語言中借來的。它使得編程人員在不了解分布式并行編程的情況下也能方便地將自己的程序運(yùn)行在分布式系統(tǒng)上。MapReduce在執(zhí)行時(shí)先指定一個(gè)map(映射)函數(shù),把輸入鍵值對映射成一組新的鍵值對,經(jīng)過一定的處理后交給reduce,reduce對相同key下的所有value進(jìn)行處理后再輸出鍵值對作為最終的結(jié)果。核心思想就是“分而治之”。HBase
HBase是一個(gè)分布式的、面向列的開源數(shù)據(jù)庫,該技術(shù)來源于Google的論文“Bigtable:一個(gè)結(jié)構(gòu)化數(shù)據(jù)的分布式存儲系統(tǒng)”。如同Bigtable利用了Google文件系統(tǒng)(GoogleFileSystem)提供的分布式數(shù)據(jù)存儲方式一樣,HBase在Hadoop之上提供了類似于Bigtable的能力。HBase不同于一般的關(guān)系數(shù)據(jù)庫,其一,HBase是一個(gè)適合
于存儲非結(jié)構(gòu)化數(shù)據(jù)的數(shù)據(jù)庫;其二,HBase是基于列而不是基于行的模式。HBase和Bigtable使用相同的數(shù)據(jù)模型。用戶將數(shù)據(jù)存儲在一個(gè)表里,一個(gè)數(shù)據(jù)行擁有一個(gè)可選擇的鍵和任意數(shù)量的列。由于HBase表示疏松的,用戶可以給行定義各種不同的列。HBase主要用于需要隨機(jī)訪問、實(shí)時(shí)讀寫的大數(shù)據(jù)。
Hive
Hive最早是由Facebook設(shè)計(jì)的,是一個(gè)建立在Hadoop基礎(chǔ)之上的數(shù)據(jù)倉庫,它提供了一些用于數(shù)據(jù)整理、特殊查詢和分析存儲在Hadoop文件中的數(shù)據(jù)集的工具。Hive提供的是一種結(jié)構(gòu)化數(shù)據(jù)的機(jī)制,它支持類似于傳統(tǒng)RDBMS中的SQL語言來幫助那些熟悉SQL的用戶查詢Hadoop中的數(shù)據(jù),該查詢語言稱為HiveQL。與此同時(shí),那些傳統(tǒng)的MapReduce編程人員也可以在Mapper或Reducer中通過HiveQL查詢數(shù)據(jù)。Hive編譯器會把HiveQL編譯成一組MapReduce任務(wù),從而方便MapReduce編程人員進(jìn)行Hadoop應(yīng)用的開發(fā)。
Pig
Pig是一個(gè)對大型數(shù)據(jù)集進(jìn)行分析和評估的平臺。Pig最突出的優(yōu)勢是它的結(jié)構(gòu)能夠經(jīng)受住高度并行化的檢驗(yàn),這個(gè)特性讓它能夠處理大型的數(shù)據(jù)集。目前,Pig的底層由一個(gè)編譯器組成,它在運(yùn)行的時(shí)候會產(chǎn)生一些MapReduce程序序列,Pig的語言層由一種叫做PigLatin的正文型語言組成。
Chukwa
Chukwa是開源的數(shù)據(jù)收集系統(tǒng),用于監(jiān)控和分析大型分布式系統(tǒng)的數(shù)據(jù)。Chukwa是在Hadoop的HDFS和MapReduce框架之上搭建的,它同時(shí)繼承了Hadoop的可擴(kuò)展性和健壯性。Chukwa通過HDFS來存儲數(shù)據(jù),并依賴于MapReduce任務(wù)處理數(shù)據(jù)。Chukwa中也附帶了靈活且強(qiáng)大的工具,用于顯示、監(jiān)視和分析數(shù)據(jù)結(jié)果,以便更好地利用所收集的數(shù)據(jù)。
大數(shù)據(jù)存儲
存儲的講解分為四部分:HDFS,HBase,NoSQL和云數(shù)據(jù)庫
HDFS
分布式文件系統(tǒng)簡介
相對于傳統(tǒng)的本地文件系統(tǒng)而言,分布式文件系統(tǒng)是一種通過網(wǎng)絡(luò)實(shí)現(xiàn)文件在多臺計(jì)算機(jī)上進(jìn)行分布式存儲的文件系統(tǒng)。分布式文件系統(tǒng)的設(shè)計(jì)一般采用“客戶機(jī)/服務(wù)器”(client/server)模式,客戶端以特定的通信協(xié)議通過網(wǎng)絡(luò)與服務(wù)器建立連接,提出文件訪問請求,客戶端和服務(wù)器可以通過設(shè)置訪問權(quán)來限制請求方對底層數(shù)據(jù)存儲快的訪問。
在我們所熟悉的Windows、Linux操作系統(tǒng)中,文件系統(tǒng)一般會把磁盤空間劃分為每512字節(jié)一組,稱為“磁盤塊”,它是文件系統(tǒng)讀寫操作的最小單位,文件系統(tǒng)的塊(block)通常是磁盤塊的整數(shù)倍,即每次讀寫的數(shù)據(jù)量必須是磁盤塊大小的整數(shù)倍。
分布式文件系統(tǒng)也采用了塊的概念,HDFS默認(rèn)的一個(gè)塊的大小為64MB。與普通文件不同的是,在分布式文件系統(tǒng)中,如果一個(gè)文件小于一個(gè)數(shù)據(jù)塊的大小,它并不占用整個(gè)數(shù)據(jù)塊的存儲空間。
分布式文件系統(tǒng)在物理結(jié)構(gòu)上由計(jì)算機(jī)群中的多個(gè)節(jié)點(diǎn)構(gòu)成,這些節(jié)點(diǎn)分為兩類,一類叫“主節(jié)點(diǎn)”(masternode)或者也稱為“名稱節(jié)點(diǎn)”(namenode),另一類叫“從節(jié)點(diǎn)”(slavenode)或者也被稱為“數(shù)據(jù)節(jié)點(diǎn)”(datanode)。
名稱節(jié)點(diǎn)負(fù)責(zé)文件和目錄的創(chuàng)建、刪除和重命名等,同時(shí)管理著數(shù)據(jù)節(jié)點(diǎn)和文件塊的映射關(guān)系,因此客戶端只有訪問名稱節(jié)點(diǎn)才能找到請求的文件塊所在的位置。數(shù)據(jù)節(jié)點(diǎn)負(fù)責(zé)數(shù)據(jù)的存儲和讀取,在存儲時(shí),由名稱節(jié)點(diǎn)分配存儲位置,然后由客戶端把數(shù)據(jù)直接寫入相應(yīng)的數(shù)據(jù)節(jié)點(diǎn);在讀取時(shí),客戶端從名稱節(jié)點(diǎn)獲得數(shù)據(jù)節(jié)點(diǎn)和文件塊的映射關(guān)系,然后就可以到相應(yīng)位置訪問文件塊。
計(jì)算機(jī)集群中的節(jié)點(diǎn)可能發(fā)生故障,因此,為了保障數(shù)據(jù)的完整性,分布式文件系統(tǒng)通常采用多副本存儲。文件塊會被復(fù)制為多個(gè)副本,存儲在不同的節(jié)點(diǎn)上,而且,存儲同一文件塊的不同副本節(jié)點(diǎn),會分布在不同機(jī)架上。
HDFS簡介
在HDFS中,名稱節(jié)點(diǎn)(namenode)負(fù)責(zé)管理分布式文件系統(tǒng)的命名空間,保存了兩個(gè)核心的數(shù)據(jù)結(jié)構(gòu),即FsImage和EditLog。
名稱節(jié)點(diǎn)
FsImage用于維護(hù)文件系統(tǒng)樹以及文件樹中所有的文件和文件夾的元數(shù)據(jù),操作日志文件EditLog中記錄了所有針對文件的創(chuàng)建、刪除、重命名等操作。名稱節(jié)點(diǎn)記錄了每個(gè)文件中各個(gè)塊所在的數(shù)據(jù)節(jié)點(diǎn)的位置信息。
FsImage文件包含文件系統(tǒng)中所有目錄和文件inode的序列化形式。每個(gè)inode是一個(gè)文件或目錄的元數(shù)據(jù)的內(nèi)部表示,并包含此類信息:文件的復(fù)制等級、修改和訪問時(shí)間、訪問權(quán)限、塊大小以及組成文件的塊。對于目錄,則存儲修改時(shí)間、權(quán)限和配額元數(shù)據(jù)。
FsImage文件沒有記錄塊存儲在哪個(gè)數(shù)據(jù)節(jié)點(diǎn)。而是由名稱節(jié)點(diǎn)把這些映射保留在內(nèi)存中,當(dāng)數(shù)據(jù)節(jié)點(diǎn)加入HDFS集群時(shí),數(shù)據(jù)節(jié)點(diǎn)會把自己所包含的塊列表告知給名稱節(jié)點(diǎn),此后會定期執(zhí)行這種告。
在名稱節(jié)點(diǎn)啟動(dòng)的時(shí)候,它會將FsImage文件中的內(nèi)容加載到內(nèi)存中,之后再執(zhí)行EditLog文件中的各項(xiàng)操作,使得內(nèi)存中的元數(shù)據(jù)和實(shí)際的同步,存在內(nèi)存中的元數(shù)據(jù)支持客戶端的讀操作。
一旦在內(nèi)存中成功建立文件系統(tǒng)元數(shù)據(jù)的映射,則創(chuàng)建一個(gè)新的FsImage文件和一個(gè)空的EditLog文件。
名稱節(jié)點(diǎn)起來之后,HDFS中的更新操作會重新寫到EditLog文件中,因?yàn)镕sImage文件一般都很大(GB級別的很常見),如果所有的更新操作都往FsImage文件中添加,這樣會導(dǎo)致系統(tǒng)運(yùn)行的十分緩慢,但是,如果往EditLog文件里面寫就不會這樣,因?yàn)镋ditLog要小很多。每次執(zhí)行寫操作之后,且在向客戶端發(fā)送成功代碼之前,edits文件都需要同步更新。
名稱節(jié)點(diǎn)運(yùn)行期間EditLog不斷變大的問題
在名稱節(jié)點(diǎn)運(yùn)行期間,HDFS的所有更新操作都是直接寫到EditLog中,久而久之,EditLog文件將會變得很大。雖然這對名稱節(jié)點(diǎn)運(yùn)行時(shí)候是沒有什么明顯影響的,但是,當(dāng)名稱節(jié)點(diǎn)重啟的時(shí)候,名稱節(jié)點(diǎn)需要先將FsImage里面的所有內(nèi)容映像到內(nèi)存中,然后再一條一條地執(zhí)行EditLog中的記錄,當(dāng)EditLog文件非常大的時(shí)候,會導(dǎo)致名稱節(jié)點(diǎn)啟動(dòng)操作非常慢,而在這段時(shí)間內(nèi)HDFS系統(tǒng)處于安全模式,一直無法對外提供寫操作,影響了用戶的使用。
如何解決?答案是:SecondaryNameNode第二名稱節(jié)點(diǎn)
第二名稱節(jié)點(diǎn)
第二名稱節(jié)點(diǎn)是HDFS架構(gòu)中的一個(gè)組成部分,它是用來保存名稱節(jié)點(diǎn)中對HDFS元數(shù)據(jù)信息的備份,并減少名稱節(jié)點(diǎn)重啟的時(shí)間。SecondaryNameNode一般是單獨(dú)運(yùn)行在一臺機(jī)器上。
數(shù)據(jù)節(jié)點(diǎn)(DataNode)
數(shù)據(jù)節(jié)點(diǎn)是分布式文件系統(tǒng)HDFS的工作節(jié)點(diǎn),負(fù)責(zé)數(shù)據(jù)的存儲和讀取,會根據(jù)客戶端或者是名稱節(jié)點(diǎn)的調(diào)度來進(jìn)行數(shù)據(jù)的存儲和檢索,并且向名稱節(jié)點(diǎn)定期發(fā)送自己所存儲的塊的列表。每個(gè)數(shù)據(jù)節(jié)點(diǎn)中的數(shù)據(jù)會被保存在各自節(jié)點(diǎn)的本地Linux文件系統(tǒng)中。
HDFS體系結(jié)構(gòu)
HDFS采用了主從(Master/Slave)結(jié)構(gòu)模型,一個(gè)HDFS集群包括一個(gè)名稱節(jié)點(diǎn)(NameNode)和若干個(gè)數(shù)據(jù)節(jié)點(diǎn)(DataNode)(如圖3-4所示)。名稱節(jié)點(diǎn)作為中心服務(wù)器,負(fù)責(zé)管理文件系統(tǒng)的命名空
間及客戶端對文件的訪問。集群中的數(shù)據(jù)節(jié)點(diǎn)一般是一個(gè)節(jié)點(diǎn)運(yùn)行一個(gè)數(shù)據(jù)節(jié)點(diǎn)進(jìn)程,負(fù)責(zé)處理文件系統(tǒng)客戶端的讀/寫請求,在名稱節(jié)點(diǎn)的統(tǒng)一調(diào)度下進(jìn)行數(shù)據(jù)塊的創(chuàng)建、刪除和復(fù)制等操作。每個(gè)數(shù)據(jù)節(jié)點(diǎn)的數(shù)據(jù)實(shí)際上是保存在本地Linux文件系統(tǒng)中的。
HDFS的命名空間包含目錄、文件和塊。在HDFS1.0體系結(jié)構(gòu)中,在整個(gè)HDFS集群中只有一個(gè)命名空間,并且只有唯一一個(gè)名稱節(jié)點(diǎn),該節(jié)點(diǎn)負(fù)責(zé)對這個(gè)命名空間進(jìn)行管理。HDFS使用的是傳統(tǒng)的分級文件體系,因此,用戶可以像使用普通文件系統(tǒng)一樣,創(chuàng)建、刪除目錄和文件,在目錄間轉(zhuǎn)移文件,重命名文件等。
HDFS是一個(gè)部署在集群上的分布式文件系統(tǒng),因此,很多數(shù)據(jù)需要通過網(wǎng)絡(luò)進(jìn)行傳輸,所有的HDFS通信協(xié)議都是構(gòu)建在TCP/IP協(xié)議基礎(chǔ)之上的,客戶端通過一個(gè)可配置的端口向名稱節(jié)點(diǎn)主動(dòng)發(fā)起TCP連接,并使用客戶端協(xié)議與名稱節(jié)點(diǎn)進(jìn)行交互,名稱節(jié)點(diǎn)和數(shù)據(jù)節(jié)點(diǎn)之間則使用數(shù)據(jù)節(jié)點(diǎn)協(xié)議進(jìn)行交互,客戶端與數(shù)據(jù)節(jié)點(diǎn)的交互是通過RPC(RemoteProcedureCall)來實(shí)現(xiàn)的。在設(shè)計(jì)上,名稱節(jié)點(diǎn)不會主動(dòng)發(fā)起RPC,而是響應(yīng)來自客戶端和數(shù)據(jù)節(jié)點(diǎn)的RPC請求。
客戶端是用戶操作HDFS最常用的方式,HDFS在部署時(shí)都提供了客戶端。HDFS客戶端是一個(gè)庫,暴露了HDFS文件系統(tǒng)接口,這些接口隱藏了HDFS實(shí)現(xiàn)中的大部分復(fù)雜性。嚴(yán)格來說,客戶端并不算是HDFS的一部分,客戶端可以支持打開、讀取、寫入等常見的操作,并且提供了類似Shell的命令行方式來訪問HDFS中的數(shù)據(jù)。此外,
HDFS也提供了JavaAPI,作為應(yīng)用程序訪問文件系統(tǒng)的客戶端編程接口。
HDFS存儲管理
HDFS采用了多副本方式對數(shù)據(jù)進(jìn)行冗余存儲。
如圖3-5所示,數(shù)據(jù)塊1被分別存放到數(shù)據(jù)節(jié)點(diǎn)A和C上,數(shù)據(jù)塊2被存放在數(shù)據(jù)節(jié)點(diǎn)A和B上。這種多副本方式具有以下幾個(gè)優(yōu)點(diǎn):(1)加快數(shù)據(jù)傳輸速度:多個(gè)用戶同時(shí)訪問一個(gè)文件
(2)容易檢查數(shù)據(jù)錯(cuò)誤:多副本比較
(3)保證數(shù)據(jù)可靠性:單點(diǎn)故障不會造成數(shù)據(jù)損失
HDFS采取了以機(jī)架(Rack)為基礎(chǔ)的數(shù)據(jù)存放策略。HDFS默認(rèn)每個(gè)數(shù)據(jù)節(jié)點(diǎn)都是在不同機(jī)架上的,這讓寫入數(shù)據(jù)的時(shí)候不能充分利用同一機(jī)架內(nèi)部機(jī)器之間的帶寬,但是它有更多優(yōu)點(diǎn):
首先獲得很高的數(shù)據(jù)可靠性,即使一個(gè)機(jī)架發(fā)生故障,副本仍可用;
其次,在讀取數(shù)據(jù)的時(shí)候,可以在多個(gè)機(jī)架上并行讀取數(shù)據(jù);
最后可以更容易實(shí)現(xiàn)系統(tǒng)內(nèi)部負(fù)載均衡。
HDFS提供了一個(gè)API可以確定一個(gè)數(shù)據(jù)節(jié)點(diǎn)所屬的機(jī)架ID,客戶端也可以調(diào)用API獲取自己所屬的機(jī)架ID,當(dāng)客戶端讀取數(shù)據(jù)時(shí),從名稱節(jié)點(diǎn)獲得數(shù)據(jù)塊不同副本的存放位置列表,列表中包含了副本所在的數(shù)據(jù)節(jié)點(diǎn),可以調(diào)用API來確定客戶端和這些數(shù)據(jù)節(jié)點(diǎn)所屬的機(jī)架ID,當(dāng)發(fā)現(xiàn)某個(gè)數(shù)據(jù)塊副本對應(yīng)的機(jī)架ID和客戶端對應(yīng)的機(jī)架
ID相同時(shí),就優(yōu)先選擇該副本讀取數(shù)據(jù),如果沒有發(fā)現(xiàn),就隨機(jī)選擇一個(gè)副本讀取數(shù)據(jù)。
HDFS具有較高的容錯(cuò)性,可以兼容廉價(jià)的硬件,它把硬件出錯(cuò)看作一種常態(tài),而不是異常,并設(shè)計(jì)了相應(yīng)的機(jī)制檢測數(shù)據(jù)錯(cuò)誤和進(jìn)行自動(dòng)恢復(fù),主要包括以下幾種情形:名稱節(jié)點(diǎn)出錯(cuò)、數(shù)據(jù)節(jié)點(diǎn)出錯(cuò)和數(shù)據(jù)出錯(cuò)。
(1)名稱節(jié)點(diǎn)出錯(cuò)
名稱節(jié)點(diǎn)保存了所有的元數(shù)據(jù)信息,其中,最核心的兩大數(shù)據(jù)結(jié)構(gòu)是FsImage和Editlog,如果這兩個(gè)文件發(fā)生損壞,那么整個(gè)HDFS實(shí)例將失效。因此,HDFS設(shè)置了備份機(jī)制,把這些核心文件同步復(fù)制到備份服務(wù)器SecondaryNameNode上
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 想象的力量課件
- 2026屆江西省宜春市昌黎實(shí)驗(yàn)學(xué)?;瘜W(xué)高二上期中學(xué)業(yè)質(zhì)量監(jiān)測模擬試題含解析
- 情景與影視劇沖突的課件
- 四川省樂山市高中2026屆化學(xué)高二第一學(xué)期期中監(jiān)測試題含解析
- 幼兒園班級慶元旦迎新年活動(dòng)方案
- 社區(qū)最優(yōu)的國慶節(jié)活動(dòng)方案
- 高中畢業(yè)聯(lián)歡會策劃方案
- 停車場收費(fèi)及管理方案
- 工會勞模活動(dòng)方案
- 安檢貨車考試題及答案
- 《企業(yè)研發(fā)費(fèi)用稅前加計(jì)扣除政策解讀與應(yīng)用課件》
- 藍(lán)橋杯-科學(xué)素養(yǎng)考試題庫(含答案)
- OptiStruct結(jié)構(gòu)分析與工程應(yīng)用
- HRM4800原料立式磨使用手冊
- 遼寧中考英語2022-2024真題匯編-教師版-專題05 閱讀還原之五選四等
- 鋼構(gòu)彩瓦施工合同范本
- 廣東省深圳市2024-2025學(xué)年高一上學(xué)期期中考試數(shù)學(xué)試卷(含答案)
- 第6講立體幾何(2022-2023年高考真題)(原卷版)
- 安寧療護(hù)舒適照護(hù)
- 幕墻作業(yè)安全技術(shù)交底
- 中醫(yī)耳針技術(shù)
評論
0/150
提交評論