LDAP で既存の Linux ユーザーの uid を変更しましたが、hdfs はそれを認識していないようです

LDAP で既存の Linux ユーザーの uid を変更しましたが、hdfs はそれを認識していないようです

Centos 6 に Hadoop 1.2.1 環境をセットアップしました。また、ローカル ファイル システムに ndfs をマウントする nfs-proxy も使用して、hdfs 内のファイルにローカルでアクセスできるようにしています。今日まで完璧に動作していましたが、ユーザー認証を 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 passwdLDAPユーザーを知っているかどうかを確認する
  • 私の個人的な経験では、LDAP ユーザーとローカル ユーザーを同じ名前にすることは避けるべきです。これは、UID やホーム ディレクトリなどでさまざまな厄介な問題を引き起こします。したがって、LDAP で同じユーザー名のローカル ユーザーが存在する場合は、ローカル マシンから削除することを検討してください。サーバーを LDAP 認証に移行するときは、常にローカル ユーザーを削除します。

答え2

ローカルマシンにマウントしたものをアンマウントし、HDFS サービスを再起動します。HDFS
内のファイルにローカルでアクセスできるように、ndfs をローカルファイルシステムにマウントし始めます。

関連情報