淺析HDFS架構和設計-創(chuàng)新互聯(lián)

作者 | 大尊

創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務領域包括:成都網站制作、成都做網站、企業(yè)官網、英文網站、手機端網站、網站推廣等服務,滿足客戶于互聯(lián)網時代的成縣網站設計、移動媒體設計的需求,幫助企業(yè)找到有效的互聯(lián)網解決方案。努力成為您成熟可靠的網絡建設合作伙伴!

hdfs是hadoop的分布式文件系統(tǒng),即Hadoop Distributed Filesystem。下面主要講下HDFS設計中的比較重要的點,使讀者能通過簡短的文章一窺HDFS的全貌,適合對HDFS有一點了解,但是對HDFS又感到困惑的初學者。本文主要參考的是hadoop 3.0的官方文檔。

鏈接:http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/HdfsDesign.html

當數(shù)據集的大小超過了一臺物理機所能存儲的能力時,就需要將它進行分區(qū)并存儲到若干不同的獨立的計算機上,其中管理跨多臺計算機存儲的文件系統(tǒng)稱為分布式文件系統(tǒng)。

目錄
  • 使用HDFS的場景

  • HDFS的工作模式

  • 文件系統(tǒng)命名空間(namespace)

  • 數(shù)據復制

  • 文件系統(tǒng)元數(shù)據的持久化

  • 通訊協(xié)議

  • 健壯性

  • 數(shù)據組織

  • 可訪問性

  • 存儲空間回收

1、使用HDFS的場景

HDFS適合于以流式數(shù)據訪問模式來存儲超大的文件。即一次寫入,多次讀取,在數(shù)據集上長時間進行各種分析,每次分析都涉及該數(shù)據集數(shù)據的大部分甚至全部,對于超大文件,hadoop目前以支持存儲PB級數(shù)據。

HDFS并不適合要求低時間延遲數(shù)據訪問的應用,因為HDFS是為高數(shù)據吞吐量應用而優(yōu)化的,這就有可能以時間延遲大為代價。

HDFS文件系統(tǒng)所能存儲的文件總數(shù)受限于namenode的內存容量,根據經驗,100百萬的文件,且每個文件占一個數(shù)據塊,那至少需要300MB的內存。

目前hadoop文件可能只有一個writer,而且寫操作總是將數(shù)據添加在文件末尾,不支持在文件的任意位置進行修改。

相對于普通文件系統(tǒng)的數(shù)據塊,HDFS也有塊的概念,默認是128MB,HDFS上的文件也被劃分成塊大小的多個分塊,作為獨立的存儲單元,不過HDFS中小于一個塊大小的文件不會占據整個塊的空間。如果沒有特別指出,文中提到的塊特指HDFS的塊。

為何HDFS的塊如此之大,其目的是為了最小化尋址開銷。這個數(shù)也不能設置的過大,mapreduce中的map任務通常一次只處理一個塊中的數(shù)據,因此如果任務數(shù)太少,作業(yè)的運行速度就會比較慢。

2、HDFS的工作模式

HDFS采用master/slave架構,即一個namenode(管理者)多個datanode(工作者)。

namenode負責管理文件系統(tǒng)的命名空間。維護著文件系統(tǒng)樹和整個樹內所有的文件和目錄,這些信息都保存在兩個文件中,命名空間鏡像文件和編輯日志文件。namenode也記錄了每個文件中各個塊所在的數(shù)據節(jié)點信息。datanode是文件系統(tǒng)的工作節(jié)點,它們需要存儲并檢索數(shù)據塊(受客戶端或namenode調度),并定期向namenode發(fā)送它們所存儲的塊的列表。

如果沒有namenode,文件系統(tǒng)將無法使用,因為我們不知道如何根據datanode的塊重建文件,所以對namenode進行容錯是非常重要的。為此hadoop提供了兩種機制。

第一種機制是備份那些組成文件系統(tǒng)元數(shù)據持久狀態(tài)的文件。一般,在將持久化文件寫入本地磁盤的同時,寫入遠程掛載的NFS。

第二種方法是運行一個輔助namenode,這個輔助namenode定期通過編輯日志合并命名空間鏡像,并在本地保存合并后的命名空間鏡像的副本,在namenode發(fā)生故障時啟用。但是在主節(jié)點失效時,難免會丟失部分數(shù)據,這時可以把存儲在NFS的namenode元數(shù)據復制到輔助的namenode上作為新的namenode運行。這其中涉及到故障轉移的機制。稍后會做一點分析。

3、文件系統(tǒng)命名空間(namespace)

HDFS支持傳統(tǒng)的層次型文件組織結構。用戶或者應用程序可以創(chuàng)建目錄,然后將文件保存在這些目錄里。

文件系統(tǒng)名字空間的層次結構和大多數(shù)現(xiàn)有的文件系統(tǒng)類似:用戶可以創(chuàng)建、刪除、移動或重命名文件。HDFS支持用戶磁盤配額和訪問權限控制,目前還不支持硬鏈接和軟鏈接。但是HDFS架構并不妨礙實現(xiàn)這些特性。

Namenode負責維護文件系統(tǒng)的名字空間,任何對文件系統(tǒng)名字空間或屬性的修改都將被Namenode記錄下來。應用程序可以設置HDFS保存的文件的副本數(shù)目。文件副本的數(shù)目稱為文件的副本系數(shù),這個信息也是由Namenode保存的。

4、數(shù)據復制

HDFS被設計成能夠在一個大集群中跨機器可靠地存儲超大文件。它將每個文件存儲成一系列的數(shù)據塊,除了最后一個,所有的數(shù)據塊都是同樣大小的。

為了容錯,文件的所有數(shù)據塊都會有副本。每個文件的數(shù)據塊大小和副本系數(shù)都是可配置的。 應用程序可以指定某個文件的副本數(shù)目。副本系數(shù)可以在文件創(chuàng)建的時候指定,也可以在之后改變。

HDFS中的文件都是一次性寫入的,并且嚴格要求在任何時候只能有一個寫入者。

Namenode全權管理數(shù)據塊的復制,它周期性地從集群中的每個Datanode接收心跳信號和塊狀態(tài)報告(Blockreport)。當一個Datanode啟動時,它會掃描本地文件系統(tǒng),產生一個這些本地文件對應的所有HDFS數(shù)據塊的列表,然后作為報告發(fā)送到Namenode,這個報告就是塊狀態(tài)報告。接收到心跳信號意味著該Datanode節(jié)點工作正常。塊狀態(tài)報告包含了一個該Datanode上所有數(shù)據塊的列表。

數(shù)據塊列表獲取。查看數(shù)據塊的健康狀態(tài):hdfs fsck / -files -block或者hdfs fsck /

HDFS的數(shù)據塊存儲在以_blk為前綴名的文件中,每個塊還有一個相關的帶有.meta后綴的元數(shù)據文件,元數(shù)據文件包括頭部和該塊各區(qū)段的一系列校驗和。

當數(shù)據塊的數(shù)量增加到一定規(guī)模時,datanode會創(chuàng)建一個子目錄來存放新的數(shù)據塊及元數(shù)據信息。如果當前目錄已經存儲了64個(通過dfs.datanode.numlocks屬性設置)數(shù)據塊時,就創(chuàng)建一個子目錄,終極目標是設計一顆高扇出的目錄樹。

如果dfs.datanode.data.dir屬性指定了不同磁盤的多個目錄,那么數(shù)據塊會以輪轉(round-robin)的方式寫入到各個目錄中。

在每個datanode上也會運行一個塊掃描器,定期檢測本節(jié)點上的所有塊,從而在客戶端讀取到壞塊之前就及時的檢測和修復壞塊。默認情況下每隔3周會測試塊的狀態(tài),并對可能的故障進行修復。

用戶可以通過http://datanode:50070/blockScannerReport獲取該datanode的塊檢測報告。

副本存放

副本的存放是HDFS可靠性和性能的關鍵。優(yōu)化的副本存放策略是HDFS區(qū)分于其他大部分分布式文件系統(tǒng)的重要特性。這種特性需要做大量的調優(yōu),并需要經驗的積累。HDFS采用一種稱為機架感知(rack-aware)的策略來改進數(shù)據的可靠性、可用性和網絡帶寬的利用率。目前實現(xiàn)的副本存放策略只是在這個方向上的第一步。

通過一個機架感知的過程,Namenode可以確定每個Datanode所屬的機架id。一個簡單但沒有優(yōu)化的策略就是將副本存放在不同的機架上。這樣可以有效防止當整個機架失效時數(shù)據的丟失,并且允許讀數(shù)據的時候充分利用多個機架的帶寬。這種策略設置可以將副本均勻分布在集群中,有利于當組件失效情況下的負載均衡。但是,因為這種策略的一個寫操作需要傳輸數(shù)據塊到多個機架,這增加了寫的代價。

在大多數(shù)情況下,副本系數(shù)是3,HDFS的存放策略是將一個副本存放在本地機架的節(jié)點上,一個副本放在同一機架的另一個節(jié)點上,最后一個副本放在不同機架的節(jié)點上。這種策略減少了機架間的數(shù)據傳輸,這就提高了寫操作的效率。

而在現(xiàn)實中,在hadoop2.0中,datanode數(shù)據副本存放磁盤選擇策略有兩種方式:

第一種是沿用hadoop1.0的磁盤目錄輪詢方式,實現(xiàn)類:

RoundRobinVolumeChoosingPolicy.java

第二種是選擇可用空間足夠多的磁盤方式存儲,實現(xiàn)類:AvailableSpaceVolumeChoosingPolicy.java

第二種策略對應的配置項是:

淺析HDFS架構和設計

如果不配置,默認使用第一種方式,既輪詢選擇磁盤來存儲數(shù)據副本,但是輪詢的方式雖然能夠保證所有磁盤都能夠被使用,但是經常會出現(xiàn)各個磁盤直接數(shù)據存儲不均衡問題,有的磁盤存儲得很滿了,而有的磁盤可能還有很多存儲空間沒有得到利用,所有在hadoop2.0集群中,最好將磁盤選擇策略配置成第二種,根據磁盤空間剩余量來選擇磁盤存儲數(shù)據副本,這樣一樣能保證所有磁盤都能得到利用,還能保證所有磁盤都被利用均衡。

在采用第二種方式時還有另外兩個參數(shù)會用到:

淺析HDFS架構和設計

默認值是10737418240,既10G,一般使用默認值就行。官方解釋為,首先計算出兩個值,一個是所有磁盤中大可用空間,另外一個值是所有磁盤中最小可用空間,如果這兩個值相差小于該配置項指定的閥值時,則就用輪詢方式的磁盤選擇策略選擇磁盤存儲數(shù)據副本。

淺析HDFS架構和設計

默認值是0.75f,一般使用默認值就行。官方解釋為,有多少比例的數(shù)據副本應該存儲到剩余空間足夠多的磁盤上。該配置項取值范圍是0.0-1.0,一般取0.5-1.0,如果配置太小,會導致剩余空間足夠的磁盤實際上沒分配足夠的數(shù)據副本,而剩余空間不足的磁盤取需要存儲更多的數(shù)據副本,導致磁盤數(shù)據存儲不均衡。

副本選擇

為了降低整體的帶寬消耗和讀取延時,HDFS會盡量讓讀取程序讀取離它最近的副本。如果在讀取程序的同一個機架上有一個副本,那么就讀取該副本。如果一個HDFS集群跨越多個數(shù)據中心,那么客戶端也將首先讀本地數(shù)據中心的副本。

安全模式

Namenode啟動后會進入一個稱為安全模式的特殊狀態(tài)。 處于安全模式的Namenode是不會進行數(shù)據塊的復制的。Namenode從所有的 Datanode接收心跳信號和塊狀態(tài)報告。塊狀態(tài)報告包括了某個Datanode所有的數(shù)據塊列表。每個數(shù)據塊都有一個指定的最小副本數(shù)。

當Namenode檢測確認某個數(shù)據塊的副本數(shù)目達到這個最小值(最小值默認是1,由dfs.namenode.replication.min屬性設置),那么該數(shù)據塊就會被認為是副本安全(safely replicated)的;在一定百分比(這個參數(shù)可配置,默認是0.999f,屬性值為dfs.safemode.threshold.pct)的數(shù)據塊被Namenode檢測確認是安全之后(加上一個額外的30秒等待時間),Namenode將退出安全模式狀態(tài)。接下來它會確定還有哪些數(shù)據塊的副本沒有達到指定數(shù)目,并將這些數(shù)據塊復制到其他Datanode上。

如果datanode丟失的block達到一定的比例,namenode就會一直處于安全模式即只讀模式。

當namenode處于安全模式時,該怎么處理?

找到問題所在,進行修復(比如修復宕機的datanode)。

或者可以手動強行退出安全模式(沒有真正解決問題): hdfs namenode --safemode leave。

在hdfs集群正常冷啟動時,namenode也會在safemode狀態(tài)下維持相當長的一段時間,此時你不需要去理會,等待它自動退出安全模式即可。

用戶可以通過dfsadmin -safemode value 來操作安全模式,參數(shù)value的說明如下:

enter - 進入安全模式

leave - 強制NameNode離開安全模式

get - 返回安全模式是否開啟的信息

wait - 等待,在執(zhí)行某條命令前先退出安全模式。

5、文件系統(tǒng)元數(shù)據的持久化

Namenode上保存著HDFS的名字空間。對于任何對文件系統(tǒng)元數(shù)據產生修改的操作,Namenode都會使用一種稱為EditLog的事務日志記錄下來。例如,在HDFS中創(chuàng)建一個文件,Namenode就會在Editlog中插入一條記錄來表示;同樣地,修改文件的副本系數(shù)也將往Editlog插入一條記錄。Namenode在本地操作系統(tǒng)的文件系統(tǒng)中存儲這個Editlog。

整個文件系統(tǒng)的名字空間,包括數(shù)據塊到文件的映射、文件的屬性等,都存儲在一個稱為FsImage的文件中,這個文件也是放在Namenode所在的本地文件系統(tǒng)上。

Namenode在內存中保存著整個文件系統(tǒng)的名字空間和文件數(shù)據塊映射(Blockmap)的映像(即FsImage)。這個關鍵的元數(shù)據結構設計得很緊湊,因而一個有4G內存的Namenode足夠支撐大量的文件和目錄。

當Namenode啟動時,或者檢查點達到配置文件中的閥值,它從硬盤中讀取Editlog和FsImage,將所有Editlog中的事務作用在內存中的FsImage上,并將這個新版本的FsImage從內存中保存到本地磁盤上,然后刪除舊的Editlog,因為這個舊的Editlog的事務都已經作用在FsImage上了。這個過程稱為一個檢查點(checkpoint)。

hdfs dfsadmin -fetchImage fsimage.backup

//手動從namenode獲取最新fsimage文件,并保存為本地文件。

因為編輯日志會無限增長,那么恢復編輯日志的過程就會比較長,解決方案是,運行輔助namenode,為主namenode內存中的文件系統(tǒng)元數(shù)據創(chuàng)建檢查點。最終主namenode擁有最新的fsimage文件和更小的edits文件。

這也解釋了輔助namenode和主namenode擁有相近內存需求的原因(輔助namenode也需要把fsimage文件載入內存)。

創(chuàng)建檢查點的觸發(fā)條件受兩個配置參數(shù)控制,

dfs.namenode.checkpoint.period屬性(輔助namenode每隔一段時間就創(chuàng)建檢查點,單位s)。dfs.namenode.checkpoint.txns,如果從上一個檢查點開始編輯日志大小達到多少的事務數(shù)時,創(chuàng)建檢查點。

在主namenode發(fā)生故障時(假設沒有備份),就可以從輔助的namenode上恢復數(shù)據。有兩種實現(xiàn)方式。

方法一,將相關的存儲目錄復制到新的namenode中 。

方法二,使用-importCheckpoint選項啟動namenode守護進程,從而將輔助namenode用作新的主namenode,有個前提時,dfs.namenode.dir屬性定義的目錄中沒有元數(shù)據時。

6、通訊協(xié)議

所有的HDFS通訊協(xié)議都是建立在TCP/IP協(xié)議之上??蛻舳送ㄟ^一個可配置的TCP端口連接到Namenode,通過ClientProtocol協(xié)議與Namenode交互。而Datanode使用DatanodeProtocol協(xié)議與Namenode交互。

一個遠程過程調用(RPC)模型被抽象出來封裝ClientProtocol和Datanodeprotocol協(xié)議。在設計上,Namenode不會主動發(fā)起RPC,而是響應來自客戶端或 Datanode 的RPC請求。

7、健壯性

HDFS的主要目標就是即使在出錯的情況下也要保證數(shù)據存儲的可靠性。

常見的三種出錯情況是:Namenode出錯, Datanode出錯和網絡割裂(network partitions)。

心跳檢測,磁盤數(shù)據錯誤和重新復制。

每個Datanode節(jié)點周期性地向Namenode發(fā)送心跳信號。網絡割裂可能導致一部分Datanode跟Namenode失去聯(lián)系。Namenode通過心跳信號的缺失來檢測這一情況,并將這些近期不再發(fā)送心跳信號Datanode標記為宕機,不會再將新的IO請求發(fā)給它們。任何存儲在宕機Datanode上的數(shù)據將不再有效。

Datanode的宕機可能會引起一些數(shù)據塊的副本系數(shù)低于指定值,Namenode不斷地檢測這些需要復制的數(shù)據塊,一旦發(fā)現(xiàn)就啟動復制操作。

設置合適的datanode心跳超時時間,避免用datanode不穩(wěn)定導致的復制風暴。

在下列情況下,也可能需要重新復制:某個Datanode節(jié)點失效,某個副本遭到損壞,Datanode上的硬盤錯誤,或者文件的副本系數(shù)增大。

集群均衡(針對datanode)

HDFS的架構支持數(shù)據均衡策略。如果某個Datanode節(jié)點上的空閑空間低于特定的臨界點,按照均衡策略系統(tǒng)就會自動地將數(shù)據從這個Datanode移動到其他空閑的Datanode。

個文件的請求突然增加,那么也可能啟動一個計劃創(chuàng)建該文件新的副本,并且同時重新平衡集群中的其他數(shù)據。這個均衡策略目前還沒有實現(xiàn)。

數(shù)據完整性(針對datanode)

從某個Datanode獲取的數(shù)據塊有可能是損壞的,損壞可能是由Datanode的存儲設備錯誤、網絡錯誤或者軟件bug造成的。HDFS客戶端軟件實現(xiàn)了對HDFS文件內容的校驗和(checksum)檢查。

當客戶端創(chuàng)建一個新的HDFS文件,會計算這個文件每個數(shù)據塊的校驗和,并將校驗和作為一個單獨的隱藏文件保存在同一個HDFS名字空間下。當客戶端獲取文件內容后,它會檢驗從Datanode獲取的數(shù)據跟相應的校驗和文件中的校驗和是否匹配,如果不匹配,客戶端可以選擇從其他Datanode獲取該數(shù)據塊的副本。

元數(shù)據磁盤錯誤(針對namenode出錯)

FsImage和Editlog是HDFS的核心數(shù)據結構。如果這些文件損壞了,整個HDFS實例都將失效。因而,Namenode可以配置成支持維護多個FsImage和Editlog的副本。任何對FsImage或者Editlog的修改,都將同步到它們的副本上。這種多副本的同步操作可能會降低Namenode每秒處理的名字空間事務數(shù)量。然而這個代價是可以接受的,因為即使HDFS的應用是數(shù)據密集的,它們也非元數(shù)據密集的。當Namenode重啟的時候,它會選取最近的完整的FsImage和Editlog來使用。

另外一個可選方案是通過共享存儲NFS或一個分布式編輯日志(也叫journal)實現(xiàn)多namenode節(jié)點(HA),來增強故障恢復能力。

在HDFS HA的實現(xiàn)中,配置了一對active-standby的namenode,當活動的namenode失效,備用的namenode就會接管它的任務并開始服務于客戶端的請求。

實現(xiàn)HA需要在架構上做如下修改:

namenode之間通過高可用共享存儲實現(xiàn)編輯日志的共享,當備用namenode接管工作之后,它將通讀共享編輯日志直到末尾,實現(xiàn)與active namenode狀態(tài)同步,并繼續(xù)讀取由活動namenode寫入的新條目。

datanode需要同時向兩個namenode發(fā)送數(shù)據塊處理報告,因為數(shù)據塊映射信息存在namenode的內存,而非硬盤。

客戶端使用特定的機制處理namenode的失效,這一機制對于用戶是透明的。

輔助namenode的角色被namenode所包含,備用namenode為活動的namenode命名空間設置周期性檢查。

快照

快照支持某一特定時刻的數(shù)據的復制備份。利用快照,可以讓HDFS在數(shù)據損壞時恢復到過去一個已知正確的時間點。

8、數(shù)據組織

數(shù)據塊

HDFS被設計成支持大文件,適用HDFS的是那些需要處理大規(guī)模的數(shù)據集的應用。這些應用都是只寫入數(shù)據一次,但卻讀取一次或多次,并且讀取速度應能滿足流式讀取的需要。HDFS支持文件的“一次寫入多次讀取”語義。一個典型的數(shù)據塊大小是128MB。因而,HDFS中的文件總是按照128M被切分成不同的塊,每個塊盡可能地存儲于不同的Datanode中。

流水線復制

當客戶端向HDFS文件寫入數(shù)據的時候,一開始是寫到本地臨時文件中。假設該文件的副本系數(shù)設置為3,當本地臨時文件累積到一個數(shù)據塊的大小時,客戶端會從Namenode獲取一個Datanode列表用于存放副本。然后客戶端開始向第一個Datanode傳輸數(shù)據,第一個Datanode一小部分一小部分(4 KB)地接收數(shù)據,將每一部分寫入本地倉庫,并同時傳輸該部分到列表中第二個Datanode節(jié)點。第二個Datanode也是這樣,一小部分一小部分地接收數(shù)據,寫入本地倉庫,并同時傳給第三個Datanode。最后,第三個Datanode接收數(shù)據并存儲在本地。

因此,Datanode能流水線式地從前一個節(jié)點接收數(shù)據,并在同時轉發(fā)給下一個節(jié)點,數(shù)據以流水線的方式從前一個Datanode復制到下一個。

9、可訪問性

HDFS給應用提供了多種訪問方式。用戶可以通過Java API接口訪問,也可以通過C語言的封裝API訪問,還可以通過瀏覽器的方式訪問HDFS中的文件。通過WebDAV協(xié)議訪問的方式正在開發(fā)中。

DFSShell

HDFS以文件和目錄的形式組織用戶數(shù)據。它提供了一個命令行的接口(DFSShell)讓用戶與HDFS中的數(shù)據進行交互。命令的語法和用戶熟悉的其他shell(例如 bash, csh)工具類似。下面是一些動作/命令的示例:

淺析HDFS架構和設計

DFSAdmin

DFSAdmin 命令用來管理HDFS集群。這些命令只有HDSF的管理員才能使用。下面是一些動作/命令的示例:

淺析HDFS架構和設計

瀏覽器接口

一個典型的HDFS安裝會在一個可配置的TCP端口開啟一個Web服務器用于暴露HDFS的名字空間。用戶可以用瀏覽器來瀏覽HDFS的名字空間和查看文件的內容。

http://ip:50070

10、存儲空間回收

文件的刪除和恢復

當垃圾回收生效時,通過fs shell刪除的文件并沒有立刻從HDFS中刪除。實際上,HDFS會將這個文件重命名轉移到user//.Trash目錄。只要文件還在.Trash目錄中,該文件就可以被迅速地恢復。文件在Trash中保存的時間是可配置的,當超過這個時間時,Namenode就會將該文件從名字空間中刪除。刪除文件會使得該文件相關的數(shù)據塊被釋放。注意,從用戶刪除文件到HDFS空閑空間的增加之間會有一定時間的延遲。

只要被刪除的文件還在.Trash目錄中,用戶就可以恢復這個文件。如果用戶想恢復被刪除的文件,他/她可以瀏覽.Trash目錄找回該文件。

減少副本系數(shù)

當一個文件的副本系數(shù)被減小后,Namenode會選擇過剩的副本刪除。下次心跳檢測時會將該信息傳遞給Datanode。Datanode遂即移除相應的數(shù)據塊,集群中的空閑空間加大。同樣,在調用setReplication API結束和集群中空閑空間增加間會有一定的延遲。

【本文為用戶原創(chuàng)內容,轉載時必須標注文章的來源,文章鏈接,文章作者等基本信息】

另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

網頁名稱:淺析HDFS架構和設計-創(chuàng)新互聯(lián)
網址分享:http://muchs.cn/article16/csjodg.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供全網營銷推廣外貿網站建設、網站策劃、建站公司企業(yè)建站、網站導航

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網站網頁設計