更改 LDAP 中現有 linux 使用者的 uid,但 hdfs 似乎無法識別它

更改 LDAP 中現有 linux 使用者的 uid,但 hdfs 似乎無法識別它

我在centos 6上設定了hadoop 1.2.1環境。它一直工作得很好,直到今天,我被要求將使用者身份驗證與 LDAP 整合。由於某種原因,我必須更改某些現有 unix 使用者的 uid 並將這些新 uid 儲存在 LDAP 中。

更改後,hdfs似乎無法取得使用者的新uid,即當我將新檔案放入hdfs時,它仍然使用舊uid將檔案儲存在hdfs中。我知道這是因為當我從 hdfs 的本機安裝點檢查新檔案的 uid 時,它顯示舊的 uid。而且我無法存取本地文件系統上的文件,因為它屬於不同的用戶。

我已經測試重啟hadoop但沒有效果。有什麼建議嗎?

答案1

您必須確保您使用的是 LDAP 使用者。id寫入檔案時檢查您是否實際上是 LDAP 使用者而不是本機使用者。

順便說一句,我認為您正在嘗試從不同的伺服器寫入。如果是這樣,這台機器是否也使用 LDAP 或您使用的是本機帳戶?因為這個使用者在寫入檔案時會使用自己的uid。

你可以檢查的事情:

  • /etc/nsswitch.conf電腦使用文件或 LDAP 檢索帳戶資訊的順序
  • getent passwd檢查它是否知道 LDAP 用戶
  • 我個人的經驗是避免 LDAP 使用者和本機使用者同名。這會導致 UID/主目錄/等出現各種尷尬問題。當我將伺服器遷移到 LDAP 身份驗證時,我總是刪除本機使用者。

答案2

卸載本機上安裝的 HDFS 服務並重新啟動 HDFS 服務。
開始將ndfs掛載到本機檔案系統,以便可以在本機存取hdfs內的檔案。

相關內容