教育行業(yè)A股IPO第一股(股票代碼 003032)

全國(guó)咨詢/投訴熱線:400-618-4000

大數(shù)據(jù)培訓(xùn):Day9之HDFS安全模式

更新時(shí)間:2019年03月27日15時(shí)17分 來源:大數(shù)據(jù)培訓(xùn)機(jī)構(gòu) 瀏覽次數(shù):

 1. 安全模式概述
  安全模式是HDFS所處的一種特殊狀態(tài),在這種狀態(tài)下,文件系統(tǒng)只接受讀數(shù)據(jù)請(qǐng)求,而不接受刪除、修改等變更請(qǐng)求,是一種保護(hù)機(jī)制,用于保證集群中的數(shù)據(jù)塊的安全性。
大數(shù)據(jù)培訓(xùn)
  在NameNode主節(jié)點(diǎn)啟動(dòng)時(shí),HDFS首先進(jìn)入安全模式,集群會(huì)開始檢查數(shù)據(jù)塊的完整性。DataNode在啟動(dòng)的時(shí)候會(huì)向namenode匯報(bào)可用的block信息,當(dāng)整個(gè)系統(tǒng)達(dá)到安全標(biāo)準(zhǔn)時(shí),HDFS自動(dòng)離開安全模式。
  假設(shè)我們?cè)O(shè)置的副本數(shù)(即參數(shù)dfs.replication)是5,那么在Datanode上就應(yīng)該有5個(gè)副本存在,假設(shè)只存在3個(gè)副本,那么比例就是3/5=0.6。在配置文件hdfs-default.xml中定義了一個(gè)最小的副本的副本率(即參數(shù)dfs.namenode.safemode.threshold-pct)0.999。
  我們的副本率0.6明顯小于0.99,因此系統(tǒng)會(huì)自動(dòng)的復(fù)制副本到其他的DataNode,使得副本率不小于0.999.如果系統(tǒng)中有8個(gè)副本,超過我們?cè)O(shè)定的5個(gè)副本,那么系統(tǒng)也會(huì)刪除多余的3個(gè)副本。
  如果HDFS處于安全模式下,不允許HDFS客戶端進(jìn)行任何修改文件的操作,包括上傳文件,刪除文件,重命名,創(chuàng)建文件夾,修改副本數(shù)等操作。
  2. 安全模式配置
  與安全模式相關(guān)主要配置在hdfs-site.xml文件中,主要有下面幾個(gè)屬性:
  dfs.namenode.replication.min: 每個(gè)數(shù)據(jù)塊最小副本數(shù)量,默認(rèn)為1. 在上傳文件時(shí),達(dá)到最小副本數(shù),就認(rèn)為上傳是成功的。
  dfs.namenode.safemode.threshold-pct: 達(dá)到最小副本數(shù)的數(shù)據(jù)塊的百分比。默認(rèn)為0.999f。當(dāng)小于這個(gè)比例,那就將系統(tǒng)切換成安全模式,對(duì)數(shù)據(jù)塊進(jìn)行復(fù)制;當(dāng)大于該比例時(shí),就離開安全模式,說明系統(tǒng)有足夠的數(shù)據(jù)塊副本數(shù),可以對(duì)外提供服務(wù)。小于等于0意味不進(jìn)入安全模式,大于1意味一直處于安全模式。
  dfs.namenode.safemode.min.datanodes: 離開安全模式的最小可用datanode數(shù)量要求,默認(rèn)為0.也就是即使所有datanode都不可用,仍然可以離開安全模式。
  dfs.namenode.safemode.extension: 當(dāng)集群可用block比例,可用datanode都達(dá)到要求之后,如果在extension配置的時(shí)間段之后依然能滿足要求,此時(shí)集群才離開安全模式。單位為毫秒,默認(rèn)為30000.也就是當(dāng)滿足條件并且能夠維持30秒之后,離開安全模式。 這個(gè)配置主要是對(duì)集群穩(wěn)定程度做進(jìn)一步的確認(rèn)。避免達(dá)到要求后馬上又不符合安全標(biāo)準(zhǔn)。
  總結(jié)一下,要離開安全模式,需要滿足以下條件:
  1)達(dá)到副本數(shù)量要求的block比例滿足要求;
  2)可用的datanode節(jié)點(diǎn)數(shù)滿足配置的數(shù)量要求;3) 1、2 兩個(gè)條件滿足后維持的時(shí)間達(dá)到配置的要求3. 安全模式命令
  手動(dòng)進(jìn)入安全模式
  hdfs dfsadmin -safemode enter
  手動(dòng)進(jìn)入安全模式對(duì)于集群維護(hù)或者升級(jí)的時(shí)候非常有用,因?yàn)檫@時(shí)候HDFS上的數(shù)據(jù)是只讀的。手動(dòng)退出安全模式可以用下面命令:
  hdfs dfsadmin -safemode leave
  如果你想獲取到集群是否處于安全模式,可以用下面的命令獲?。?br />   hdfs dfsadmin -safemode get(也可在web頁(yè)面查看安全模式狀態(tài))
0 分享到:
和我們?cè)诰€交談!