Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Configurer Zeppelin pour les clusters Apache Amazon Ranger-enabled EMR
Cette rubrique explique comment configurer Apache Zeppelin
Par défaut, Zeppelin est configuré avec un identifiant et un mot de passe par défaut qui ne sont pas sécurisés dans un environnement multi-locataire.
Pour configurer Zeppelin, effectuez les opérations suivantes.
-
Modifiez le mécanisme d'authentification.
Modifiez le fichier
shiro.inipour implémenter votre mécanisme d'authentification préféré. Zeppelin prend en charge Active Directory, LDAP, PAM et Knox SSO. Consultez Authentification Apache Shiro pour Apache Zeppelinpour plus d'informations. -
Configuration de Zeppelin pour qu'il se fasse passer pour l'utilisateur final
Lorsque vous autorisez Zeppelin à se faire passer pour l'utilisateur final, les tâches soumises par Zeppelin peuvent être exécutées en tant qu'utilisateur final. Ajoutez la configuration suivante à
core-site.xml:[ { "Classification": "core-site", "Properties": { "hadoop.proxyuser.zeppelin.hosts": "*", "hadoop.proxyuser.zeppelin.groups": "*" }, "Configurations": [ ] } ]Ensuite, ajoutez la configuration suivante à
hadoop-kms-site.xmldans/etc/hadoop/conf:[ { "Classification": "hadoop-kms-site", "Properties": { "hadoop.kms.proxyuser.zeppelin.hosts": "*", "hadoop.kms.proxyuser.zeppelin.groups": "*" }, "Configurations": [ ] } ]Vous pouvez également ajouter ces configurations à votre cluster Amazon EMR à l'aide de la console en suivant les étapes décrites dans Reconfigurer un groupe d'instances dans la console.
-
Autoriser Zeppelin à sudo en tant qu'utilisateur final
Créez un fichier
/etc/sudoers.d/90-zeppelin-usercontenant ce qui suit :zeppelin ALL=(ALL) NOPASSWD:ALL -
Modifiez les paramètres des interpréteurs pour exécuter les tâches des utilisateurs dans leurs propres processus.
Pour tous les interpréteurs, configurez-les pour instancier les interpréteurs « par utilisateur » dans des processus « isolés ».
-
Modifier
zeppelin-env.shAjoutez ce qui suit à
zeppelin-env.shpour que Zeppelin lance les interprètes en tant qu'utilisateur final :ZEPPELIN_IMPERSONATE_USER=`echo ${ZEPPELIN_IMPERSONATE_USER} | cut -d @ -f1` export ZEPPELIN_IMPERSONATE_CMD='sudo -H -u ${ZEPPELIN_IMPERSONATE_USER} bash -c'Ajoutez ce qui suit à
zeppelin-env.shpour modifier les autorisations par défaut du bloc-notes en lecture seule pour le créateur uniquement :export ZEPPELIN_NOTEBOOK_PUBLIC="false"Enfin, ajoutez ce qui suit
zeppelin-env.shpour inclure le chemin de RecordServer classe EMR après la premièreCLASSPATHinstruction :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" -
Redémarrez Zeppelin.
Exécutez la commande suivante pour redémarrer Zeppelin :
sudo systemctl restart zeppelin