付費(fèi)下載
下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第4章分布式系統(tǒng)——分布式文件系統(tǒng)與HDFSHDFS的 搭建eclipsejava接口及常用hadoopRPC機(jī)制hadoop分布式文件系統(tǒng)與數(shù)據(jù)量越來(lái)越大,在一個(gè)操作系統(tǒng)管轄的范圍存不下了,那么就分配到的操作系統(tǒng)管理的磁盤中,但是不方便管理和,迫切需要一種系統(tǒng)來(lái)管理多臺(tái)機(jī)器上的文件,這就是分布式文件管理系統(tǒng)。系統(tǒng),可讓多機(jī)器上的多用戶文件和空間。分布式文件管理系統(tǒng)很多,hdfsHDS只是其中一種。適用于一次寫(xiě)入、多次查詢的情況,不支持并發(fā)寫(xiě)情況,小文件不合適。小提示:如何在剛開(kāi)始學(xué)習(xí)的時(shí)候,形象化的地理解HDFS哪呢?可以把HDFS看做是wWindows的文件系統(tǒng)。在wWindows的文件著有一套很多層次的文件 層次是為了在文件夾中分門別類的地存放文件。經(jīng)常做的操作是創(chuàng)建文件夾、HDFS的 既然HDFS是存取數(shù)據(jù)的分布式文件系統(tǒng),那么對(duì)HDFS的操作,就是文件系統(tǒng)的基本HDFS的操作命令類似于lLinuxs對(duì)文件的操作,如ls、mkdir、rm等。執(zhí)行以下操作的時(shí)候,一定要確定hadoop是正常運(yùn)行的,使用jps命令確??吹礁鱾€(gè)hadoop進(jìn)程。執(zhí)行命令hadoopfs,如圖4-1所示4-選項(xiàng)名使用格含選項(xiàng)名使用格含--ls路徑查看指定路徑的當(dāng) 結(jié)-<遞歸查看指定路徑 結(jié)-統(tǒng) 下個(gè)文件大-匯總統(tǒng) 下文件(夾)大-統(tǒng)計(jì)文件(夾)數(shù)-移--刪除文件/空白文件--rmr[-skipTrash]<路徑遞歸刪-上傳文--copyFromLocal<多個(gè)linux上的文件<hdfs路徑從本地--moveFromLocal<多個(gè)linux上的文件<hdfs路徑從本地移-合并到本-查看文件內(nèi)-查看文件內(nèi)-徑linux目的路徑從本地-目的路徑從本地移-創(chuàng)建空白文件-修改副本數(shù)--touchz<文件路徑創(chuàng)建空白文-顯示文件統(tǒng)計(jì)信--tailf文件查看文件尾部信- 修改權(quán)--chownR]屬主][:[屬組]]修改屬--chgrpR]修改屬--help[命令選項(xiàng)幫的地方,會(huì)特別“l(fā)inux路徑”或者“hdfs路徑”。如果沒(méi)有明確,意味著是hdfs下面講述每個(gè)命令選項(xiàng)的用法- 顯示當(dāng) 結(jié)構(gòu)該命令選項(xiàng)表示查看指定路徑的當(dāng) 4-上圖中的路徑是hdfs根 首字母表示文件夾(如果是“d”)還是文件(如果是“-后面的9位字符表示權(quán)限后面的數(shù)字或者“-”表示副本數(shù)。如果是文件,使用數(shù)字表示副本數(shù);文件夾沒(méi)有副本;后面的“root”表示屬主后面的“supergroup”表示屬組后面的“0617637645后面的時(shí)間表示修改時(shí)間,格式是年月日時(shí)分最后一項(xiàng)表示文件路可見(jiàn) 下面有四個(gè)文件夾、兩個(gè)文件如果該命令選項(xiàng)后面沒(méi)有路徑,那么就會(huì)/user/<當(dāng)前用戶 用戶登錄,因此會(huì)hdfs的 ,如圖4-2.所示4-如果沒(méi)有這 /user/root,會(huì)提示文件不存在的錯(cuò)誤-lsr遞歸顯 結(jié)該命令選項(xiàng)表示遞歸顯示當(dāng)前路徑 結(jié)構(gòu),后面跟hdfs路徑。如圖4-3所示4- -du統(tǒng) 下各文件大該命令選項(xiàng)顯示指定路徑下的文件大小,單位是字節(jié),如 4-4.所示4--dus匯總統(tǒng) 下文件大該命令選項(xiàng)顯示指定路徑的文件大小,單位是字節(jié),如圖4-5所示。4-請(qǐng)讀者比較圖4-4與圖4-5的區(qū)別,體會(huì)兩個(gè)命令選項(xiàng)的不同含義-count統(tǒng)計(jì)文件(夾)數(shù)該命令選項(xiàng)顯示指定路徑下的文件夾數(shù)量、文件數(shù)量、文件總大小信息,如 4-所示.4-在圖4-6中有兩條命令,下面令是為了佐證上面命令的正確性的-mv移該命令選項(xiàng)表示移動(dòng)hdfs的文件到指定的hdfs ,如圖4-7所示。.4-在圖4-7中有三條命令,是為了體現(xiàn)移動(dòng)前后的變化情況-cp該命令選項(xiàng)表示hdfs指定的文件到指定的 中。后面跟兩個(gè)路徑,一個(gè)是被的文件,第二個(gè)是目的地,如圖4-8所示。4-在圖4-8中有三條命令,是為了體現(xiàn)前后的變化情況-rm刪除文件/空白文件該該命令選項(xiàng)表示刪除指定的文件,如圖4-9所示。4- -rmr遞歸該該命令選項(xiàng)表示遞歸刪除下的和文件,如圖4-10所示4--put上傳文該命令選項(xiàng)表示把linux上的文件到hdfs中,如圖4-11所示。4--copyFromLocal從本地操作與-put一致,不再舉例-moveFromLocal從本地移4-getmerge合并到該命令選項(xiàng)的含義是把hdfs指 下的所有文件內(nèi)容合并到本地linux的文件中,如4-134--cat查看文件內(nèi)該命令選項(xiàng)是查看文件內(nèi)容,如圖4-14所示4--text查看文件內(nèi)該命令選項(xiàng)可以認(rèn)為作用和用法與- 相同,此處略-mkdir創(chuàng)建空白文件4--setrep設(shè)置副本數(shù)該命令選項(xiàng)是修改已保存文件的副本數(shù)量,后面跟副本數(shù)量,再跟文件路徑,如 4-所示4-本,HDFS會(huì)自動(dòng)執(zhí)行文件的工作,產(chǎn)生新的副本。如果最后的路徑表示文件夾,那么需要跟選項(xiàng)-R,表示對(duì)文件夾中的所有文件都修改副本,如圖-17所示。.4-在圖4-17中,對(duì)/user文件夾進(jìn)行的操作,使用了選項(xiàng)-R,那么/user/root下的文件abc的副本數(shù)發(fā)生了改變。還有一個(gè)選項(xiàng)是-w,表示等待副本操作結(jié)束才退出命令,如圖4-18所示。4-請(qǐng)讀者自己比較以上兩圖中使用- 前后執(zhí)行結(jié)果的變化情況-touchz創(chuàng)建空白該命令選項(xiàng)是在hdfs中創(chuàng)建空白文件,如圖4-194--stat顯示文件的統(tǒng)計(jì)信該命令選項(xiàng)顯示文件的一些統(tǒng)計(jì)信息,如圖4-201-在圖4-20中,命令選項(xiàng)后面可以有格式,使用引號(hào)表示。示例中的格式 %Y”依次表示文件大小、文件名稱、塊大小、副本數(shù)、時(shí)間-tail查看文件尾部?jī)?nèi)1K字節(jié)的內(nèi)容。一般用于查看日志。如果帶有選項(xiàng)-f,那么當(dāng)文件內(nèi)容變化時(shí),也會(huì)自動(dòng)顯示,如圖4-21所示。4- od修改文件權(quán)該命令選項(xiàng)的使用類似于linux的s od用法,作用是修改文件的權(quán)限,如圖4-22所示。.4-在圖4-22中,修改了文件/emptyfile的權(quán)限如如果加上選項(xiàng)-R,可以對(duì)文件夾中的所有文件修改權(quán)限,如圖4-23所示。4--chown修改屬該命令選項(xiàng)表示修改文件的屬主,如圖4-24所示4-上圖中把文件/emptyfile的屬主由root修改為 也可以同時(shí)修改屬組,如圖4-25所示。4-在圖4-25中,把文件/emptyfile的屬主和屬組都修改為 如果帶有選項(xiàng)-R,意味著可以遞歸修改文件夾中的所有文件的屬主、屬組信-chgrp修改屬4--help幫該命令選項(xiàng)會(huì)顯示幫助信息,后面跟上需要查詢令選項(xiàng)即可,如圖4- 所示4-令選項(xiàng)的用法都顯示出來(lái),如圖4-28所示。希望新的版本以后改進(jìn)。4-讀者短時(shí)間無(wú)法掌握全部命令用法,請(qǐng)重點(diǎn)掌握l(shuí)s(r)、rm(r)、mkdir、put、get的使用 體系結(jié)構(gòu)與基本通過(guò)hadoops上傳的文件是存放在DataNode的block中,通過(guò)linuxs是看不到文件的,只能看到block。可以一句話描述HDFS:把客戶端的大文件存放在很多節(jié)點(diǎn)的數(shù)據(jù)塊中。在這里,出現(xiàn)了三個(gè):文件、節(jié)點(diǎn)、數(shù)據(jù)塊。HDFS就是圍繞著這三個(gè)設(shè)計(jì)的,在學(xué)習(xí)的時(shí)候也要緊抓住這三個(gè)來(lái)學(xué)習(xí)。作NameNode的作用是管理文件結(jié)構(gòu),是管理數(shù)據(jù)節(jié)點(diǎn)的。名字節(jié)點(diǎn)兩套數(shù)據(jù),一套是文件與數(shù)據(jù)塊之間的關(guān)系,另一套是數(shù)據(jù)塊與節(jié)點(diǎn)之間的關(guān)系。前一套數(shù)據(jù)是靜態(tài)的,是存放在磁盤上的,通過(guò)fsimage和edits文件來(lái);后一套數(shù)據(jù)是動(dòng)態(tài)的,不持結(jié)既然NameNode了這么多的信息,那么這些信息都存放在哪里呢吶?在hadoop源代碼中有個(gè)文件叫core-default.xml,如4-51示。4-打開(kāi)這個(gè)文件,在第149行和第158行,有兩個(gè)配置信息,一個(gè)是dame.dir,另一個(gè)是dame.edits.dir。這兩個(gè)文件表示的是NameNode的文件fsimage和edits的存放位置,如圖4-52所示。4-在對(duì)應(yīng)配置的value值有${},這是變量的表示方式,在程序文件時(shí),會(huì)把變量的值出來(lái)。那么,第150行的變量hadoop.tmp.dir的值是在上一章的配置文件core-site.xml中配置的,值是/usr/local/hadoop/tmp??梢钥闯?,這兩個(gè)文件的位置是在linux文件系統(tǒng)的/usr/local/hadoop/tmp/dame下。進(jìn)入linux文件系統(tǒng),可以看到如圖4-53所示 結(jié)構(gòu)4-作數(shù)據(jù)的時(shí)候是按照block為單位讀寫(xiě)數(shù)據(jù)的。block是hdfs讀寫(xiě)數(shù)據(jù)的基本單位。類推,可以劃分出很多的block。每個(gè)block就是64MB大小。block本質(zhì)上是一個(gè)邏輯概念,意味著block里面不會(huì)真正的數(shù)據(jù),只是劃分文的看一 類,這里面的屬性有以下幾個(gè),如4-類中的屬性沒(méi)有一個(gè)是可以數(shù)據(jù)的為什么一定要?jiǎng)澐? 大小哪呢?因?yàn)檫@是在默認(rèn)配置文件中設(shè)置的,查4-/r/block67108864字節(jié),可以換算為64MB。如果不希望使用64MB大小,可以在core-site.xml中覆蓋該值。注意單位是字副險(xiǎn),空間的花費(fèi)還是值得的。那么,一個(gè)文件有幾個(gè)副本合適哪呢?查看hdfs-default.xml文件,如圖4-551所示4-DataNode3份數(shù)據(jù)都結(jié)看文件core-default.xml,如圖4-56所示。4-參數(shù)dfs.data.dir的值就是block存放在linux文件系統(tǒng)中的位置。變量的值前面已經(jīng)介紹了,是/usr/local/hadoop/tmp,那么dfs.data.dir的完整路徑/usr/local/hadoop/tmp/dfs/data。通過(guò)linux命令查看,結(jié)果如圖4-574-上圖中以“blk_”開(kāi)頭的文件就是數(shù)據(jù)的block。這里名是有規(guī)律的,除了block文件外,還有后綴是“meta”的文件,這是block的源數(shù)據(jù)文件,存放一些元數(shù)據(jù)信息。因此,上圖2block文件。注意:從linux磁盤上傳一個(gè)完整的文件到hdfs中,這個(gè)文件在linux是可以看到hdfsblock存在合并原理4-HDFSwebHDFS對(duì)外提供了可供的httpserver,開(kāi)放了很多端口,下面介紹常用的幾個(gè)端口50070端口,查看NameNode狀態(tài),如圖4-59所示4-core-default.xml4-60core-site.xml中自4-如果讀者通過(guò)該端口這個(gè)頁(yè)面,以為著NameNode節(jié)點(diǎn)是存活的50075端口,查看DataNode的,如圖4-61所示4-該地址和端口的定義位于hdfs-default.xml中,如圖4-62所示,讀者可以在hdfs-中自行修改4-50090端口,查看SecondaryNameNode50030端口,查看JobTracker狀態(tài)的,如圖4-63所示4-4-5006050060端口,查看TaskTracker,如圖4-65所示4-mapred-default.xml4-66mapred-site.xml中自行修4-HDFS的java接搭建Hadoop開(kāi)發(fā)環(huán)在工作中寫(xiě)完的各種代碼是在服務(wù)器中運(yùn)行的,HDFS的操作代碼也不例外。在開(kāi)發(fā)階段,使用windows下的eclipse作為開(kāi)發(fā)環(huán)境,運(yùn)行在虛擬機(jī)中的HDFS。也就是通過(guò)在本地的eclipse中的java代碼linux中的hdfs要使用宿主機(jī)中的java代碼客戶機(jī)中的hdfs,需要保證以下幾點(diǎn)確保宿主機(jī)與客戶機(jī)的網(wǎng)絡(luò)是互通確保宿主機(jī)和客戶機(jī)的都關(guān)閉,因?yàn)楹芏喽丝谛枰ㄟ^(guò),為了減少配置,直接關(guān)閉那么windows也要使用root用戶,否則會(huì)報(bào)權(quán)限異常在eclipse項(xiàng)目中覆蓋hadoop的 .apache.hadoop.fs.FileUtil類的checkReturnValue方法,如圖4-661,目的是為了避免權(quán)限錯(cuò)誤4-如果讀者在開(kāi)發(fā)過(guò)程中出現(xiàn)權(quán)限等問(wèn)題,請(qǐng)按照本節(jié)的提示檢查自己的環(huán)境使用 api讀寫(xiě)數(shù)hadoopHDFS操作中,有個(gè)非常重要api,是.apache.hadoop.fs.FileSystem,這是用戶代碼操作HDFS的直接,該類含有操作HDFS的各種方法,類似于jdbc中操作數(shù)據(jù)庫(kù)的直接是Connection類。 怎么獲得一個(gè)FileSystem對(duì)象哪Stringuri="hdfs://40:9000/";Configurationconf=newConfiguration();FileSystemfs=FileSystem.get(URI.create(uri),以上代碼中,要注意調(diào)用的是FileSystem的靜態(tài)方法get,傳遞兩個(gè)值給形式參數(shù),第一個(gè)的HDFS地址,該地址的協(xié)議是hdfs,ip是40,端口是9000.。這個(gè)地core-site.xml中指定的,讀者可以使用自己環(huán)境的配置文件中的設(shè)創(chuàng)建文件夾使用使用HDFS的 命令查看一下 下的文件情況,如圖4-67所示4-在HDFS的 下創(chuàng)建文件夾,代碼如finalStringpathString=booleanexists= booleanresult=fs.mkdirs(ne }以上代碼中創(chuàng)建的文件夾完整路徑是“/d1”。第二行代碼是使exitst判斷文件夾是否存在;如果不存在,執(zhí)行創(chuàng)建操作。創(chuàng)建文件夾,調(diào)用的是mkdirs方法,返true,表示創(chuàng)建成功;如果是false,表示創(chuàng)建失敗?,F(xiàn)在查看一下是否成功了,如 4-68,可見(jiàn)創(chuàng)建成功了4-寫(xiě)文件可以向HDFS寫(xiě)入文件,代finalStringpathString=finalFSDataOutputStreamfsDataOutputStream=fs.create(ne IOUtils.copyBytes(newByteArrayInputStream("mynameisWUCHAO".getBytes()),fsDataOutputStream,configuration,true);第一行代碼表示創(chuàng)建的文件是在剛才創(chuàng)建的d1文件夾下的文件f1;第二行是調(diào)用create方法創(chuàng)建一個(gè)通向HDFS的輸出流;第三行是通過(guò)調(diào)用hadop的一個(gè)工具類IOUils的靜態(tài)方法cyByes把一個(gè)字符串發(fā)送給輸出流中。該靜態(tài)方法有四個(gè)參數(shù),第一個(gè)參數(shù)輸入流,第二個(gè)參數(shù)是輸出流,第三個(gè)參數(shù)是配置對(duì)象,第四個(gè)參數(shù)是布爾值,如果是tre表示數(shù)據(jù)傳輸完畢后關(guān)閉流?,F(xiàn)在看一下是否創(chuàng)建成功了,如圖4-69所示4-讀文件現(xiàn)在把剛才寫(xiě)入到HDFS的文件“/d1/f1”讀出來(lái),代碼如下finalStringpathString=finalFSDataInputStreamfsDataInputStream=fs.open(ne IOUtils.copyBytes(fsDataInputStream,System.out,configuration,true);第三行還是調(diào)用IOUtils.copyBytes方法,輸出的目的地是控制臺(tái)。見(jiàn)圖4-704-查 列表和文件詳細(xì)信息可以把 下的所有文件 顯示出來(lái),代碼如finalStringpathString=finalFileStatus[]listStatus= for(FileStatusfileStatus:listStatus)finalStringtype finalshortreplication=finalStringpermission=finallonglen=finalPathpath=}調(diào)用listStatus方得到一個(gè)指定路徑下的所有文件和文件夾,每一個(gè)用FileStatus表示。我刪除文件或可以刪除某個(gè)文件或者路徑,代碼如finalStringpathString= th("/d1"),true); 除了上面列出的fs的方法外,還有很多方法,請(qǐng)讀者自己查閱apiHDFSRPCRPC是過(guò)程調(diào)用(RemoteProcedureCall),即調(diào)用其他虛擬機(jī)中運(yùn)行的javaHDFS的運(yùn)行就是建立在此基礎(chǔ)之上的。本章通過(guò)分析實(shí)現(xiàn)一個(gè)簡(jiǎn)單的RPC程序來(lái)分析下面的代碼是服務(wù)端代碼。publicclassMyServerpublicstaticfinalintSERVER_PORT=publicstaticfinalStringSERVER_ADDRESS=publicstaticvoidmain(String[]args)throwsIOExceptionfinalServerserver=RPC.getServer(newMyBiz(),SERVER_ADDRESS,SERVER_PORT,newConfiguration());}}在于第5行的RPC.getServer方法,該方法有四個(gè)參數(shù),第一個(gè)參數(shù)是被調(diào)用的務(wù)器。這樣,服務(wù)器就在指定端口客戶端的請(qǐng)求。下面的代碼是被調(diào)用的對(duì)象類-------------------------------------------------------------------------------------------------------------------------------publicclassMyBizMyBizable{publicstaticlong=2345234L;public ");return" o"+name;}publiclonggetProtocolVersion(Stringprotocol,longthrowsIOExceptionreturn}}-------------------------------------------------------------------------------------------------------------------------------被調(diào)用的對(duì)象實(shí)現(xiàn)了接口MyBizable,這里面有兩個(gè)方法被實(shí)現(xiàn),一個(gè)就 方法,另一個(gè)是getProtocalVersion方法。這 o方法有個(gè)輸出語(yǔ)句下面的代碼是調(diào)用類的接口定義-------------------------------------------------------------------------------------------------------------------------------publicinterfaceMyBizableextends o(String}-------------------------------------------------------------------------------------------------------------------------------這個(gè)接口中的方法就是剛才的Biz中實(shí)現(xiàn)的方法。接口繼承的VersionedProtocal,是端口一致。服務(wù)端被調(diào)用的類必須繼承這個(gè)接口VersionedProtocal。下面是客戶端代碼,這里使用的調(diào)用對(duì)象的接口-------------------------------------------------------------------------------------------------------------------------------publicclassMyClientpublicstaticvoidmain(String[]args)throwsExceptionfinalMyBizableproxy=(MyBizable)RPC.getProxy(MyBizable.class,MyBiz.BIZ_VERSION,newInetSocketAddress(MyServer.SERVER_ADDRESS,MyServer.SERVER_PORT),newConfiguration());finalStringresult=proxy. }}-------------------------------------------------------------------------------------------------------------------------------以上代碼中在于RPC.gePry(),該方法有四個(gè)參數(shù),第一個(gè)參數(shù)是被調(diào)用的接口第二個(gè)是客戶端版本號(hào),第三個(gè)是服務(wù)端地址。返回的對(duì)象,就是服務(wù)端對(duì)象的,內(nèi)部就是使用j.lang.Pxy實(shí)現(xiàn)的。運(yùn)行時(shí),先啟動(dòng)服務(wù)端,再啟動(dòng)客戶端。讀者可以服務(wù)端和客戶端輸出信息從上面的RPC調(diào)用中,可以看出:在客戶端調(diào)用的業(yè)務(wù)類的方法是定義在業(yè)務(wù)類的接口中的。該接口實(shí)現(xiàn)了VersionedProtocal接口?,F(xiàn)在在命令行執(zhí)行jps命令,查看輸出信息,如圖5-1所示5-MyServer。大家可以聯(lián)想到搭建hadoop環(huán)境時(shí),也執(zhí)行過(guò)該命令用來(lái)判斷hadoop的進(jìn)程是否全部啟動(dòng)3。那么可以判斷,hadoop啟動(dòng)時(shí)5java進(jìn)程也應(yīng)該是RPC的服務(wù)端。觀察NameNode的源代碼,如圖5-2,可以看到NameNode確實(shí)創(chuàng)建了RPC的服務(wù)端。5-NameNode由5.1NameNode本身就是一個(gè)java進(jìn)程。觀察圖5-2中RPC.getServer()方法的第一個(gè)參數(shù),發(fā)現(xiàn)是this,說(shuō)明NameNode本身就是一個(gè)位于服務(wù)端的被調(diào)用對(duì)象,即NameNode中的方法是可以被客戶端代碼調(diào)用的。根據(jù)RPC運(yùn)行原理可知,NameNode查看NameNode的源碼,如圖5-3所示5-NameNodeClientProtocal、DatanodeProtocal、NamenodeProtocal等接這個(gè)接口是供客戶端調(diào)用的。這里的客戶端不是指的自己寫(xiě)的代碼,而是hadoopDFSClientDFSClientClientProtocal中的方法,完該接口中的方法大部分是對(duì)HDFS的操作,如create、delete、mkdirs、rename等DataNode本節(jié)點(diǎn)的狀態(tài)和block信息。NameNode不能向DataNode發(fā)送消息,只能通過(guò)該接口中方法的返回值向DataNode傳遞消息SecondaryNameNode調(diào)用這個(gè)接口是供SecondaryNameNode調(diào)用的。SecondaryNameNode是專門做DataNode按照分析NameNode的思路,看一下DataNode的源碼接口,如圖5-45-這里有兩個(gè)接口,分別是InterDatanodeProtocal、ClientDatanodeProtocal。這里就不展 的寫(xiě)數(shù)據(jù)過(guò)程分通過(guò)FileSystem類可以操控HDFS,那就從這里開(kāi)始分析寫(xiě)數(shù)據(jù)到HDFS的過(guò)程。在向HDFS寫(xiě)文
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 21033-2025飼料中免疫球蛋白IgG的測(cè)定高效液相色譜法
- 四川省內(nèi)江市隆昌市知行中學(xué)2025-2026學(xué)年度第一學(xué)期第二次月考初中八年級(jí)數(shù)學(xué)試題(學(xué)生版+答案版)
- 廣東省汕頭市潮南區(qū)陳店公辦八校2024-2025學(xué)年七年級(jí)上學(xué)期12月月考?xì)v史試題(含答案)
- 養(yǎng)老院入住老人休閑娛樂(lè)設(shè)施管理制度
- 企業(yè)內(nèi)部保密工作培訓(xùn)制度
- 2026年中考道德與法治一輪復(fù)習(xí):易混易錯(cuò)122 題含答案
- 粗鎢酸鈉溶液制備工沖突解決模擬考核試卷含答案
- 我國(guó)上市公司管理層收購(gòu)的公司治理效應(yīng)剖析:理論、實(shí)證與案例洞察
- 鑿巖工崗前潛力考核試卷含答案
- 我國(guó)上市公司投資者關(guān)系管理的多維審視與優(yōu)化路徑
- 安全生產(chǎn)目標(biāo)及考核制度
- (2026版)患者十大安全目標(biāo)(2篇)
- 大數(shù)據(jù)安全技術(shù)與管理
- 2026青島海發(fā)國(guó)有資本投資運(yùn)營(yíng)集團(tuán)有限公司招聘計(jì)劃筆試備考試題及答案解析
- 2026年北大拉丁語(yǔ)標(biāo)準(zhǔn)考試試題
- 鼻飼技術(shù)操作課件
- 臨床護(hù)理操作流程禮儀規(guī)范
- 2025年酒店總經(jīng)理年度工作總結(jié)暨戰(zhàn)略規(guī)劃
- 空氣栓塞課件教學(xué)
- 置景服務(wù)合同范本
- 隧道掛防水板及架設(shè)鋼筋臺(tái)車施工方案
評(píng)論
0/150
提交評(píng)論