Configurar o Zeppelin para clusters do Amazon EMR habilitados para Apache Ranger - Amazon EMR

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Configurar o Zeppelin para clusters do Amazon EMR habilitados para Apache Ranger

O tópico aborda como configurar o Apache Zeppelin para um cluster do Amazon EMR habilitado para Apache Ranger para que você possa usar o Zeppelin como um caderno para explorar dados de maneira interativa. O Zeppelin é incluído no Amazon EMR 5.0.0 e versões posteriores. As versões anteriores incluem o Zeppelin como uma aplicação sandbox. Para obter mais informações, consulte Amazon EMR 4.x release versions no Guia de lançamento do Amazon EMR.

Por padrão, o Zeppelin é configurado com um login e uma senha padrão que não são seguros em um ambiente multilocatário.

Para configurar o Zeppelin, siga as etapas a seguir.

  1. Modificar o mecanismo de autenticação.

    Modifique o arquivo shiro.ini para implementar o mecanismo de autenticação de sua preferência. O Zeppelin oferece suporte a Active Directory, LDAP, PAM e Knox SSO. Consulte Apache Shiro authentication for Apache Zeppelin para obter mais informações.

  2. Configurar o Zeppelin para representar o usuário final

    Quando você permite que o Zeppelin represente o usuário final, os trabalhos enviados pelo Zeppelin podem ser executados como esse usuário final. Adicione o seguinte à configuração de core-site.xml:

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

    Em seguida, adicione a seguinte configuração a hadoop-kms-site.xml localizado em /etc/hadoop/conf:

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

    Também é possível adicionar essas configurações ao cluster do Amazon EMR usando o console seguindo as etapas descritas em Reconfigure an instance group in the console.

  3. Permitir que o Zeppelin se torne o usuário final

    Crie um arquivo /etc/sudoers.d/90-zeppelin-user que contenha:

    zeppelin ALL=(ALL) NOPASSWD:ALL
  4. Modificar as configurações dos intérpretes para executar trabalhos do usuário em seus próprios processos.

    Configure todos os intérpretes para instanciar os intérpretes “Por usuário” em processos “isolados”.

    Diagrama de arquitetura do Amazon EMR e do Apache Ranger.
  5. Modificar zeppelin-env.sh

    Adicione isto a zeppelin-env.sh que o Zeppelin comece a iniciar intérpretes como usuário final:

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

    Adicione isto a zeppelin-env.sh para alterar as permissões padrão de caderno para somente leitura para o criador:

    export ZEPPELIN_NOTEBOOK_PUBLIC="false"

    Por fim, adicione o seguinte zeppelin-env.sh para incluir o caminho da RecordServer classe EMR após a primeira CLASSPATH declaração:

    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. Reiniciar o Zeppelin.

    Execute o seguinte comando para reiniciar o Zeppelin:

    sudo systemctl restart zeppelin