




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
大數(shù)據(jù)處理技術(shù)科信辦劉偉2014年4月第一節(jié)Mapreduce編程模型第二節(jié)hadoopHDFS原理第三節(jié)nosql之hbase第一節(jié)Mapreduce編程模型1.技術(shù)背景2.mapreduce的概念3.mapreduce的編程模型原理4mapreduce工作流程5.mapreduce的局限1.技術(shù)背景:分布式并行計(jì)算是大數(shù)據(jù)(pb)處理的有效方法,編寫正確高效的大規(guī)模并行分布式程序是計(jì)算機(jī)工程領(lǐng)域的難題。并行計(jì)算的模型、計(jì)算任務(wù)分發(fā)、計(jì)算機(jī)結(jié)果合并、計(jì)算節(jié)點(diǎn)的通訊、計(jì)算節(jié)點(diǎn)的負(fù)載均衡、計(jì)算機(jī)節(jié)點(diǎn)容錯(cuò)處理、節(jié)點(diǎn)文件的管理等方面都要考慮。為了解決上述復(fù)雜的問(wèn)題,谷歌設(shè)計(jì)一個(gè)新的抽象模型,使用這個(gè)抽象模型,普通程序員只要表述他們想要執(zhí)行的簡(jiǎn)單運(yùn)算即可,而不必關(guān)心并行計(jì)算、容錯(cuò)、數(shù)據(jù)分布、負(fù)載均衡等復(fù)雜的細(xì)節(jié),這些問(wèn)題都被封裝了,交個(gè)了后臺(tái)程序來(lái)處理。這個(gè)模型就是mapreduce。谷歌2004年公布的mapreduce編程模型,在工業(yè)界、學(xué)術(shù)界產(chǎn)生巨大影響,以至于談大數(shù)據(jù)必談mapreduce。工業(yè)界試圖做的事情就是要實(shí)現(xiàn)一個(gè)能夠媲美或者比Googlemapreduce更好的系統(tǒng),多年的努力下來(lái),Hadoop(開(kāi)源)脫穎而出,成為外界實(shí)現(xiàn)MapReduce計(jì)算模型事實(shí)上的標(biāo)準(zhǔn),圍繞著Hadoop,已經(jīng)形成了一個(gè)龐大的生態(tài)系統(tǒng)。2.mapreduce的概念:MapReduce是一個(gè)編程模型,一個(gè)處理和生成超大數(shù)據(jù)集的算法模型的相關(guān)實(shí)現(xiàn)。簡(jiǎn)單的一句話解釋MapReduce就是“任務(wù)的分解與結(jié)果的匯總”。mapreduce成功的最大因素是它簡(jiǎn)單的編程模型。程序員只要按照這個(gè)框架的要求,設(shè)計(jì)map和reduce函數(shù),剩下的工作,如分布式存儲(chǔ)、節(jié)點(diǎn)調(diào)度、負(fù)載均衡、節(jié)點(diǎn)通訊、容錯(cuò)處理和故障恢復(fù)都由mapreduce框架(比如hadoop)自動(dòng)完成,設(shè)計(jì)的程序有很高的擴(kuò)展性。3.mapreduce的編程模型原理:開(kāi)發(fā)人員用兩個(gè)函數(shù)表達(dá)這個(gè)計(jì)算:Map和Reduce。即:(input)<k1,v1>====>map(k1,v1)->list(k2,v2)===>
combine---><k2,v2[List]>=>
reduce(k2,list(v2))->list(v2)
>(output)單詞統(tǒng)計(jì)單詞統(tǒng)計(jì)
map(Stringkey,Stringvalue):
//key:documentname
//value:documentcontents
foreachwordwinvalue:
EmitIntermediate(w,“1″);
reduce(Stringkey,Iteratorvalues):
//key:aword
//values:alistofcounts
intresult=0;
foreachvinvalues:
result+=ParseInt(v);
Emit(AsString(result));一共分分為map(分解解)shuffle(洗牌牌)reduce(歸并并)三個(gè)個(gè)階段段。map階段,,每個(gè)個(gè)節(jié)點(diǎn)點(diǎn)調(diào)用用程序序員編編寫的的map函數(shù),,作用用于每每一個(gè)個(gè)在此此節(jié)點(diǎn)點(diǎn)存放放的鍵鍵值對(duì)對(duì),map函數(shù)的的輸出出同樣樣是一一些鍵鍵值對(duì)對(duì),中中間結(jié)結(jié)果進(jìn)進(jìn)入shuffle階段,,shuffle系統(tǒng)自自動(dòng)完完成,,程序序員無(wú)無(wú)須也也無(wú)法法控制制,shuffle階段會(huì)會(huì)把所所有中中間結(jié)結(jié)果里里的鍵鍵相同同的所所有鍵鍵-值對(duì)通通過(guò)網(wǎng)網(wǎng)絡(luò)傳傳遞給給同一一個(gè)目目標(biāo)節(jié)節(jié)點(diǎn)。。在最最后的的reduce階段,,每個(gè)個(gè)節(jié)點(diǎn)點(diǎn)會(huì)對(duì)對(duì)所有有鍵相相同的的鍵值值對(duì)調(diào)調(diào)用程程序員員編寫寫的reduce函數(shù),,輸出出最終終結(jié)果果。4.mapreduce工作流流程Map階段::數(shù)據(jù)據(jù)經(jīng)過(guò)過(guò)分片片化成成M個(gè)數(shù)據(jù)據(jù)集,,每個(gè)個(gè)數(shù)據(jù)據(jù)集由由一個(gè)個(gè)maper節(jié)點(diǎn)經(jīng)經(jīng)過(guò)map函數(shù)處處理成成key-value對(duì)形式式的數(shù)數(shù)據(jù)集集。Shuffle階段::map輸出的的結(jié)果果放在在maper節(jié)點(diǎn)本本地內(nèi)內(nèi)存緩緩存區(qū)區(qū),緩緩存區(qū)區(qū)先按按照key進(jìn)行分分區(qū)((如果果有R個(gè)reducer,hash(key)modR分成R個(gè)分區(qū)區(qū),初初步劃劃分))、分分區(qū)內(nèi)內(nèi)對(duì)key排序(排序序后可附加加combiner合并操作,,減少寫磁磁盤數(shù)據(jù)量量),緩沖沖區(qū)快要溢溢出時(shí),溢溢寫文件,,多個(gè)溢寫寫文件合并并,合并過(guò)過(guò)程再次排排序(排序序后可附加加combiner合并操作)),最后形形成一個(gè)已已經(jīng)分區(qū)的的、已經(jīng)排排序(對(duì)key的排序)的的文件。Reduce端會(huì)把屬于于本區(qū)的數(shù)數(shù)據(jù)?。╢etch)到內(nèi)存,,進(jìn)行合并并,合并過(guò)過(guò)程再次排排序,緩沖沖區(qū)快要溢溢出時(shí),溢溢寫文件,,多個(gè)溢寫寫文件合并并,合并過(guò)過(guò)程再次排排序,合并并為更大的的排序文件件,最終實(shí)實(shí)現(xiàn)reduce輸入數(shù)據(jù)是是經(jīng)過(guò)排序序(對(duì)key的排序)的的數(shù)據(jù)。有有r個(gè)reduce,就有r個(gè)結(jié)果。其實(shí)不管在在map端還是reduce端,MapReduce都是反復(fù)地地執(zhí)行排序序,合并操操作,所以以說(shuō):mapreduce是大數(shù)據(jù)處處理的靈魂魂,排序是mapreduce的靈魂。Reduce階段:最后后一次合并并的數(shù)據(jù)總總是直接送送到Reduce函數(shù)那里,,Reduce函數(shù)會(huì)作用用在排序輸輸入的每一一個(gè)key-list(value)上,最后后的輸出key-value對(duì)被直接寫寫到HDFS上(分布式式文件系統(tǒng)統(tǒng))。5.mapreduce的局限一個(gè)mapreduce任務(wù)的瓶頸頸往往在中中間的shuffle階段。啟動(dòng)開(kāi)銷大大,簡(jiǎn)單任任務(wù)也要盡盡力map-shuffle-redcuce三個(gè)階段,,無(wú)法實(shí)時(shí)時(shí)響應(yīng)。只只能處理靜靜態(tài)數(shù)據(jù),,對(duì)于變化化快的數(shù)據(jù)據(jù)無(wú)能為力力。mapreduce的系統(tǒng)實(shí)現(xiàn)現(xiàn)是谷歌的的機(jī)密,據(jù)據(jù)說(shuō)2007年谷歌mapreduce版本比2012年hadoop快一個(gè)數(shù)量量級(jí)。Hadoop的mapreduce框架在2013年升級(jí)mapreduceV2,yarn。第二節(jié)HDFS(hadoop分布式文件件系統(tǒng))1.三個(gè)部分:客戶端、nameserver(可理解為為主控和文文件索引,類似linux的inode)、datanode(存放實(shí)際際數(shù)據(jù))2、如何寫數(shù)數(shù)據(jù)過(guò)程2、如何寫數(shù)數(shù)據(jù)過(guò)程2、如何寫數(shù)數(shù)據(jù)過(guò)程3、讀取數(shù)據(jù)據(jù)過(guò)程4、容錯(cuò):第第一部分::故障類型型及其檢測(cè)測(cè)方法(nodeserver故障,和網(wǎng)網(wǎng)絡(luò)故障,,和臟數(shù)據(jù)據(jù)問(wèn)題)4、容錯(cuò):第第一部分::故障類型型及其檢測(cè)測(cè)方法(nodeserver故障,和網(wǎng)網(wǎng)絡(luò)故障,,和臟數(shù)據(jù)據(jù)問(wèn)題)5、容錯(cuò)第二二部分:讀讀寫容錯(cuò)6、容錯(cuò)第三三部分:dataNode失效7、備份規(guī)則則8、結(jié)束語(yǔ)第三節(jié)nosql——hbase為什么要用用HBase?1.數(shù)據(jù)集成長(zhǎng)長(zhǎng)為tb和pb級(jí)2.橫向擴(kuò)展((增加節(jié)點(diǎn)點(diǎn))比擴(kuò)容容便宜,通通過(guò)添加節(jié)節(jié)點(diǎn)即可適適應(yīng)數(shù)據(jù)的的持續(xù)增長(zhǎng)長(zhǎng)*出于同樣的的原因,我們需要Hadoop,但有時(shí)Hadoop是不夠的3.需要支持隨隨機(jī)讀取和和隨機(jī)寫入入4,傳統(tǒng)數(shù)據(jù)庫(kù)庫(kù)擴(kuò)容很昂昂貴,而且且數(shù)據(jù)很難難分發(fā)(分分布式計(jì)算算)HBase是什么??分布式?列式數(shù)據(jù)庫(kù)庫(kù)?多維?高可用性?高性能?存儲(chǔ)系統(tǒng)目標(biāo):十億億行*數(shù)百百萬(wàn)列*成成千上萬(wàn)的的版本Pb級(jí)數(shù)據(jù)分布布在成千上上萬(wàn)的服務(wù)務(wù)器節(jié)點(diǎn)上上HBase不是…不是傳統(tǒng)的的SQL數(shù)據(jù)庫(kù)——沒(méi)有連接,沒(méi)有查詢引引擎,沒(méi)有類型,沒(méi)有SQL——有事務(wù)和二二級(jí)索引,,但這些是是插件,而不是HBase的核心部分分?作為RDBMS的替代?必須了解RDBMS相反的模式式——非標(biāo)準(zhǔn)的數(shù)數(shù)據(jù)——表格很寬,數(shù)據(jù)分布稀稀疏HBase是如何工作作的呢?兩種類型的的HBase節(jié)點(diǎn):Master管理節(jié)點(diǎn)和和RegionServer分區(qū)節(jié)點(diǎn)?master(只有一個(gè)個(gè)管理節(jié)點(diǎn)點(diǎn))——管理集群的的操作?任務(wù)調(diào)度、、負(fù)載平衡衡、數(shù)據(jù)分分裂——它不負(fù)責(zé)讀讀/寫數(shù)據(jù)——通過(guò)ZooKeeperandstandbys(備用服務(wù)務(wù)器)實(shí)現(xiàn)現(xiàn)高度可用用性?RegionServer(一個(gè)或多個(gè)個(gè))——存表格的節(jié)節(jié)點(diǎn):執(zhí)行行讀取、緩緩沖寫——與客戶端直直接點(diǎn)對(duì)點(diǎn)點(diǎn)進(jìn)行讀/寫HBase表?一個(gè)HBase集群是由任任意數(shù)量的的用戶定義義的表組成成?表模式只定定義列族——每個(gè)列族包包含任意數(shù)數(shù)量的列——每一列包包含任意意數(shù)量的的版本——列只在插插入時(shí)才才產(chǎn)生,空值不占占用空間間——除了表名名和列族族名外,,所有的的數(shù)據(jù)都都是字節(jié)節(jié)存儲(chǔ)——表中的行行已被排排序,順順序存儲(chǔ)儲(chǔ)——列族里列列也被排排序,順順序存儲(chǔ)儲(chǔ)(表、行、列族、、列,時(shí)間戳)值HBase表數(shù)據(jù)結(jié)結(jié)構(gòu)?一張表里里行的映映射與其其列族是是一個(gè)有有序映射射關(guān)系——SortedMap(rowlist(ColumnFamilies))?一個(gè)列族族里的列列名與版版本值是是一個(gè)有有序映射射關(guān)系——SortedMap(columnSortedMap(VersionedValues))?一列里時(shí)時(shí)間戳與與值是一一個(gè)有序序映射關(guān)關(guān)系------SortedMap(TimestampValue)HBase表是一個(gè)個(gè)三維有有序的映映射表SortedMap(RowKey,List(SortedMap(Column,List(SortedMap(Timestamp,Value)))))–rowKey(ASC)+columnLabel(ASC)+Version(DESC)-->value行鍵升序序列族:列列名時(shí)時(shí)間戳戳valuerow=row0,column=anchor:bar,……row=row0,column=anchor:foo,row=row0,column=anchor:foo,row=row1,column=anchor:bar,row=row1,column=anchor:foo,row=row1,column=anchor:foo,row=row2,column=anchor:bar,row=row2,column=anchor:foo,row=row2,column=anchor:foo,特點(diǎn)良好的的壓縮縮比。。由于于大多多數(shù)數(shù)數(shù)據(jù)庫(kù)庫(kù)設(shè)計(jì)計(jì)都有有冗余余,如如此一一來(lái),,壓縮縮比非非常高高,把把40多M的數(shù)據(jù)據(jù)導(dǎo)入入infobright,沒(méi)想想到數(shù)數(shù)據(jù)文文件只只有1M多列上的的計(jì)算算非常常的快快。方便MapReduce和Key-value模型的的融合合讀取整整行的的數(shù)據(jù)據(jù)較慢慢,但但部分分?jǐn)?shù)據(jù)據(jù)較快快HBaseRegions?表由任任意數(shù)數(shù)量的的Regions組成?regions用startKey和endKey來(lái)標(biāo)記記——空表:(Table,NULL,NULL)------兩個(gè)region表:(Table,NULL,““MidKey”)and(Table,““MidKey”,NULL)?一個(gè)region放在一一個(gè)RegionServer節(jié)點(diǎn)上上?多個(gè)region,可能放放在一一個(gè)不不同的的節(jié)點(diǎn)點(diǎn)上,,每一一個(gè)region由若干干個(gè)HDFSfilesandblocks組成,每個(gè)HDFSfilesandblocks由Hadoop復(fù)制,,保存存多個(gè)個(gè)副本本。HBase架構(gòu)?region信息和和位置置信息息存儲(chǔ)儲(chǔ)在特特殊目目錄表表----ROOT表包含含元數(shù)數(shù)據(jù)表表的位位置----.META表包含含userregions的模式式(結(jié)結(jié)構(gòu)說(shuō)說(shuō)明))和位位置信信息?-ROOT的位置置存儲(chǔ)儲(chǔ)在zookeeper上,-這是““引導(dǎo)導(dǎo)”區(qū)區(qū)?zookeeper節(jié)點(diǎn)用用于協(xié)協(xié)調(diào)/監(jiān)控——引導(dǎo)集集群選選舉一一個(gè)節(jié)節(jié)點(diǎn)作作為master節(jié)點(diǎn)——檢測(cè)RegionServer節(jié)點(diǎn)故故障的的臨臨時(shí)節(jié)節(jié)點(diǎn)((故障障信息息傳遞遞給master處理))HBase關(guān)鍵特特性?數(shù)據(jù)的的自動(dòng)動(dòng)分區(qū)區(qū)——數(shù)據(jù)的的增長(zhǎng)長(zhǎng),region是自動(dòng)動(dòng)分裂裂?數(shù)據(jù)透透明分分布——節(jié)點(diǎn)間間的負(fù)負(fù)載自自動(dòng)均均衡?表按照照行排排序,,行按按照列列排序序——這個(gè)設(shè)設(shè)計(jì)可可以高高效讀讀取和和掃描描——組合鍵鍵(即即列))可以以排序序也可可以分分組?有服務(wù)務(wù)器端端的過(guò)過(guò)濾功功能?因?yàn)榧蒢ooKeeper,所以以沒(méi)有有單點(diǎn)點(diǎn)故障障?在線狀狀態(tài)下下(不不終止止服務(wù)務(wù)的情情況下下)快快速添添加/移除的的節(jié)點(diǎn)點(diǎn)——移動(dòng)數(shù)數(shù)據(jù)的的位置置,不不移動(dòng)動(dòng)數(shù)據(jù)據(jù)(指指向另另外兩兩個(gè)備備份的的中的的一個(gè)個(gè))?在線狀狀態(tài)下下(不不終止止服務(wù)務(wù)的情情況下下)支支持創(chuàng)創(chuàng)建/修改表表——可以配配置表表和列列族的的參數(shù)數(shù)?與HadoopMapReduce關(guān)系密密切::-TableInputFormat/TableOutputForma表輸入入/輸出格格式化化HFileOutputFormat文件輸輸出格格式化化(都都是mapreduce計(jì)算))HBase訪問(wèn)接接口NativeJavaClient/API–Get,Scan,Put,Deleteclasses–HTableforread/write,HBaseAdminforadminstuff?Non-JavaClients–Thriftserver(Ruby,C++,PHP,etc)–RESTserver(stargatecontrib)?HBaseShell–Jrubyshellsupportsput,delete,get,scan–Alsosupportsadministrativetasks?TableInputFormat/TableOutputFormatHBase插件?MapReduce/Cascading/Hive/Pig–SupportforHBaseasadatasourceorsink?TransactionalHBase–DistributedtransactionsusingOCC?IndexedHBase–UtilizesTransactionalHBaseforsecondaryindexing?IHbase–Newcontribforin-memorysecondaryindexes?HBql–SQLsyntaxontopofHBase今天,,HBase已經(jīng)是是Apache頂級(jí)項(xiàng)項(xiàng)目,,有著著眾多多的開(kāi)開(kāi)發(fā)人人員和和興旺旺的用用戶社社區(qū)。。它成成為一一個(gè)核核心的的基礎(chǔ)礎(chǔ)架構(gòu)構(gòu)部件件,運(yùn)運(yùn)行在在世界界上許許多公公司((如StumbleUpon、TrendMicro、Facebook、Twitter、Salesforce和Adobe)的大大規(guī)模模生產(chǎn)產(chǎn)環(huán)境境中。。HBase網(wǎng)頁(yè)搜搜索的的例子子?存儲(chǔ)搜搜索到到的網(wǎng)網(wǎng)頁(yè)數(shù)數(shù)據(jù)–搜索表表有一一個(gè)content列族–RowisURLwithColumns行是是url(統(tǒng)統(tǒng)一一資資源源定定位位符符,,網(wǎng)網(wǎng)頁(yè)頁(yè)的的地地址址)),,列列族族是是content?content:data列::storesrawcrawleddata(存存儲(chǔ)儲(chǔ)抓抓起起到到的的具具體體網(wǎng)網(wǎng)頁(yè)頁(yè)數(shù)數(shù)據(jù)據(jù)))?content:language列::storeshttplanguageheader(存儲(chǔ)語(yǔ)語(yǔ)言)?content:type列:storeshttpcontent-typeheader(存儲(chǔ)內(nèi)內(nèi)容的類類型)–如果需要要對(duì)原始始數(shù)據(jù)的的超鏈接接和圖片片進(jìn)行處處理增加列族族linksandimages,列名:<url>?links:<url>:保存超超鏈接?images:<url>:保存存圖片Row=url1Rdbms網(wǎng)頁(yè)搜索索的例子子傳統(tǒng)的數(shù)數(shù)據(jù)庫(kù)里里如何保保存數(shù)據(jù)據(jù)?------網(wǎng)頁(yè)表表表包含::url列,data列,language列,type列------鏈接表表包含含:url列,link列-----圖片表表包含含:url列,image列表格的的規(guī)模模怎樣樣?------––10Mdocumentsw/avg10linksand10images(平均均每個(gè)個(gè)網(wǎng)頁(yè)頁(yè)有10個(gè)鏈接接和10張圖片片,一一共共有10m個(gè)網(wǎng)網(wǎng)頁(yè)內(nèi)內(nèi)容))------––210Mtotalrowsversus10Mtotalrows(rdbms需要210m條記錄錄來(lái)存存儲(chǔ)這這些內(nèi)內(nèi)容而而hbase只要10m條記錄錄來(lái)存存儲(chǔ)))-----–––Indexbloatwithlinks/images(
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 撤銷押金合同范本
- 二零二五年度學(xué)歷提升與學(xué)術(shù)交流合作協(xié)議
- 二零二五年度醫(yī)療糾紛和解賠償協(xié)議
- 二零二五年度社區(qū)服務(wù)中心裝修合同違約賠償及居民服務(wù)協(xié)議
- 社交媒體平臺(tái)運(yùn)營(yíng)策略與實(shí)戰(zhàn)技巧
- 二零二五年度蔬菜大棚農(nóng)業(yè)產(chǎn)業(yè)園區(qū)招商與開(kāi)發(fā)合同
- 二零二五年度房產(chǎn)中介員工福利保障及績(jī)效考核合同
- 二零二五年度小產(chǎn)權(quán)房屋買賣與物業(yè)管理合同
- 2025年度知識(shí)產(chǎn)權(quán)侵權(quán)民事糾紛調(diào)解與和解合同
- 二零二五年度酒店并購(gòu)合同范本:酒店集團(tuán)并購(gòu)整合案例解析
- 幼兒園大班音樂(lè)教案《我們多快樂(lè)》
- GB/T 22919.9-2024水產(chǎn)配合飼料第9部分:大口黑鱸配合飼料
- 體育與兒童心理健康教育教材教學(xué)課件
- 婚姻家庭法(第三版)教案全套 項(xiàng)目1-9 婚姻家庭法概述-特殊婚姻家庭關(guān)系
- 可持續(xù)采購(gòu)與供應(yīng)鏈管理
- 心肺復(fù)蘇及AED教學(xué)
- 電梯維保經(jīng)營(yíng)計(jì)劃書
- 工程部部門助理崗位職責(zé)
- 急需學(xué)科專業(yè)引導(dǎo)發(fā)展清單
- DB4401-T 71-2020 臭氧-活性炭深度凈水工藝設(shè)計(jì)與運(yùn)行管理技術(shù)規(guī)程
- 會(huì)計(jì)廉政培訓(xùn)課件
評(píng)論
0/150
提交評(píng)論