本ページでは、Spark を Ranger と統合する方法と、その権限の設定方法について説明します。
このタスクについて
Spark は Ranger と統合して権限を制御できます。 この統合は、Spark Thrift Server を使用して Spark SQL クエリを実行する場合にのみ適用されます。
たとえば、Beeline クライアントまたはSpark の JDBC は、Spark Thrift サーバーを使用して Spark SQL ジョブを送信します。
Spark SQL と Ranger の統合
- Hive を Ranger と統合します。
Spark SQL と Hive は、Ranger の権限設定を共有します。 Ranger を使用して Spark SQL 権限を制御するには、Hive を Ranger
と統合する必要があります。 詳細については、「
Hive への Ranger の統合」をご参照ください。
- Spark を起動します。
- [クラスター管理] タブの [クラスター ID] をクリックします。
- [サービス] セクションの中の [Ranger] をクリックします。
- Ranger のクラスターサービスページの右上隅にある、をクリックします。
- 表示される [クラスターアクティビティ] ダイアログボックスで、必要なパラメーターを設定します。
- [OK] をクリックします。
- 表示される [確認] メッセージで[OK] をクリックします。
- 右上隅の [履歴] をクリックすると、タスクの進行状況が表示されます。
- タスクが完了したら、Spark Thrift サーバーを再起動します。
- 左側のナビゲーションウィンドウから、[クラスターサービス]、[Spark] の順に選択します。
- Spark の [クラスターサービス] ページの右上隅にある、 を選択します。
- 表示される [クラスターアクティビティ] ダイアログボックスで、必要なパラメーターを設定します。
- [OK] をクリックします。
- 表示される [確認] メッセージで[OK] をクリックします。
- 右上隅の [履歴] をクリックすると、タスクの進行状況が表示されます。
権限の設定例 1 (Ranger UI で権限を設定)
ユーザー foo に testdb.test テーブルの a 列へのSELECT 権限を付与します。
- 左側のナビゲーションウィンドウで、[接続文字列] をクリックします。
- [パブリック接続文字列] ページの、[RANGER UI] サービスがある行のリンクをクリックします 。
- Ranger ページの、[emr-hive] をクリックし、権限を設定します。
Spark SQL と Hive は権限設定を共有するため、Spark SQL の権限は emr-hive サービスで設定されます。
- 設定ページの、 [新しいポリシーを追加] をクリックします。
- 表示される [ポリシーの作成] ダイアログボックスで、必要なパラメーターを設定します。
次の表でパラメーターについて説明します。
パラメーター |
説明 |
Policy Name |
ポリシー名を入力。 |
database |
testdb などのデータベースを Hive に追加。 |
table |
test などのテーブルを追加。 |
Hive Column |
a などの列を追加。
* は、すべての列を示します。
|
Description |
説明を追加。 |
Select User |
foo などのユーザーを選択。 |
Permissions |
select などの権限を選択。 |
注 ポリシーを追加、削除、または変更した後、設定が完了するまで 1 分ほどかかります。
ポリシー設定後、ユーザー foo はtestdb.test テーブルの a 列にアクセスできます。