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

E-MapReduce:認可の有効化

最終更新日:Aug 21, 2026

Hadoop 分散ファイルシステム (HDFS) で認可が有効になっている場合、データの読み取りやディレクトリの作成などの操作を実行するには、必要なパーミッションが必要です。 このトピックでは、HDFS 認可を有効にする方法について説明します。

背景情報

Hadoop は、ユーザーアイデンティティを決定するために、次の 2 つのモードを提供しています。

  • simple モード:HDFS に接続しているクライアントのオペレーティングシステムが、ユーザーのアイデンティティを決定します。 UNIX 系システムでは、これはwhoami コマンドに相当します。

  • Kerberos モード:クライアントの Kerberos 認証情報がそのアイデンティティを決定します。

    EMR クラスターの作成時に Kerberos モードを有効にできます。 詳細については、「Kerberos」をご参照ください。

前提条件

EMR クラスターが必要です。 詳細については、「クラスターの作成」をご参照ください。

操作手順

説明
  • Kerberos が有効なクラスターでは、HDFS の認可はデフォルトで設定されています (umask は 027)。 追加の設定やサービスの再起動は必要ありません。

  • simple モードのクラスターの場合は、次の手順に従って設定を追加し、サービスを再起動する必要があります。

  1. クラスターサービスページに移動します。

    1. EMR on ECS コンソールにログインします。

    2. 上部メニューで、必要に応じてリージョンとリソースグループを選択します。

    3. 対象のクラスターの操作列で、Services をクリックします。

  2. [Services] ページの HDFS サービスセクションで、Configure をクリックします。

  3. [Service Configuration] エリアで、パラメーターを変更します。

    パラメーター

    説明

    dfs.permissions.enabled

    権限チェックを有効にします。 値を true に設定します。

    デフォルト値は false です。

    dfs.datanode.data.dir.perm

    DataNode のローカルディレクトリパスのパーミッション。

    fs.permissions.umask-mode

    新しいファイルとディレクトリのデフォルトのパーミッションを定義するパーミッションマスク。

    dfs.namenode.acls.enabled

    デフォルト値は false です。 このパラメーターを true に設定すると、アクセス制御リスト (ACL) のサポートが有効になります。 これにより、特定のユーザーとグループのパーミッションを管理できます。

    ACL 関連のコマンドには、hadoop fs -getfacl [-R] <path>hadoop fs -setfacl [-R] [-b |-k -m |-x <acl_spec> <path>] |[--set <acl_spec> <path>] が含まれます。

    dfs.permissions.superusergroup

    スーパーユーザーグループの名前。 デフォルト値は hadoop です。 このグループのユーザーはスーパーユーザー権限を持ちます。

  4. 変更を保存します。

    1. ページの下部にあるSaveをクリックします。

    2. 表示されるダイアログボックスで、実行理由を入力し、Save をクリックします。

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

    1. HDFS サービスページの右上隅で、More > 再起動 を選択します。

    2. 表示されるダイアログボックスで、Execution Reason を入力し、OK をクリックします。

    3. Confirm ダイアログボックスで、OK をクリックします。

      ページの上部にあるOperation Historyをクリックして、タスクの進捗を監視します。再起動が完了するまで待ちます。

  1. SSH を使用してクラスターに接続します。 詳細については、「クラスターへの接続」をご参照ください。

  2. 次のコマンドを実行して、emrtest ユーザーに切り替えます。

  3. su emrtest
  4. 次のコマンドを実行して、emrtest ユーザーとしてディレクトリを作成します。

  5. hadoop fs -mkdir /tmp/emrtest
  6. 次のコマンドを実行して、作成されたディレクトリのパーミッションを表示します。

    hadoop fs -ls /tmp

    コマンドは、次のような出力を返します。

    drwxr-x--x   - emrtest hadoop          0 2022-10-21 14:08 /tmp/emrtest
    drwxr-x--x   - hadoop  hadoop          0 2022-10-21 10:06 /tmp/hadoop-yarn
    drwx-wx-wx   - hive    hadoop          0 2022-10-21 10:13 /tmp/hive
    drwxr-x--x   - hadoop  hadoop          0 2022-10-21 10:23 /tmp/kyuubi-staging
    drwxrwxrwt   - hadoop  hadoop          0 2022-10-21 10:23 /tmp/logs                                 
  7. 次のコマンドを実行して、ディレクトリに ACL を設定し、foo ユーザーに rwx パーミッションを付与します。

  8. hadoop fs -setfacl -m user:foo:rwx /tmp/emrtest
  9. 次のコマンドを実行して、ディレクトリのパーミッションを表示します。

    hadoop fs -ls /tmp/

    コマンドは、次のような出力を返します。

    drwxrwx--x+  - emrtest hadoop          0 2022-10-21 14:08 /tmp/emrtest
    drwxr-x--x   - hadoop  hadoop          0 2022-10-21 10:06 /tmp/hadoop-yarn
    drwx-wx-wx   - hive    hadoop          0 2022-10-21 10:13 /tmp/hive
    drwxr-x--x   - hadoop  hadoop          0 2022-10-21 10:23 /tmp/kyuubi-staging
    drwxrwxrwt   - hadoop  hadoop          0 2022-10-21 10:23 /tmp/logs
    説明

    drwxrwx--x+ のように、パーミッション文字列の末尾にあるプラス記号 (+) は、ACL が設定されていることを示します。

  10. 次のコマンドを実行して、ACL の詳細を表示します。

    hadoop fs -getfacl /tmp/emrtest

    コマンドは、次のような出力を返します。

    # file: /tmp/emrtest
    # owner: emrtest
    # group: hadoop
    user::rwx
    user:foo:rwx
    group::r-x
    mask::rwx
    other::--x