2015-12-17 60 views
-1

我嘗試配置多個kms的hadoop。我配置KMS客戶端部分,如:hadoop多公里配置

<property> 
<name>dfs.encryption.key.provider.uri</name> 
<value>kms://[email protected];test2:16000/kms</value> 
</property> 

<property> 
<name>hadoop.security.key.provider.path</name> 
<value>kms://[email protected];test2:16000/kms</value> 
</property> 

服務器部分像

<property> 
<name>hadoop.kms.key.provider.uri</name> 
<value>jceks://[email protected]/usr/kms/kms.keystore</value> 
<description>URI of the backing KeyProvider for the KMS.</description> 
</property> 

但似乎鍵將不會被存儲在這兩個KMS服務器的。例如,當我使用如下命令:

hadoop key list 

我會得到不同的結果,這是不正確的。應該是這樣的,無論何時或在哪個服務器上運行該命令,它都會給我所有已創建的密鑰。 如何配置kms服務器使其正常工作?

感謝

回答

0

https://issues.apache.org/jira/browse/HADOOP-11862

從上面的鏈接,我們可以得到一些線索。看起來KMS現在不適合故障轉移。必須有一個主KMS,並且可以有多個備份KMS。如果主KMS發生故障,則所有加密的數據都無法解密。在最糟糕的情況下,如果主KMS停機並且無法恢復,那麼我們甚至不會複製密鑰庫。在這種情況下,我們將丟失數據。最好的情況是,當其他備份KMS關閉時,所有其他KMS都可以正常工作。

0

首先檢查您的密鑰是否同步。以下命令的輸出應該在kms服務器上產生相同的結果。

md5sum /var/lib/kms-keytrustee/keytrustee/.keytrustee/secring.gpg 

如果輸出不同,那麼Cloudera文檔建議採取該目錄的備份並聯系他們的客戶支持。

以下內容可以同步密鑰受託者密鑰位置處的密鑰,但請注意,您可能會丟失密鑰並使加密的數據無法讀取。所以請謹慎使用。

rsync -zav /var/lib/kms-keytrustee/keytrustee/.keytrustee \ 
[email protected]_other_kms:/var/lib/kms-keytrustee/keytrustee/.keytrustee.