本ページでは、Spark を Ranger と統合する方法と、その権限の設定方法について説明します。

このタスクについて

Spark は Ranger と統合して権限を制御できます。 この統合は、Spark Thrift Server を使用して Spark SQL クエリを実行する場合にのみ適用されます。 たとえば、Beeline クライアントまたはSpark の JDBC は、Spark Thrift サーバーを使用して Spark SQL ジョブを送信します。

Spark SQL と Ranger の統合

  1. Hive を Ranger と統合します。
    Spark SQL と Hive は、Ranger の権限設定を共有します。 Ranger を使用して Spark SQL 権限を制御するには、Hive を Ranger と統合する必要があります。 詳細については、「Hive への Ranger の統合」をご参照ください。
  2. Spark を起動します。
    1. [クラスター管理] タブの [クラスター ID] をクリックします。
    2. [サービス] セクションの中の [Ranger] をクリックします。
    3. Ranger のクラスターサービスページの右上隅にある、[操作] > [有効化された Spark] をクリックします。
      ranger_spark
    4. 表示される [クラスターアクティビティ] ダイアログボックスで、必要なパラメーターを設定します。
    5. [OK] をクリックします。
    6. 表示される [確認] メッセージで[OK] をクリックします。
    7. 右上隅の [履歴] をクリックすると、タスクの進行状況が表示されます。
  3. タスクが完了したら、Spark Thrift サーバーを再起動します。
    1. 左側のナビゲーションウィンドウから、[クラスターサービス][Spark] の順に選択します。
    2. Spark の [クラスターサービス] ページの右上隅にある、[操作] > [ThriftServer の再起動] を選択します。
    3. 表示される [クラスターアクティビティ] ダイアログボックスで、必要なパラメーターを設定します。
    4. [OK] をクリックします。
    5. 表示される [確認] メッセージで[OK] をクリックします。
    6. 右上隅の [履歴] をクリックすると、タスクの進行状況が表示されます。

権限の設定例 1 (Ranger UI で権限を設定)

ユーザー foo に testdb.test テーブルの a 列へのSELECT 権限を付与します。

  1. 左側のナビゲーションウィンドウで、[接続文字列] をクリックします。
  2. [パブリック接続文字列] ページの、[RANGER UI] サービスがある行のリンクをクリックします 。
  3. Ranger ページの、[emr-hive] をクリックし、権限を設定します。
    Spark SQL と Hive は権限設定を共有するため、Spark SQL の権限は emr-hive サービスで設定されます。hive-emr
  4. 設定ページの、 [新しいポリシーを追加] をクリックします。
  5. 表示される [ポリシーの作成] ダイアログボックスで、必要なパラメーターを設定します。
    policy_ranger

    次の表でパラメーターについて説明します。

    パラメーター 説明
    Policy Name ポリシー名を入力。
    database testdb などのデータベースを Hive に追加。
    table test などのテーブルを追加。
    Hive Column a などの列を追加。

    * は、すべての列を示します。

    Description 説明を追加。
    Select User foo などのユーザーを選択。
    Permissions select などの権限を選択。
    ポリシーを追加、削除、または変更した後、設定が完了するまで 1 分ほどかかります。
    ポリシー設定後、ユーザー foo はtestdb.test テーブルの a 列にアクセスできます。