すべてのプロダクト
Search
ドキュメントセンター

E-MapReduce:JindoFS の権限の管理

最終更新日:Apr 14, 2025

このトピックでは、ブロックストレージモードまたはキャッシュモードで JindoFS の権限を管理する方法について説明します。ブロックストレージモードとキャッシュモードを切り替えることはできません。

背景情報

ストレージモードに基づく権限管理:

  • ブロックストレージモードでは、UNIX コマンドを実行するか、Ranger を使用して権限を管理できます。

    • UNIX では、ファイルに rwxrwxrwx 権限を付与し、ファイルの所有者とグループを設定できます。

    • Ranger では、複雑な操作や高度な操作を実行できます。たとえば、パスでワイルドカードを使用します。

  • キャッシュモードでは、Ranger のみを使用して権限を管理できます。

    複雑な操作や高度な操作を実行できます。たとえば、パスでワイルドカードを使用します。

JindoFS permissions

UNIX ベースの権限管理を有効にする

  1. SmartData サービスに移動します。

    1. Alibaba Cloud EMR コンソール にログオンします。

    2. 上部のナビゲーションバーで、クラスターが存在するリージョンを選択します。必要に応じてリソースグループを選択します。デフォルトでは、アカウントのすべてのリソースが表示されます。

    3. [クラスター管理] タブをクリックします。

    4. 表示される [クラスター管理] ページで、ターゲットクラスターを見つけ、[アクション] 列の [詳細] をクリックします。

    5. 左側のナビゲーションペインで、[クラスターサービス] をクリックし、次に [smartdata] をクリックします。

  2. SmartData サービスの namespace タブに移動します。

    1. [構成] タブをクリックします。

    2. [サービス構成] セクションの [namespace] タブをクリックします。

      namespace_smartdata

  3. 右上隅にある [カスタム構成] をクリックします。[構成項目の追加] ダイアログボックスで、[キー]jfs.namespaces.<namespace>.permission.method に設定し、[値]unix に設定して、[OK] をクリックします。

  4. 構成を保存します。

    1. [サービス構成] セクションの右上隅にある [保存] をクリックします。

    2. [変更の確認] ダイアログボックスで、[説明] を指定し、[構成の自動更新] をオンにします。

    3. [OK] をクリックします。

  5. Namespace サービスを再起動します。

    1. 右上隅にある [アクション] > [jindo Namespace サービスの再起動] を選択します。

    2. [クラスターアクティビティ] ダイアログボックスで、[説明] を指定し、[OK] をクリックします。確認メッセージで、[OK] をクリックします。

    サービスが再起動した後、HDFS 権限を管理するのと同じ方法で UNIX コマンドを実行して JindoFS 権限を管理できます。次のコマンドを使用できます。

    hadoop fs -chmod 777 jfs://{namespace_name}/dir1/file1
    hadoop fs -chown john:staff jfs://{namespace_name}/dir1/file1

    ユーザーがファイルに対する権限を持っていない場合、次の図に示すエラーが返されます。error

Ranger ベースの権限管理を有効にする

Ranger を使用して権限を管理するには、まず EMR の Apache Ranger コンポーネントで権限を構成し、JindoFS で Ranger プラグインをアクティブにする必要があります。その後、他のコンポーネントの権限を管理するのと同じ方法で、Ranger で JindoFS 権限を管理できます。

  1. JindoFS で Ranger を権限管理方法として構成します。

    1. SmartData サービスの [namespace] タブで、[カスタム構成] をクリックします。

    2. [構成項目の追加] ダイアログボックスで、[キー]jfs.namespaces.<namespace>.permission.method に設定し、[値]ranger に設定して、[OK] をクリックします。

    3. 構成を保存します。

      1. [サービス構成] セクションの右上隅にある [保存] をクリックします。

      2. [変更の確認] ダイアログボックスで、[説明] を指定し、[構成の自動更新] をオンにします。

      3. [OK] をクリックします。

    4. Namespace サービスを再起動します。

      1. 右上隅にある [アクション] > [jindo Namespace サービスの再起動] を選択します。

      2. [クラスターアクティビティ] ダイアログボックスで、[説明] を指定し、[OK] をクリックします。確認メッセージで、[OK] をクリックします。

  2. Ranger の Web UI で HDFS サービスを追加し、関連パラメーターを構成します。

    1. Ranger Web UI にログオンします。

      詳細については、「概要」をご参照ください。

    2. Ranger の Web UI で HDFS サービスを追加します。

      Ranger UI

    3. 次の表に示すパラメーターを構成します。

      パラメーター

      説明

      サービス名

      このパラメーターを jfs-{namespace_name} の形式で設定します。

      例:jfs-test。

      ユーザー名

      ユーザー名をカスタマイズします。

      パスワード

      パスワードをカスタマイズします。

      Namenode URL

      このパラメーターを jfs://{namespace_name}/ の形式で設定します。

      認証の有効化

      デフォルト値の [いいえ] を保持します。

      認証タイプ

      デフォルト値の [シンプル] を保持します。

      dfs.datanode.kerberos.principal

      このパラメーターは空のままにします。

      dfs.namenode.kerberos.principal

      dfs.secondary.namenode.kerberos.principal

      新しい構成の追加

    4. [追加] をクリックします。

JindoFS で LDAP サーバーからのユーザーグループの同期を有効にする

Ranger Usersync で LDAP サーバーからのユーザーグループの同期を有効にしている場合は、JindoFS でもこの機能を有効にする必要があります。そうしないと、JindoFS は LDAP サーバーから同期されたユーザーグループに関する情報を取得できず、ユーザーグループの権限を確認できません。

  1. SmartData サービスの [namespace] タブで、[カスタム構成] をクリックします。

  2. [構成項目の追加] ダイアログボックスで、次の表に示す LDAP パラメーターを構成し、[OK] をクリックします。

    オープンソース HDFS の構成に基づいてパラメーターを構成します。詳細については、「core-default.xml」をご参照ください。

    パラメーター

    hadoop.security.group.mapping

    org.apache.hadoop.security.CompositeGroupsMapping

    hadoop.security.group.mapping.providers

    shell4services,ad4users

    hadoop.security.group.mapping.providers.combined

    true

    hadoop.security.group.mapping.provider.shell4services

    org.apache.hadoop.security.ShellBasedUnixGroupsMapping

    hadoop.security.group.mapping.provider.ad4users

    org.apache.hadoop.security.LdapGroupsMapping

    hadoop.security.group.mapping.ldap.url

    ldap://emr-header-1:10389

    hadoop.security.group.mapping.ldap.search.filter.user

    (&(objectClass=person)(uid={0}))

    hadoop.security.group.mapping.ldap.search.filter.group

    (objectClass=groupOfNames)

    hadoop.security.group.mapping.ldap.base

    o=emr

  3. 構成を保存します。

    1. [サービス構成] セクションの右上隅にある [保存] をクリックします。

    2. [変更の確認] ダイアログボックスで、[説明] を指定し、[構成の自動更新] をオンにします。

    3. [OK] をクリックします。

  4. SmartData サービスのすべてのコンポーネントを再起動します。

    1. 右上隅にある [アクション] > [すべてのコンポーネントの再起動] を選択します。

    2. [クラスターアクティビティ] ダイアログボックスで、[説明] を指定し、[OK] をクリックします。確認メッセージで、[OK] をクリックします。

  5. SSH モードで EMR クラスターの emr-header-1 ノードにログオンし、Ranger Usersync を LDAP サーバーに接続します。

    詳細については、「RangerUserSync と LDAP サーバーの統合」をご参照ください。