このトピックでは、ブロックストレージモードで JindoFS の権限を管理する方法について説明します。UNIX コマンドを実行するか、Ranger を使用して権限を管理できます。
背景情報
Ranger を使用して権限を管理するには、まず E-MapReduce(EMR)の Apache Ranger コンポーネントで権限を設定し、JindoFS で Ranger プラグインをアクティブにする必要があります。その後、他のコンポーネントの権限を管理するのと同じ方法で、Ranger で JindoFS の権限を管理できます。
ブロックストレージモードでは、UNIX コマンドを実行するか、Ranger を使用して権限を管理できます。
UNIX では、ファイルに rwxrwxrwx 権限を付与できます。
Ranger では、権限を設定するときにパスにワイルドカードを使用できます。
UNIX ベースの権限管理を有効にする
SmartData サービスに移動します。
Alibaba Cloud EMR コンソール にログインします。
上部のナビゲーションバーで、クラスターが存在するリージョンを選択します。必要に応じてリソースグループを選択します。デフォルトでは、アカウントのすべてのリソースが表示されます。
[クラスター管理] タブをクリックします。
表示される [クラスター管理] ページで、ターゲットクラスターを見つけ、[アクション] 列の [詳細] をクリックします。
左側のナビゲーションペインで、[クラスターサービス] をクリックし、次に [smartdata] をクリックします。
bigboot パラメーターを設定します。
[設定] タブをクリックします。
[サービス設定] セクションの [bigboot] タブをクリックします。

[カスタム設定] をクリックします。[設定項目の追加] ダイアログボックスで、[キー] を jfs.namespaces.<namespace>.permission.method に設定し、[値] を unix に設定して、[OK] をクリックします。
設定を保存します。
[サービス設定] セクションの右上隅にある [保存] をクリックします。
[変更の確認] ダイアログボックスで、[説明] を指定し、[設定の自動更新] をオンにします。
[OK] をクリックします。
名前空間サービスを再起動します。
右上隅にある Jindo Namespace Service の再起動 ドロップダウンリストから を選択します。
[クラスターアクティビティ] ダイアログボックスで、[説明] を指定し、[OK] をクリックします。
サービスが再起動した後、HDFS 権限を管理するのと同じ方法で、UNIX コマンドを実行して JindoFS 権限を管理できます。次のコマンドを使用できます。
hadoop fs -chmod 777 jfs://{namespace_name}/dir1/file1 hadoop fs -chown john:staff jfs://{namespace_name}/dir1/file1ユーザーがファイルに対する権限を持っていない場合、次のエラーが返されます。

Ranger ベースの権限管理を有効にする
JindoFS で Ranger を権限管理方法として設定します。
SmartData サービスの [bigboot] タブで、[カスタム設定] をクリックします。
[設定項目の追加] ダイアログボックスで、[キー] を jfs.namespaces.<namespace>.permission.method に設定し、[値] を ranger に設定して、[OK] をクリックします。
設定を保存します。
[サービス設定] セクションの右上隅にある [保存] をクリックします。
[変更の確認] ダイアログボックスで、[説明] を指定し、[設定の自動更新] をオンにします。
[OK] をクリックします。
名前空間サービスを再起動します。
右上隅にある Jindo Namespace Serviceの再起動 ドロップダウンリストから を選択します。
[クラスターアクティビティ] ダイアログボックスで、[説明] を指定し、[OK] をクリックします。
Ranger の Web UI で HDFS サービスを追加し、必要なパラメーターを設定します。
Ranger Web UI にログインします。
詳細については、「概要」をご参照ください。
Ranger の Web UI で HDFS サービスを追加します。

次の表に示すパラメーターを設定します。
パラメーター
説明
サービス名
jfs-{namespace_name} の形式でこのパラメーターを設定します。
ユーザー名
ユーザー名をカスタマイズします。
パスワード
パスワードをカスタマイズします。
Namenode URL
jfs://{namespace_name} の形式でこのパラメーターを設定します。
認証の有効化
デフォルト値の [いいえ] を保持します。
認証タイプ
デフォルト値の [シンプル] を保持します。
dfs.datanode.kerberos.principal
このパラメーターは空のままにします。
dfs.namenode.kerberos.principal
dfs.secondary.namenode.kerberos.principal
新しい設定の追加
[追加] をクリックします。
JindoFS で LDAP サーバーからのユーザーグループの同期を有効にする
Ranger Usersync で LDAP サーバーからのユーザーグループの同期を有効にしている場合は、JindoFS でもこの機能を有効にする必要があります。そうしないと、JindoFS は LDAP サーバーから同期されたユーザーグループの情報を取得できず、ユーザーグループの権限を確認できません。
SmartData サービスの [bigboot] タブで、[カスタム設定] をクリックします。
[設定項目の追加] ダイアログボックスで、次の表にリストされている LDAP パラメーターを設定し、[OK] をクリックします。
パラメーター
例
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
説明オープンソース HDFS の設定に基づいてパラメーターを設定します。
設定を保存します。
[サービス設定] セクションの右上隅にある [保存] をクリックします。
[変更の確認] ダイアログボックスで、[説明] を指定し、[設定の自動更新] をオンにします。
[OK] をクリックします。
SmartData サービスのすべてのコンポーネントを再起動します。
右上隅にある すべてのコンポーネントを再起動 ドロップダウンリストから を選択します。
[クラスターアクティビティ] ダイアログボックスで、[説明] を指定し、[OK] をクリックします。
SSH モードで EMR クラスターの emr-header-1 ノードにログインし、Ranger Usersync を LDAP サーバーに接続します。
詳細については、「RangerUserSync と LDAP サーバーの統合」をご参照ください。