翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
このトピックでは、Apache Ranger 対応の Amazon EMR クラスター用に Apache Zeppelin
デフォルトでは、Zeppelin はデフォルトのログインとパスワードで設定されており、これはマルチテナント環境では安全ではありません。
Zeppelin を設定するには、以下のステップを実行します。
-
認証メカニズムを変更する
shiro.ini
ファイルを変更して、優先認証メカニズムを実装します。Zeppelin は Active Directory、LDAP、PAM、Knox SSO をサポートしています。詳細については、「Apache Shiro authentication for Apache Zeppelin」を参照してください。 -
エンドユーザーを偽装するように Zeppelin を設定する
Zeppelin がエンドユーザーを偽装することを許可すると、Zeppelin から送信されたジョブを、そのエンドユーザーとして実行できます。以下の設定を
core-site.xml
に追加します。[ { "Classification": "core-site", "Properties": { "hadoop.proxyuser.zeppelin.hosts": "*", "hadoop.proxyuser.zeppelin.groups": "*" }, "Configurations": [ ] } ]
次に、
/etc/hadoop/conf
にあるhadoop-kms-site.xml
に次の設定を追加します。[ { "Classification": "hadoop-kms-site", "Properties": { "hadoop.kms.proxyuser.zeppelin.hosts": "*", "hadoop.kms.proxyuser.zeppelin.groups": "*" }, "Configurations": [ ] } ]
「コンソールでのインスタンスグループの再設定」の手順に従って、コンソールを使用して Amazon EMR クラスターにこれらの設定を追加することもできます。
-
Zeppelin にエンドユーザーとして sudo を許可する
以下が含まれているファイル
/etc/sudoers.d/90-zeppelin-user
を作成します。zeppelin ALL=(ALL) NOPASSWD:ALL
-
インタプリタの設定を変更して、自分のプロセスでユーザージョブを実行する。
すべてのインタープリタについて、「分離された」プロセスでインタープリタを「ユーザーごとに」インスタンス化するように設定します。
-
zeppelin-env.sh
を変更する以下を
zeppelin-env.sh
に追加し、Zeppelin がエンドユーザーとして起動インタプリタを開始するようにします。ZEPPELIN_IMPERSONATE_USER=`echo ${ZEPPELIN_IMPERSONATE_USER} | cut -d @ -f1` export ZEPPELIN_IMPERSONATE_CMD='sudo -H -u ${ZEPPELIN_IMPERSONATE_USER} bash -c'
以下を
zeppelin-env.sh
に追加し、デフォルトのノートブックアクセス許可を作成者のみの読み取り専用に変更します。export ZEPPELIN_NOTEBOOK_PUBLIC="false"
最後に、以下を
zeppelin-env.sh
に追加し、最初のCLASSPATH
ステートメントの後に EMR RecordServer クラスパスを含めます。export CLASSPATH="$CLASSPATH:/usr/share/aws/emr/record-server/lib/aws-emr-record-server-connector-common.jar:/usr/share/aws/emr/record-server/lib/aws-emr-record-server-spark-connector.jar:/usr/share/aws/emr/record-server/lib/aws-emr-record-server-client.jar:/usr/share/aws/emr/record-server/lib/aws-emr-record-server-common.jar:/usr/share/aws/emr/record-server/lib/jars/secret-agent-interface.jar"
-
Zeppelin を再起動する
以下のコマンドを実行して、Zeppelin を再起動します。
sudo systemctl restart zeppelin