Configurazione dei cluster Amazon EMR abilitati da Zeppelin per Apache Ranger - Amazon EMR

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Configurazione dei cluster Amazon EMR abilitati da Zeppelin per Apache Ranger

L'argomento illustra come configurare Apache Zeppelin per un cluster Amazon EMR abilitato per Apache Ranger in modo da poter utilizzare Zeppelin come notebook per l'esplorazione interattiva dei dati. Zeppelin è incluso nel rilascio di Amazon EMR versione 5.0.0 e successive. Le versioni precedenti includono Zeppelin come applicazione sandbox. Per ulteriori informazioni, consulta Versioni del rilascio 4.x di Amazon EMR nella Guida ai rilasci di Amazon EMR.

Per impostazione predefinita, Zeppelin è configurato con un log-in e una password di default che non sono sicuri in un ambiente multi-tenant.

Per configurare Zeppelin, completa la procedura riportata di seguito.

  1. Modifica del meccanismo di autenticazione.

    Modifica del file shiro.ini per implementare il meccanismo di autenticazione preferito. Zeppelin supporta Active Directory, LDAP, PAM e Knox SSO. Consulta Autenticazione Apache Shiro per Apache Zeppelin per ulteriori informazioni.

  2. Configurazione di Zeppelin per rappresentare l'utente finale

    Consentire a Zeppelin di rappresentare l'utente finale fa sì che i processi inviati da Zeppelin vengano eseguiti come utente finale. Aggiungi la seguente configurazione a core-site.xml:

    [ { "Classification": "core-site", "Properties": { "hadoop.proxyuser.zeppelin.hosts": "*", "hadoop.proxyuser.zeppelin.groups": "*" }, "Configurations": [ ] } ]

    Quindi, aggiungi la seguente configurazione a hadoop-kms-site.xml in /etc/hadoop/conf:

    [ { "Classification": "hadoop-kms-site", "Properties": { "hadoop.kms.proxyuser.zeppelin.hosts": "*", "hadoop.kms.proxyuser.zeppelin.groups": "*" }, "Configurations": [ ] } ]

    Puoi anche aggiungere queste configurazioni al tuo cluster Amazon EMR tramite la console seguendo la procedura descritta in Riconfigurazione di un gruppo di istanze nella console.

  3. Consenti a Zeppelin di eseguire il comando sudo come utente finale

    Crea un file /etc/sudoers.d/90-zeppelin-user che contenga quanto segue:

    zeppelin ALL=(ALL) NOPASSWD:ALL
  4. Modifica le impostazioni degli interpreti per eseguire i processi degli utenti nei propri processi.

    Per tutti gli interpreti, configurali per creare un'istanza degli interpreti "per user" (per utente) nei processi "isolated" (isolati).

    Diagramma dell'architettura Amazon EMR e Apache Ranger.
  5. Modifica zeppelin-env.sh

    Aggiungi quanto segue a zeppelin-env.sh in modo che Zeppelin inizi ad avviare interpreti come utente finale:

    ZEPPELIN_IMPERSONATE_USER=`echo ${ZEPPELIN_IMPERSONATE_USER} | cut -d @ -f1` export ZEPPELIN_IMPERSONATE_CMD='sudo -H -u ${ZEPPELIN_IMPERSONATE_USER} bash -c'

    Aggiungi quanto segue a zeppelin-env.sh per modificare le autorizzazioni predefinite del notebook in sola lettura solo per l'autore:

    export ZEPPELIN_NOTEBOOK_PUBLIC="false"

    Infine, aggiungete quanto segue zeppelin-env.sh per includere il percorso della RecordServer classe EMR dopo la prima CLASSPATH istruzione:

    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"
  6. Riavvia Zeppelin.

    Per riavviare Zeppelin, esegui il comando seguente:

    sudo systemctl restart zeppelin