HDFS配置檔案引數設定的優先順序

2022-06-16 11:54:09 字數 2470 閱讀 2395

hdfs-site.xml是hdfs的配置檔案,其中包含了各種對hdfs集群的設定引數,比如集群中儲存檔案副本的數量,namenode輔助節點的位址等。對於hdfs-site.xml中的屬性值,我們可以在不同的地方進行設定,

第一種是通過hdfs客戶端**進行對屬性值進行設定,這是優先順序最高的方式;

第二種是在當前的專案下建立乙個hdfs-site.xml檔案,對相關屬性的值進行設定;

第三種是在伺服器集群中進行自定義hdfs-site.xml的屬性值;

第四張是按照集群預設的配置檔案的屬性值來參與相關的操作,這個預設的配置檔案是"hdfs-default.xml"

下面我們來一起實驗一下,hdfs讀取配置檔案的優先順序:

@test

public

void readconf() throws

urisyntaxexception, ioexception, interruptedexception

在伺服器集群中,hdfs-site.xml檔案的配置是這樣的:

也就是副本數,設定的是3,但是我在客戶端**中,將檔案的副本數設定為了2,那麼執行程式之後,結果如下:

2

同時,訪問namenode的web站點,發現,上傳上去的檔案,副本數量是2,說明**設定引數值的優先順序大於集群自定義配置檔案的優先順序。

然後繼續比較,本地專案中建立乙個對應的配置檔案,設定副本數為1,並在上面的**中新增一行讀取本地配置檔案的**:

conf.set("dfs.replication","2");

conf.addresource(new path("./config/hdfs-site.xml"));

string s1 = conf.get("dfs.replication");

system.out.println(s1);

輸出結果是:

2

192.168.182.103:50090

下面那行ip位址是從本地的專案下的配置檔案中讀取的而非從伺服器集群的配置檔案中。所以看出,客戶端**設定的引數的優先順序同樣大於本地專案下建立的配置檔案設定的引數值。

最後比較一下,本地專案中建立的配置檔案和集群中自定義的配置檔案的優先順序,上面的**修改為:

configuration conf = new

configuration();

//預設載入的是本地hadoop安裝路徑下的core-default.xml

然後執行,輸出結果如下:

1

192.168.182.103:50090

namenode的web站點顯示如下:

可以看出,在本地專案下的配置檔案優先順序要高於集群中配置檔案的優先順序。

然後就是集群中預設的配置檔案低於集群中自定義的配置檔案的優先順序,所以優先順序既可以排列出來了。

客戶端** > 專案目錄下的配置檔案  > 集群自定義配置檔案 > 集群預設檔案

9 29 配置引數設定解讀

配置引數解讀 zookeeper中的配置檔案zoo.cfg中引數含 讀如下 2 initlimit 10 lf初始通訊時限 leader和follower初始連線時能容忍的最多心跳數 ticktime的數量 3 synclimit 5 lf同步通訊時限 leader和follower之間通訊時間如果...

php檔案上傳引數設定

php預設的 上傳檔案大小是2m,要上傳超過此大小的檔案,需要設定php和apache的一些引數,具體參考如下 1.file uploads 是否允許通過http上傳檔案的開關,預設為on就是開 2.upload tmp dir 說明php上傳的檔案的放置的臨時目錄,要想上傳檔案,要保證伺服器沒有關...

大資料 hdfs 掉線時限的引數設定 詳解

datanode程序死亡或者網路故障造成datanode無法與namenode通訊,namenode不會立即把該節點判定為死亡,要經過一段時間,這段時間暫稱作超時時長。hdfs預設的超時時長為10分鐘 30秒。如果定義超時時間為timeout,則超時時長的計算公式為 timeout 2 dfs.na...