

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á.

# JupyterHub configuração e administração
<a name="emr-jupyterhub-administer"></a>

JupyterHub e componentes relacionados são executados dentro de um contêiner Docker chamado `jupyterhub` que executa o sistema operacional Ubuntu. Há várias maneiras para você administrar os componentes que são executados dentro do contêiner.

**Atenção**  
As personalizações que você executa no contêiner podem não persistir se o contêiner for reiniciado. Recomendamos que você faça script ou automatize a configuração de contêiner para que possa reproduzir personalizações com mais facilidade.

## Administração usando a linha de comando
<a name="emr-jupyterhub-administer-cli"></a>

Quando conectado ao nó principal usando SSH, você pode emitir comandos usando a interface de linha de comando (CLI) do Docker e especificando o contêiner por nome (`jupyterhub`) ou ID. Por exemplo, o `sudo docker exec jupyterhub {{command}}` executa comandos reconhecidos pelo sistema operacional ou por um aplicativo em execução dentro do contêiner. Você pode usar esse método para adicionar usuários ao sistema operacional e instalar aplicativos e bibliotecas adicionais no contêiner Docker. Por exemplo, a imagem do contêiner padrão inclui Conda para instalação de pacote, portanto, você pode executar o seguinte comando na linha de comando do nó principal para instalar um aplicativo, Keras, dentro do contêiner:

```
sudo docker exec jupyterhub conda install keras
```

## Administração por envio de etapas
<a name="emr-jupyterhub-administer-steps"></a>

As etapas são uma maneira de enviar trabalhos a um cluster. Você pode enviar etapas quando o cluster é iniciado ou pode enviá-las para um cluster em execução. Os comandos que você executa na linha de comando podem ser enviados como etapas usando o `command-runner.jar`. Para obter mais informações, consulte [Trabalhar com etapas usando a CLI e o console](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-work-with-steps.html) no *Guia de gerenciamento do Amazon EMR* e no [Executar comandos e scripts em um cluster do Amazon EMR](emr-commandrunner.md).

Por exemplo, você pode usar o AWS CLI comando a seguir em um computador local para instalar o Keras da mesma forma que fez na linha de comando do nó principal no exemplo anterior:

```
aws emr add-steps --cluster-id {{MyClusterID}} --steps Name="{{Command Runner}}",Jar="command-runner.jar",Args="/usr/bin/sudo","/usr/bin/docker","exec","jupyterhub","conda","install","keras"
```

Além disso, você pode fazer o script de uma sequência de etapas, carregar o script no Amazon S3 e, em seguida usar `script-runner.jar` para executar o script quando você cria o cluster ou adiciona o script como uma etapa. Para obter mais informações, consulte [Executar comandos e scripts em um cluster do Amazon EMR](emr-commandrunner.md). Para ver um exemplo, consulte [Exemplo: script Bash para adicionar vários usuários](emr-jupyterhub-pam-users.md#emr-jupyterhub-script-multuser).

## Administração usando REST APIs
<a name="emr-jupyterhub-administer-rest"></a>

Jupyter, JupyterHub, e o proxy HTTP para JupyterHub fornecer REST APIs que você pode usar para enviar solicitações. Para enviar solicitações para JupyterHub, você deve passar um token de API com a solicitação. Você pode usar o comando `curl` na linha de comando do nó principal para executar comandos REST. Para saber mais, consulte os seguintes recursos:
+ [Usando JupyterHub a API REST](http://jupyterhub.readthedocs.io/en/latest/reference/rest.html) na documentação do JupyterHub, que inclui instruções para gerar tokens de API
+ API do [servidor Jupyter Notebook ativada](https://github.com/jupyter/jupyter/wiki/Jupyter-Notebook-Server-API) GitHub
+ [configurable-http-proxy](https://github.com/jupyterhub/configurable-http-proxy)em GitHub

O exemplo a seguir demonstra o uso da API REST JupyterHub para obter uma lista de usuários. O comando passa um token administrativo gerado anteriormente e usa a porta padrão, 9443 JupyterHub, para canalizar a saída para [jq](https://stedolan.github.io/jq/) para facilitar a visualização:

```
curl -XGET -s -k https://$HOST:9443/hub/api/users \
-H "Authorization: token $admin_token" | jq .
```