




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
分布式存儲系統(tǒng):HDFS:HDFS容錯與恢復(fù)機(jī)制1分布式存儲系統(tǒng):HDFS:HDFS容錯與恢復(fù)機(jī)制1.1HDFS概述1.1.1HDFS架構(gòu)簡介HDFS(HadoopDistributedFileSystem)是Hadoop項目的核心子項目之一,旨在為海量數(shù)據(jù)提供高吞吐量的訪問,適合一次寫入多次讀取的場景。HDFS采用主從架構(gòu),主要由以下組件構(gòu)成:NameNode:存儲元數(shù)據(jù),包括文件系統(tǒng)的命名空間和客戶端對文件的訪問操作。DataNode:存儲實際的數(shù)據(jù)塊。SecondaryNameNode:幫助NameNode進(jìn)行合并編輯日志和fsimage,減少NameNode的啟動時間。HDFS的架構(gòu)設(shè)計使得它能夠處理大規(guī)模數(shù)據(jù)集,同時通過數(shù)據(jù)冗余和故障檢測機(jī)制確保數(shù)據(jù)的高可用性和持久性。1.1.2HDFS數(shù)據(jù)存儲模型HDFS將文件分割成多個數(shù)據(jù)塊進(jìn)行存儲,每個數(shù)據(jù)塊默認(rèn)大小為128MB(在Hadoop2.x版本中)。數(shù)據(jù)塊被復(fù)制并存儲在多個DataNode上,以提高數(shù)據(jù)的可靠性和可用性。HDFS的數(shù)據(jù)存儲模型包括:數(shù)據(jù)塊(Block):文件被分割成多個數(shù)據(jù)塊,每個數(shù)據(jù)塊可以獨立存儲和處理。副本(Replication):每個數(shù)據(jù)塊都有多個副本,默認(rèn)副本數(shù)為3,分布在不同的DataNode上。機(jī)架感知(RackAwareness):HDFS知道DataNode所在的物理機(jī)架,這有助于優(yōu)化數(shù)據(jù)的讀寫性能和提高數(shù)據(jù)的可靠性。1.1.3HDFS的容錯需求HDFS設(shè)計時充分考慮了容錯性,主要體現(xiàn)在以下幾個方面:數(shù)據(jù)塊副本:通過數(shù)據(jù)塊的多個副本,即使某個DataNode發(fā)生故障,數(shù)據(jù)仍然可以從其他DataNode上讀取。心跳檢測:DataNode定期向NameNode發(fā)送心跳信號,NameNode通過心跳檢測DataNode的健康狀態(tài)。數(shù)據(jù)恢復(fù):當(dāng)檢測到數(shù)據(jù)塊丟失時,HDFS會自動在其他DataNode上創(chuàng)建新的副本,以恢復(fù)數(shù)據(jù)的完整性。1.2HDFS容錯機(jī)制詳解1.2.1數(shù)據(jù)塊副本策略HDFS通過數(shù)據(jù)塊的副本策略來提高數(shù)據(jù)的可靠性。當(dāng)一個文件被寫入HDFS時,數(shù)據(jù)塊會被復(fù)制并存儲在不同的DataNode上。副本的放置策略如下:第一個副本放置在上傳文件的DataNode上(如果上傳者是DataNode,則隨機(jī)選擇一個DataNode)。第二個副本放置在同一個機(jī)架的另一個DataNode上。第三個副本放置在另一個機(jī)架的DataNode上。這種策略確保了即使在機(jī)架級別的故障下,數(shù)據(jù)仍然可以被訪問。1.2.2心跳檢測機(jī)制DataNode通過定期向NameNode發(fā)送心跳信號來報告自己的狀態(tài)。心跳信號包含DataNode的健康狀態(tài)和它所存儲的數(shù)據(jù)塊列表。如果NameNode在一定時間內(nèi)沒有收到某個DataNode的心跳信號,它會認(rèn)為該DataNode已經(jīng)失敗,并采取相應(yīng)的數(shù)據(jù)恢復(fù)措施。1.2.3數(shù)據(jù)恢復(fù)機(jī)制當(dāng)NameNode檢測到某個數(shù)據(jù)塊的副本數(shù)低于預(yù)期時,它會啟動數(shù)據(jù)恢復(fù)過程。數(shù)據(jù)恢復(fù)機(jī)制包括:數(shù)據(jù)塊副本創(chuàng)建:NameNode會選擇一個健康的DataNode作為目標(biāo),從其他DataNode上讀取數(shù)據(jù)塊,并在目標(biāo)DataNode上創(chuàng)建新的副本。數(shù)據(jù)塊副本刪除:當(dāng)數(shù)據(jù)塊的副本數(shù)超過預(yù)期時,NameNode會刪除多余的副本,以節(jié)省存儲空間。1.3示例:HDFS數(shù)據(jù)塊副本創(chuàng)建假設(shè)我們有以下的HDFS集群配置:NameNode:nn1DataNode:dn1,dn2,dn3機(jī)架:r1,r2文件/user/stitch/test.txt被寫入HDFS,大小為256MB,因此會被分割成兩個數(shù)據(jù)塊B1和B2。假設(shè)B1的副本數(shù)為2,B2的副本數(shù)為1。#使用Hadoopfs命令查看文件的副本狀態(tài)
hadoopfs-ls/user/stitch/test.txt輸出結(jié)果可能顯示B2的副本數(shù)不足。此時,NameNode會自動在另一個DataNode上創(chuàng)建B2的副本。#模擬DataNodedn3的故障
#在實際環(huán)境中,這將由NameNode自動檢測
#這里我們手動模擬,通過停止dn3上的DataNode服務(wù)
stop-dfs.sh然后,NameNode會檢測到B2的副本數(shù)不足,并在另一個健康的DataNode上創(chuàng)建新的副本。#啟動DataNodedn3
start-dfs.shNameNode會自動檢測并恢復(fù)B2的副本數(shù),確保數(shù)據(jù)的完整性。1.4結(jié)論HDFS通過其獨特的架構(gòu)設(shè)計和容錯機(jī)制,能夠有效地處理大規(guī)模數(shù)據(jù)集的存儲和訪問,同時確保數(shù)據(jù)的高可用性和持久性。數(shù)據(jù)塊的副本策略、心跳檢測機(jī)制和數(shù)據(jù)恢復(fù)機(jī)制是HDFS容錯機(jī)制的核心組成部分,它們共同作用,使得HDFS能夠在分布式環(huán)境中提供可靠的數(shù)據(jù)存儲服務(wù)。請注意,上述示例中的代碼和數(shù)據(jù)樣例是為了說明HDFS的容錯機(jī)制而設(shè)計的,實際操作時應(yīng)根據(jù)具體的Hadoop版本和集群配置進(jìn)行調(diào)整。2HDFS的容錯機(jī)制2.1NameNode的高可用性HDFS的NameNode高可用性通過HA(HighAvailability)模式實現(xiàn)。HA模式下,HDFS集群中配置了兩個NameNode,一個處于Active狀態(tài),負(fù)責(zé)處理客戶端請求,另一個處于Standby狀態(tài),用于同步ActiveNameNode的狀態(tài),確保在ActiveNameNode故障時,StandbyNameNode可以迅速接管,保證服務(wù)的連續(xù)性。2.1.1實現(xiàn)原理狀態(tài)同步:StandbyNameNode通過定期從ActiveNameNode獲取fsimage和editlog文件,進(jìn)行狀態(tài)同步,確保其元數(shù)據(jù)與ActiveNameNode一致。故障檢測:通過Zookeeper服務(wù)進(jìn)行故障檢測,一旦ActiveNameNode故障,Zookeeper會選舉出新的ActiveNameNode。自動切換:當(dāng)檢測到ActiveNameNode故障時,Zookeeper會觸發(fā)StandbyNameNode自動切換為Active狀態(tài),繼續(xù)提供服務(wù)。2.1.2配置示例在hdfs-site.xml中配置NameNode的HA模式:<configuration>
<property>
<name>services</name>
<value>mycluster</value>
</property>
<property>
<name>nodes.mycluster</name>
<value>nn1,nn2</value>
</property>
<property>
<name>node.rpc-address.mycluster.nn1</name>
<value>namenode1:8020</value>
</property>
<property>
<name>node.rpc-address.mycluster.nn2</name>
<value>namenode2:8020</value>
</property>
<property>
<name>vider.mycluster</name>
<value>node.ha.ConfiguredFailoverProxyProvider</value>
</property>
<property>
<name>services</name>
<value>mycluster</value>
</property>
<property>
<name>dfs.ha.fencing.methods</name>
<value>shell(/sbin/ifconfigeth0down)</value>
</property>
</configuration>2.2DataNode的故障檢測與處理HDFS通過定期的心跳機(jī)制檢測DataNode的健康狀態(tài)。如果在預(yù)定時間內(nèi)未收到DataNode的心跳,NameNode會將該DataNode標(biāo)記為“死”節(jié)點,不再向其發(fā)送新的數(shù)據(jù)塊寫入請求。同時,HDFS會自動復(fù)制數(shù)據(jù)塊到其他健康的DataNode上,以確保數(shù)據(jù)的冗余性和可用性。2.2.1故障處理流程心跳檢測:DataNode定期向NameNode發(fā)送心跳,報告其狀態(tài)和數(shù)據(jù)塊信息。標(biāo)記故障:如果NameNode在預(yù)定時間內(nèi)未收到心跳,會將該DataNode標(biāo)記為故障。數(shù)據(jù)塊復(fù)制:NameNode會檢查故障DataNode上的數(shù)據(jù)塊,并將這些數(shù)據(jù)塊復(fù)制到其他健康的DataNode上,以保持?jǐn)?shù)據(jù)塊的冗余度。2.3數(shù)據(jù)塊的冗余存儲與修復(fù)HDFS默認(rèn)將每個數(shù)據(jù)塊復(fù)制三份,分別存儲在不同的DataNode上,以提高數(shù)據(jù)的可靠性和容錯性。當(dāng)檢測到某個數(shù)據(jù)塊的副本數(shù)量低于設(shè)定的冗余度時,HDFS會自動啟動數(shù)據(jù)塊的修復(fù)過程,將數(shù)據(jù)塊的副本數(shù)恢復(fù)到設(shè)定的冗余度。2.3.1冗余存儲數(shù)據(jù)塊的冗余存儲策略確保了即使部分DataNode故障,數(shù)據(jù)仍然可訪問。默認(rèn)的三副本策略可以容忍兩個DataNode同時故障,而數(shù)據(jù)仍然安全。2.3.2數(shù)據(jù)塊修復(fù)檢測副本不足:NameNode定期檢查數(shù)據(jù)塊的副本數(shù)量,一旦發(fā)現(xiàn)某個數(shù)據(jù)塊的副本數(shù)量低于設(shè)定的冗余度,就會啟動修復(fù)過程。啟動修復(fù):NameNode會選擇一個健康的DataNode作為源,從該DataNode讀取數(shù)據(jù)塊,并將其復(fù)制到另一個健康的DataNode上,直到數(shù)據(jù)塊的副本數(shù)達(dá)到設(shè)定的冗余度。2.3.3代碼示例以下是一個使用HadoopAPI檢查和修復(fù)數(shù)據(jù)塊冗余度的示例代碼:importorg.apache.hadoop.conf.Configuration;
importorg.apache.hadoop.hdfs.DistributedFileSystem;
importorg.apache.hadoop.hdfs.HdfsConfiguration;
importtocol.HdfsConstants;
publicclassBlockRedundancyCheck{
publicstaticvoidmain(String[]args)throwsException{
Configurationconf=newHdfsConfiguration();
DistributedFileSystemdfs=(DistributedFileSystem)DistributedFileSystem.create(conf);
//檢查數(shù)據(jù)塊的冗余度
dfs.setReplication(newPath("/path/to/file"),(short)HdfsConstants.REPLICATION_DEFAULT);
//修復(fù)數(shù)據(jù)塊的冗余度
dfs.addBlock(newPath("/path/to/file"),newDatanodeInfo[]{},null);
dfs.close();
}
}2.3.4代碼解釋這段代碼首先創(chuàng)建了一個Hadoop的配置對象,并使用該配置對象初始化了一個DistributedFileSystem對象。然后,通過調(diào)用setReplication方法檢查并設(shè)置文件/path/to/file的數(shù)據(jù)塊冗余度為默認(rèn)值。接著,通過調(diào)用addBlock方法嘗試為該文件添加數(shù)據(jù)塊,實際上是在修復(fù)數(shù)據(jù)塊的冗余度。最后,關(guān)閉DistributedFileSystem對象。2.4總結(jié)HDFS的容錯機(jī)制通過NameNode的高可用性、DataNode的故障檢測與處理以及數(shù)據(jù)塊的冗余存儲與修復(fù),確保了數(shù)據(jù)的高可靠性和服務(wù)的連續(xù)性。這些機(jī)制的實現(xiàn)和配置,使得HDFS能夠有效應(yīng)對分布式環(huán)境下的各種故障,為大數(shù)據(jù)處理提供了堅實的基礎(chǔ)。3HDFS的恢復(fù)機(jī)制3.1數(shù)據(jù)塊丟失的檢測與恢復(fù)HDFS(HadoopDistributedFileSystem)作為分布式文件系統(tǒng),其設(shè)計之初就考慮到了數(shù)據(jù)的容錯性。在HDFS中,數(shù)據(jù)被切分成固定大小的數(shù)據(jù)塊(默認(rèn)為128MB),并存儲在集群中的多個DataNode上。為了確保數(shù)據(jù)的高可用性和容錯性,HDFS會為每個數(shù)據(jù)塊創(chuàng)建多個副本,通常情況下,一個數(shù)據(jù)塊會有3個副本。3.1.1數(shù)據(jù)塊丟失的檢測數(shù)據(jù)塊丟失的檢測主要通過DataNode的心跳機(jī)制和BlockReport來實現(xiàn)。每個DataNode會定期向NameNode發(fā)送心跳,報告自己的狀態(tài)和所存儲的數(shù)據(jù)塊信息。如果NameNode在一定時間內(nèi)沒有收到某個DataNode的心跳,它會將該DataNode標(biāo)記為“宕機(jī)”,并認(rèn)為該DataNode上存儲的所有數(shù)據(jù)塊副本都已丟失。此外,DataNode還會定期向NameNode發(fā)送BlockReport,報告它所存儲的所有數(shù)據(jù)塊的完整列表。NameNode通過比較每個DataNode的BlockReport和它所記錄的Block信息,可以檢測出哪些數(shù)據(jù)塊副本丟失了。3.1.2數(shù)據(jù)塊丟失的恢復(fù)一旦檢測到數(shù)據(jù)塊丟失,HDFS會自動啟動數(shù)據(jù)塊的恢復(fù)流程。NameNode會查找其他DataNode上是否有該數(shù)據(jù)塊的副本,如果有,它會指示一個健康的DataNode從其他DataNode上復(fù)制丟失的數(shù)據(jù)塊副本。這個過程是透明的,用戶在讀取數(shù)據(jù)時不會感知到數(shù)據(jù)塊的丟失和恢復(fù)。3.2元數(shù)據(jù)的恢復(fù)與一致性HDFS的元數(shù)據(jù)主要由NameNode管理,包括文件系統(tǒng)的目錄樹、文件和目錄的屬性、數(shù)據(jù)塊的映射信息等。為了保證元數(shù)據(jù)的高可用性和一致性,HDFS采用了多種機(jī)制。3.2.1元數(shù)據(jù)的持久化NameNode會將元數(shù)據(jù)信息持久化到本地文件系統(tǒng)中,主要通過兩個文件來實現(xiàn):fsimage和edits。fsimage文件存儲了文件系統(tǒng)元數(shù)據(jù)的鏡像,而edits文件則記錄了自上次鏡像以來的所有事務(wù)操作。通過這兩個文件,NameNode可以在重啟時恢復(fù)元數(shù)據(jù)信息。3.2.2元數(shù)據(jù)的一致性檢查為了確保元數(shù)據(jù)的一致性,HDFS提供了元數(shù)據(jù)的一致性檢查機(jī)制。在NameNode啟動或重啟時,它會執(zhí)行一個稱為“Checkpoint”的過程,將fsimage和edits文件合并,生成一個新的fsimage文件。這個過程由SecondaryNameNode執(zhí)行,它會定期從NameNode獲取fsimage和edits文件,進(jìn)行合并,并將合并后的結(jié)果發(fā)送回NameNode。這樣,即使在NameNode重啟時,也可以通過最新的fsimage文件恢復(fù)元數(shù)據(jù),保證數(shù)據(jù)的一致性。3.3HDFS的自動恢復(fù)流程HDFS的自動恢復(fù)流程包括了數(shù)據(jù)塊的丟失檢測和恢復(fù),以及元數(shù)據(jù)的一致性檢查和恢復(fù)。這個流程是自動的,無需人工干預(yù),確保了HDFS的高可用性和數(shù)據(jù)的完整性。3.3.1數(shù)據(jù)塊的自動恢復(fù)當(dāng)NameNode檢測到數(shù)據(jù)塊丟失時,它會從其他DataNode上復(fù)制數(shù)據(jù)塊副本,以恢復(fù)丟失的數(shù)據(jù)塊。這個過程是通過DataNode之間的通信完成的,DataNode會根據(jù)NameNode的指令,從其他DataNode上讀取數(shù)據(jù)塊,并將數(shù)據(jù)塊寫入本地磁盤,從而恢復(fù)數(shù)據(jù)塊的副本數(shù)。3.3.2元數(shù)據(jù)的自動恢復(fù)當(dāng)NameNode重啟時,它會從本地文件系統(tǒng)中讀取最新的fsimage文件,恢復(fù)文件系統(tǒng)的元數(shù)據(jù)信息。如果fsimage文件不是最新的,SecondaryNameNode會執(zhí)行Checkpoint過程,將fsimage和edits文件合并,生成最新的fsimage文件,然后發(fā)送給NameNode,NameNode再從這個最新的fsimage文件中恢復(fù)元數(shù)據(jù)信息。3.3.3恢復(fù)流程的示例雖然HDFS的恢復(fù)流程是自動的,但用戶可以通過Hadoop的命令行工具來手動觸發(fā)Checkpoint過程,以檢查元數(shù)據(jù)的一致性。下面是一個示例命令:hadoopnamenode-checkpoint這個命令會觸發(fā)SecondaryNameNode執(zhí)行Checkpoint過程,將fsimage和edits文件合并,生成最新的fsimage文件。如果在集群中沒有配置SecondaryNameNode,這個命令將無法執(zhí)行。3.3.4結(jié)論HDFS的恢復(fù)機(jī)制確保了數(shù)據(jù)的高可用性和一致性,即使在DataNode或NameNode發(fā)生故障的情況下,也能自動恢復(fù)數(shù)據(jù)和元數(shù)據(jù),保證了HDFS的穩(wěn)定運(yùn)行。通過心跳機(jī)制、BlockReport、元數(shù)據(jù)的持久化和一致性檢查,HDFS能夠有效地檢測和恢復(fù)數(shù)據(jù)塊和元數(shù)據(jù)的丟失,為大數(shù)據(jù)處理提供了可靠的基礎(chǔ)。4HDFS容錯與恢復(fù)的實踐4.1配置HDFS高可用性HDFS的高可用性(HA)配置主要通過NameNode的冗余來實現(xiàn)。在HDFS中,NameNode負(fù)責(zé)管理文件系統(tǒng)的命名空間和客戶端的文件訪問元數(shù)據(jù),因此,NameNode的單點故障是HDFS高可用性配置需要解決的關(guān)鍵問題。4.1.1架構(gòu)設(shè)計HDFSHA采用主-備架構(gòu),即Active-Standby模式。在該模式下,集群中存在兩個NameNode實例,一個處于活動狀態(tài)(Active),負(fù)責(zé)處理所有客戶端請求,另一個處于備用狀態(tài)(Standby),實時同步活動NameNode的狀態(tài)信息,以便在活動NameNode發(fā)生故障時,能夠迅速接管其職責(zé)。4.1.2配置步驟配置ZookeeperFailoverController(ZKFC):ZKFC用于監(jiān)控NameNode的狀態(tài),并在NameNode故障時,觸發(fā)Failover操作,將StandbyNameNode轉(zhuǎn)換為Active狀態(tài)。配置NameNode實例:在hdfs-site.xml中,需要配置兩個NameNode的地址信息,以及Zookeeper集群的地址。配置DataNode:DataNode需要配置兩個NameNode的地址,以便在Failover發(fā)生時,能夠自動連接到新的ActiveNameNode。配置Zookeeper集群:Zookeeper集群用于存儲NameNode的狀態(tài)信息,以及協(xié)調(diào)Failover操作。4.1.3示例配置<!--hdfs-site.xml-->
<configuration>
<property>
<name>services</name>
<value>mycluster</value>
</property>
<property>
<name>nodes.mycluster</name>
<value>nn1,nn2</value>
</property>
<property>
<name>node.rpc-address.mycluster.nn1</name>
<value>namenode1:8020</value>
</property>
<property>
<name>node.rpc-address.mycluster.nn2</name>
<value>namenode2:8020</value>
</property>
<property>
<name>vider.mycluster</name>
<value>node.ha.ConfiguredFailoverProxyProvider</value>
</property>
<property>
<name>dfs.ha.fencing.methods</name>
<value>node.ha.ZKFCFencer</value>
</property>
<property>
<name>dfs.zkfc.zookeeper.quorum</name>
<value>zookeeper1,zookeeper2,zookeeper3</value>
</property>
</configuration>4.2監(jiān)控與管理HDFS健康狀態(tài)HDFS的健康狀態(tài)監(jiān)控是確保系統(tǒng)穩(wěn)定運(yùn)行的關(guān)鍵。通過監(jiān)控,可以及時發(fā)現(xiàn)并處理潛在的故障,避免數(shù)據(jù)丟失或服務(wù)中斷。4.2.1監(jiān)控指標(biāo)NameNode和DataNode的狀態(tài):確保所有節(jié)點正常運(yùn)行。DataNode的存活狀態(tài):監(jiān)控DataNode是否與NameNode保持通信。塊的副本狀態(tài):確保每個塊都有足夠的副本。磁盤空間使用情況:監(jiān)控磁盤空間,避免因空間不足導(dǎo)致的故障。4.2.2使用工具Hadoop自帶的Web界面:提供NameNode和DataNode的運(yùn)行狀態(tài)、存儲使用情況等信息。HadoopMetrics:提供詳細(xì)的系統(tǒng)性能指標(biāo),如CPU使用率、內(nèi)存使用情況、網(wǎng)絡(luò)I/O等。第三方監(jiān)控工具:如Ganglia、Nagios、Zabbix等,可以更全面地監(jiān)控HDFS的健康狀態(tài)。4.2.3示例:使用HadoopMetrics監(jiān)控HDFS#啟動HadoopMetrics
bin/hadoop-daemon.shstartmetrics
#查看Metrics信息
curlhttp://localhost:50075/jmx?qry=Hadoop:service=NameNode,name=FSNamesystemState4.3優(yōu)化HDFS容錯與恢復(fù)策略HDFS的容錯與恢復(fù)策略可以通過以下方式優(yōu)化:4
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 旋挖咬合樁施工方案
- 廣州2025年廣東廣州市花都區(qū)選調(diào)事業(yè)單位工作人員10人筆試歷年參考題庫附帶答案詳解
- 出售單車合同范例
- 代訂酒店機(jī)票合同范例
- 人防車位轉(zhuǎn)租合同范例
- 中信銀行抵押合同范例
- 買房地基合同范例
- 出售個人車輛合同范例
- 書贈與個人合同范例
- 修理類承攬合同范例
- 大學(xué)生職業(yè)素養(yǎng)訓(xùn)練(第六版)課件全套 宋賢鈞 第1-14單元 選擇職業(yè)目標(biāo)- 堅守安全底線
- 期中測試卷(1~4單元)(試題)2024-2025學(xué)年四年級上冊數(shù)學(xué)北師大版
- 內(nèi)蒙古呼和浩特市2023-2024學(xué)年九年級上學(xué)期第一次階段檢測化學(xué)試題(無答案)
- 2024年鐵路安檢員理論題庫多選題
- 煤礦煤炭銷售管理制度
- 《語文綜合實踐:重溫革命歷史 賡續(xù)紅色血脈》教案- 2023-2024學(xué)年高教版(2023)中職語文基礎(chǔ)模塊下冊
- 公路設(shè)施與交通安全作業(yè)指導(dǎo)書
- 2024年公開招聘事業(yè)單位工作人員報名登記表
- 植樹節(jié)英文主題課件
- 2024年中考語文滿分作文6篇(含題目)
- 第四單元認(rèn)位置(單元測試)2024-2025學(xué)年一年級數(shù)學(xué)上冊蘇教版
評論
0/150
提交評論