2016-05-17 32 views
1

我必須爲需要在HDFS上存儲數據的應用程序創建一個帳戶。 我瞭解,創建於HDFS用戶(我使用HDP 2.3),我必須執行這些命令:我需要在哪裏創建HDFS用戶?

useradd -G *groupname* *username* 
hdfs dfs -mkdir /user/*username* 
hdfs dfs -chown *username*:*groupname* /user/*username* 

我的問題是: 我明白,當我HDFS上創建一個文件夾,這是不在所有集羣上覆制,只有數據分散在所有數據節點上。 我是否在羣集的每個節點(namenode + datanode + edgenode)上執行這些命令,或者只在應用程序用於訪問HDFS(在我的情況下是邊緣節點)的節點上執行這些命令?

謝謝。

回答

2

正如您可能知道的那樣,只有元數據存儲在名稱節點上,數據存儲在數據節點上。

useradd -G <groupname> <username> 
hdfs dfs -mkdir /user/<username> 
hdfs dfs -chown <username>:<groupname> /user/<username> 

上述命令是元數據的一部分,因此這些信息將存儲在名稱節點上。因此,您需要在集羣的邊緣節點上執行上述命令,並將從上述命令生成的元數據存儲在名稱節點上。

只有當數據存儲發生時,Data節點纔會進入畫面。

結論:只需在集羣的edge node上執行上述命令。

+0

謝謝!非常清楚! –

1

每當客戶想要存儲或處理存儲在HDFS上的數據時,NN首先會檢查它是否有權訪問該數據。根據訪問級別,數據將由用戶訪問。

您不必在每個DN上運行上述命令。訪問將在NN自己檢查,並根據用戶的類型,數據將被訪問。您只能在NN上運行這些命令,並且NN會在後續處理。

相關問題