Pular para o conteúdo principal

Configurar compute (legado)

nota

Essas são instruções para a interface de usuário de criação de cluster herdada e estão incluídas apenas para fins de precisão histórica. Todos os clientes devem estar usando a interface de criação de cluster atualizada.

Este artigo explica as opções de configuração disponíveis quando o senhor cria e edita o Databricks clustering. Ele se concentra na criação e edição de clustering usando a interface do usuário. Para outros métodos, consulte o Databricks CLI provedor API o provedor Databricks Terraform de clustering, e.

Para ajudar a decidir qual combinação de opções de configuração atende melhor às suas necessidades, consulte as práticas recomendadas de configuração de clustering.

Criar cluster

política de cluster

Uma política de cluster limita a capacidade de configurar o clustering com base em um conjunto de regras. As regras de política limitam os atributos ou valores de atributos disponíveis para a criação de clusters. políticas de cluster têm ACLs que limitam seu uso a usuários e grupos específicos e, portanto, limitam as políticas que podem ser selecionadas quando o usuário cria um cluster.

Para configurar uma política de cluster, selecione a política de cluster no menu suspenso Política .

Selecionar a política de cluster

nota

Se nenhuma política tiver sido criada no site workspace, o menu suspenso Policy (Política ) não será exibido.

Se você tiver:

  • permissão de criação de cluster, o senhor pode selecionar a política Unrestricted e criar um cluster totalmente configurável. A política Unrestricted não limita nenhum atributo ou valor de atributo de clustering.
  • Tanto na permissão de criação de cluster quanto no acesso à política de cluster, o senhor pode selecionar a política Unrestricted e as políticas às quais tem acesso.
  • Acesso somente à política de cluster, o senhor pode selecionar as políticas às quais tem acesso.

modo de agrupamento

nota

Este artigo descreve a interface de usuário de clustering herdada. Para obter informações sobre a nova UI de clustering (em visualização), consulte a referência de configuração de computação. Isso inclui algumas alterações de terminologia para tipos e modos de acesso a clusters. Para obter uma comparação dos tipos de clustering novos e antigos, consulte alterações na interface do usuário do clustering e modos de acesso ao clustering. Na interface de usuário de visualização:

  • Os clusters de modo padrão agora são chamados de clusters de modo de acesso compartilhado sem isolamento .
  • alta simultaneidade com tabelas ACLs agora são chamadas de clustering de modo de acesso compartilhado .

Databricks suporta três modos de clustering: Padrão, alta simultaneidade e nó único. O modo de clustering do default é Standard.

important
  • Se o seu workspace estiver atribuído a um Unity Catalog metastore, o cluster de alta simultaneidade não estará disponível. Em vez disso, você usa o modo de acesso para garantir a integridade dos controles de acesso e aplicar fortes garantias de isolamento. Consulte também Modos de acesso.
  • O senhor não pode alterar o modo de clustering depois que um clustering é criado. Se o senhor quiser um modo de clustering diferente, deverá criar um novo clustering.

A configuração de clustering inclui uma configuração de encerramento automático cujo valordefault depende do modo de clustering:

  • Os clusters Standard e Single Node são encerrados automaticamente após 120 minutos pelo site default.
  • cluster de alta simultaneidade não são encerrados automaticamente pelo site default.

Clusterização padrão

atenção

O clustering de modo padrão (às vezes chamado de clustering compartilhado sem isolamento) pode ser compartilhado por vários usuários, sem isolamento entre eles. Se o senhor usar o modo de cluster de alta simultaneidade sem configurações de segurança adicionais, como ACLs de tabela ou Credential Passthrough , serão usadas as mesmas configurações do cluster de modo padrão. Os administradores de conta podem impedir que as credenciais internas sejam geradas automaticamente para os administradores do Databricks workspace nesses tipos de clustering. Para opções mais seguras, o site Databricks recomenda alternativas como o cluster de alta simultaneidade com ACLs de tabela.

Um clustering padrão é recomendado apenas para usuários individuais. O clustering padrão pode executar cargas de trabalho desenvolvidas em Python, SQL, R e Scala.

cluster de alta simultaneidade

Um cluster de alta simultaneidade é um recurso para gerenciar nuvens. As key vantagens do cluster de alta simultaneidade são o fato de oferecer um compartilhamento refinado para a utilização máxima de recursos e latências mínimas de consulta.

O cluster de alta simultaneidade pode executar cargas de trabalho desenvolvidas em SQL, Python e R. O desempenho e a segurança do cluster de alta simultaneidade são proporcionados pela execução do código do usuário em processos separados, o que não é possível em Scala.

Além disso, somente o cluster de alta simultaneidade suporta o controle de acesso à tabela.

Para criar um cluster de alta simultaneidade, defina o clustering Mode como alta simultaneidade .

Modo de cluster de alta simultaneidade

Clustering de nó único

Um clustering de nó único não tem nenhum trabalhador e executa Spark o trabalho no nó do driver.

Por outro lado, um clustering Standard requer pelo menos um nó Spark worker além do nó do driver para executar o trabalho Spark.

Para criar um clustering de nó único, defina o clustering Mode como Single Node .

modo cluster single node

Para saber mais sobre como trabalhar com clustering de nó compute único, consulte.

piscina

Para reduzir o tempo de início do clustering, o senhor pode anexar um clustering a um número predefinido pool de instâncias predefinidas, para os nós driver e worker. O clustering é criado usando instâncias no pool. Se um pool não tiver parado recurso suficiente para criar o driver ou os nós worker solicitados, o pool se expande alocando novas instâncias do provedor de instâncias. Quando um clustering anexado é encerrado, as instâncias que ele usou são devolvidas ao pool e podem ser reutilizadas por um clustering diferente.

Se o senhor selecionar um pool para os nós worker, mas não para o nó do driver, o nó do driver herdará o pool da configuração do nó worker.

important

Se o senhor tentar selecionar um pool para o nó driver, mas não para os nós worker, ocorrerá um erro e o clustering não será criado. Esse requisito evita uma situação em que o nó do driver precisa esperar que os nós worker sejam criados, ou vice-versa.

Consulte a referência de configuração do pool para saber mais sobre como trabalhar com o pool em Databricks.

Databricks Runtime

Databricks Os tempos de execução são o conjunto de componentes principais que são executados em seu clustering. Todos os tempos de execução do Databricks incluem o Apache Spark e adicionam componentes e atualizações que melhoram a usabilidade, o desempenho e a segurança. Para obter detalhes, consulte Databricks Runtime notas sobre as versões e a compatibilidade.

Databricks oferece vários tipos de tempos de execução e várias versões desses tipos de tempo de execução no menu suspenso Databricks Runtime Version quando o senhor cria ou edita um clustering.

Selecione a versão Runtime

Photon aceleração

Photon está disponível para clustering executando Databricks Runtime 9.1 LTS e acima.

Para habilitar a aceleração Photon, marque a caixa de seleção Usar aceleração Photon .

Se desejar, você pode especificar o tipo de instância nas listas suspensas Worker Type e Driver Type.

O senhor pode acessar view Photon atividade no Spark UI. A captura de tela a seguir mostra os detalhes da consulta DAG. Há duas indicações de Photon no DAG. Primeiro, os operadores Photon começam com "Photon", por exemplo, PhotonGroupingAgg. Em segundo lugar, no DAG, os operadores e estágios do Photon são de cor pêssego, enquanto os que não são doPhoton são azuis.

Photon DAG

Docker Imagem

Em algumas versões do Databricks Runtime, o senhor pode especificar uma imagem Docker ao criar um clustering. Exemplos de casos de uso incluem a personalização da biblioteca, um ambiente de contêiner dourado que não muda e a integração do Docker CI/CD .

Você também pode usar imagens do Docker para criar ambientes personalizados de aprendizado profundo em clusters com dispositivos GPU.

Para obter instruções, consulte Personalizar contêineres com Databricks Container serviço e Databricks Container Services na GPU compute.

tipo de nó de agrupamento

Um cluster consiste em um nó de driver e zero ou mais nós de worker.

Você pode escolher tipos de instância de provedor de nuvem separados para os nós driver e worker, embora por padrão o nó driver use o mesmo tipo de instância que o nó worker. Diferentes famílias de tipos de instância se adaptam a diferentes casos de uso, como cargas de trabalho com uso intensivo de memória ou de computação.

Nodo do driver

O nó do driver mantém as informações de estado de todos os notebooks anexados ao clustering. O nó driver também mantém o SparkContext e interpreta todos os comandos que o senhor executa a partir de um Notebook ou de uma biblioteca no clustering, e executa o Apache Spark master que coordena com o executor Spark.

O valor padrão do tipo de nó do driver é o mesmo que o tipo de nó do worker. Você pode escolher um tipo de nó de driver maior com mais memória se estiver planejando collect() muitos dados de workers do Spark e analisá-los no notebook.

dica

Como o nó do driver mantém todas as informações de estado dos notebooks conectados, desanexe os notebooks não utilizados do nó do driver.

nó de trabalho

Databricks worker nós executam o executor Spark e outros serviços necessários para o funcionamento adequado do clustering. Quando o senhor distribui sua carga de trabalho com o Spark, todo o processamento distribuído acontece nos nós do worker. Databricks execução um executor por nó worker; portanto, os termos executor e worker são usados de forma intercambiável no contexto da arquitetura Databricks.

dica

Para executar um trabalho do Spark, você precisa de pelo menos um nó de worker. Se um cluster tiver zero workers, você poderá executar comandos não Spark no nó do driver, mas os comandos Spark falharão.

nota

Databricks lança worker nós com dois endereços IP privados cada. O endereço IP privado primário do nó é usado para hospedar o tráfego interno da Databricks. O endereço IP privado secundário é usado pelo contêiner Spark para comunicação intra-cluster. Esse modelo permite que o site Databricks forneça isolamento entre vários clusters no mesmo site workspace.

Tipos de instância de GPU

Para tarefas computacionalmente desafiadoras que exigem alto desempenho, como as associadas à aprendizagem profunda, o site Databricks suporta clustering acelerado com unidades de processamento gráfico (GPUs). Para obter mais informações, consulte GPU-enabled compute.

Tipos de instância do AWS Graviton

Databricks suporta clustering com AWS Graviton processadores. As instâncias AWS Graviton baseadas em Arm foram projetadas pela AWS para oferecer melhor desempenho de preço em relação às instâncias comparáveis baseadas em x86 da geração atual. Consulte os tipos de instância do AWS Graviton.

tamanho do agrupamento e escala automática

Ao criar um cluster Databricks, você pode fornecer um número fixo de workers para o cluster ou fornecer um número mínimo e máximo de workers para o cluster.

Quando você entrega um cluster de tamanho fixo, o Databricks garante que seu cluster tenha o número especificado de workers. Quando você fornece um intervalo para o número de workers, o Databricks escolhe o número apropriado de workers necessários para executar seu job. Isso é conhecido como escalonamento automático .

Com o autoscale, o Databricks realoca dinamicamente os workers para dar conta das características do seu job. Certas partes do seu pipeline podem ser mais exigentes computacionalmente do que outras, e o Databricks adiciona automaticamente workers adicionais durante essas fases do seu trabalho (e os remove quando não são mais necessários).

O dimensionamento automático facilita a obtenção de alta utilização do cluster, porque você não precisa provisionar o cluster para corresponder a uma carga de trabalho. Isso se aplica especialmente a cargas de trabalho cujos requisitos mudam ao longo do tempo (como explorar um conjunto de dados durante o dia), mas também pode se aplicar a uma carga de trabalho mais curta cujos requisitos de provisionamento são desconhecidos. O autoscale oferece, portanto, duas vantagens:

  • As cargas de trabalho podem ser executadas mais rapidamente em comparação com um cluster subprovisionado de tamanho constante.
  • Os clusters de dimensionamento automático podem reduzir os custos gerais em comparação com um cluster de tamanho estático.

Dependendo do tamanho constante do cluster e da carga de trabalho, o dimensionamento automático oferece um ou ambos os benefícios ao mesmo tempo. O tamanho do cluster pode ficar abaixo do número mínimo de workers selecionados quando o provedor de nuvem encerra as instâncias. Nesse caso, o Databricks tenta continuamente provisionar novamente as instâncias para manter o número mínimo de workers.

nota

O autoscale não está disponível para jobs spark-submit.

Como a autoescala se comporta

  • Aumenta de mínimo a máximo em 2 passos.
  • Pode reduzir a escala mesmo que o clustering não seja parado, observando o estado do arquivo shuffle.
  • Reduz com base em uma porcentagem dos nós atuais.
  • Em clusters de job, reduz se o cluster for subutilizado nos últimos 40 segundos.
  • Em clusters multifuncionais, reduz se o cluster for subutilizado nos últimos 150 segundos.
  • A propriedade de configuração spark.databricks.aggressiveWindowDownS do Spark especifica em segundos com que frequência um cluster toma decisões de redução de escala. Aumentar o valor faz com que um cluster seja reduzido mais lentamente. O valor máximo é 600.

Ativar e configurar a autoescala

Para permitir que Databricks redimensione seu cluster automaticamente, habilite o dimensionamento automático para o cluster e forneça o intervalo mínimo e máximo de workers.

  1. Ativar Autoscale.

    • clusters todo-propósito - Na página Create clustering (Criar cluster), marque a caixa de seleção Enable autoscale (Ativar escala automática ) na caixa Autopilot Options (Opções de piloto automático ):

      Enable\autoscale para clustering interativo

    • Job clustering - Na página Configure clustering (Configurar clustering), marque a caixa de seleção Enable autoscale (Ativar escala automática ) na caixa Autopilot Options (Opções de piloto automático ):

      Ativar Autoscale para clusters de job

  2. Configure os workers mínimos e máximos.

    Configurar workers mínimos e máximos

    Quando o cluster está em execução, a página de detalhes do cluster exibe o número de workers alocados. Você pode comparar o número de workers alocados com a configuração do worker e fazer os ajustes necessários.

important

Se o senhor estiver usando um pool de instâncias:

  • Certifique-se de que o tamanho do clustering solicitado seja menor ou igual ao número mínimo de instâncias parado no site pool. Se for maior, o tempo de clusterização startup será equivalente a um clustering que não usa pool.
  • Certifique-se de que o tamanho máximo do clustering seja menor ou igual à capacidade máxima do site pool. Se for maior, a criação do de clustering falhará.

exemplo de autoescala

Se você reconfigurar um cluster estático para ser um cluster de Autoscale, o Databricks redimensiona imediatamente o cluster dentro dos limites mínimo e máximo e, em seguida, inicia o Autoscale. Como exemplo, a tabela a seguir demonstra o que acontece com clusters com um determinado tamanho inicial se você reconfigurar um cluster para dimensionar automaticamente entre 5 e 10 nós.

Tamanho inicial

Tamanho após a reconfiguração

6

6

12

10

3

5

Criptografia de disco local

info

Visualização

Esse recurso está em Public Preview.

Alguns tipos de instância que o senhor usa para executar o clustering podem ter discos conectados localmente. Databricks pode armazenar dados aleatórios ou dados efêmeros nesses discos conectados localmente. Para garantir que todos os dados em repouso sejam criptografados para todos os tipos de armazenamento, inclusive os dados embaralhados que são armazenados temporariamente nos discos locais do cluster, o senhor pode ativar a criptografia de disco local.

important

Suas cargas de trabalho podem ser executadas mais lentamente devido ao impacto no desempenho da leitura e gravação de dados criptografados de e para volumes locais.

Quando a criptografia de disco local está ativada, o site Databricks gera uma criptografia key localmente que é exclusiva para cada nó de clustering e é usada para criptografar todos os dados armazenados em discos locais. O escopo do key é local para cada nó de clustering e é destruído junto com o próprio nó de clustering. Durante sua vida útil, o key reside na memória para criptografia e descriptografia e é armazenado criptografado no disco.

Para ativar a criptografia de disco local, o senhor deve usar o clustering API. Durante a criação ou edição do clustering, defina:

JSON
{
"enable_local_disk_encryption": true
}

Consulte o site de clustering API para obter exemplos de como invocar esses APIs.

Aqui está um exemplo de uma chamada de criação de clustering que habilita a criptografia de disco local:

JSON
{
"cluster_name": "my-cluster",
"spark_version": "7.3.x-scala2.12",
"node_type_id": "r3.xlarge",
"enable_local_disk_encryption": true,
"spark_conf": {
"spark.speculation": true
},
"num_workers": 25
}

Modo de segurança

Se o seu workspace estiver atribuído a um Unity Catalog metastore, use o modo de segurança em vez do modo de cluster de alta simultaneidade para garantir a integridade dos controles de acesso e aplicar fortes garantias de isolamento. O modo cluster de alta simultaneidade não está disponível em Unity Catalog.

Em Advanced options (Opções avançadas ), selecione um dos seguintes modos de segurança de clustering:

  • Nenhum : Sem isolamento. Não impõe o controle de acesso local workspaceda tabela ou a passagem de credenciais. Não é possível acessar os dados do Unity Catalog.
  • Single User : Pode ser usado somente por um único usuário (por default, o usuário que criou o clustering). Outros usuários não podem se conectar ao clustering. Ao acessar um view de um cluster com modo de segurança de usuário único , o view é executado com as permissões do usuário. O clustering de usuário único oferece suporte a cargas de trabalho usando Python, Scala e R. O script de inicialização, a instalação da biblioteca e as montagens de DBFS são compatíveis com o clustering de usuário único. O trabalho automatizado deve usar o clustering de usuário único.
  • Isolamento do usuário : pode ser compartilhado por vários usuários. Somente as cargas de trabalho SQL são compatíveis. A instalação da biblioteca, o script de inicialização e as montagens do site DBFS são desativados para reforçar o isolamento estrito entre os usuários do clustering.
  • Somente tabela ACL (legado) : Aplica o controle de acesso local workspaceda tabela, mas não pode acessar os dados Unity Catalog.
  • Somente passagem (legado) : Aplica a passagem de credenciais locais workspace, mas não pode acessar os dados Unity Catalog.

Os únicos modos de segurança compatíveis com as cargas de trabalho do Unity Catalog são Single User e User Isolation .

Para obter mais informações, consulte Modos de acesso.

Configurações do AWS

Ao configurar as instâncias de AWS de um clustering, o senhor pode escolher a zona de disponibilidade, o preço máximo à vista, o tipo e o tamanho do volume do EBS e o perfil da instância. Para especificar configurações,

  1. Na página Configuração do cluster, clique no botão Opções avançadas .

  2. Na parte inferior da página, clique em Instâncias tab.

    Instâncias tab

Zonas de disponibilidade

Essa configuração permite que o senhor especifique qual zona de disponibilidade (AZ) deseja que o clustering use. Em default, essa configuração é definida como automática (Auto-AZ), em que o AZ é selecionado automaticamente com base nos IPs disponíveis nas sub-redes workspace. O Auto-AZ tenta novamente em outras zonas de disponibilidade se o AWS retornar erros de capacidade insuficiente.

A escolha de uma AZ específica para um clustering é útil principalmente se sua organização tiver adquirido instâncias reservadas em zonas de disponibilidade específicas. Leia mais sobre as zonas de disponibilidade do AWS.

Instâncias pontuais

Você pode especificar se deseja usar instâncias spot e o preço spot máximo a ser usado ao lançar instâncias spot como uma porcentagem do preço sob demanda correspondente. Por padrão, o preço máximo é 100% do preço sob demanda. Consulte preços spot da AWS.

Volumes do EBS

Esta seção descreve as configurações do volume do EBS do default para os nós do worker, como adicionar volumes aleatórios e como configurar um clustering para que o Databricks aloque automaticamente os volumes do EBS.

Para configurar os volumes EBS, clique em Instâncias tab na configuração de clustering e selecione uma opção na lista suspensa EBS Volume Type .

volumes padrão do EBS

O Databricks provisiona volumes EBS para cada nó de trabalho da seguinte forma:

  • Um volume raiz de instância EBS criptografado de 30 GB usado somente pelo sistema operacional do host e pelo serviço interno Databricks.
  • Um volume raiz de contêiner EBS criptografado de 150 GB usado pelo worker do Spark. Isso hospeda serviços e logs do Spark.
  • (somente HIPAA) um volume de log de worker do EBS criptografado de 75 GB que armazena logs para serviços internos do Databricks.

Adicionar volumes aleatórios do EBS

Para adicionar volumes aleatórios, selecione SSD propósito geral na lista suspensa EBS Volume Type:

Tipo de volume do EBS

Em default, as saídas de embaralhamento de Spark vão para o disco local da instância. Para tipos de instância que não têm um disco local, ou se o senhor quiser aumentar o espaço de armazenamento do Spark shuffle, pode especificar volumes EBS adicionais. Isso é particularmente útil para evitar erros de falta de espaço em disco quando o senhor executa Spark trabalhos que produzem grandes saídas de embaralhamento.

A Databricks criptografa esses volumes EBS para instâncias on-demand e spot. Leia mais sobre os volumes EBS da AWS.

Opcionalmente, criptografe os volumes do Databricks EBS com um gerenciador de clientes key

Opcionalmente, o senhor pode criptografar volumes de EBS em cluster com um gerenciador de clientes key.

Consulte Chave de gerenciamento de clientes para criptografia

Limites do AWS EBS

Certifique-se de que os limites do AWS EBS sejam altos o suficiente para atender aos requisitos de tempo de execução de todos os trabalhadores em todos os clusters. Para obter informações sobre os limites do default EBS e como alterá-los, consulte Amazon Elastic Block Store (EBS) Limits.

Tipo de volume do AWS EBS SSD

O senhor pode selecionar gp2 ou gp3 para o tipo de volume do AWS EBS SSD. Para fazer isso, consulte gerenciar SSD storage. A Databricks recomenda que o senhor mude para o gp3 por causa da economia de custos em comparação com o gp2. Para obter informações técnicas sobre gp2 e gp3, consulte Amazon EBS volume types.

armazenamento local em escala automática

Se o senhor não quiser alocar um número fixo de volumes EBS no momento da criação do cluster, use o armazenamento local de escala automática. Com o armazenamento local de autoescala, o site Databricks monitora a quantidade de espaço livre em disco disponível no worker Spark do clustering. Se um worker começar a ficar com pouco espaço em disco, o Databricks anexará automaticamente um novo volume EBS ao worker antes que ele fique sem espaço em disco. Os volumes do EBS são anexados até um limite de 5 TB de espaço total em disco por instância (incluindo o armazenamento local da instância).

Para configurar o armazenamento de autoescala, selecione Enable autoscale local storage (Ativar armazenamento local de autoescala ) na caixa Autopilot Options (Opções de piloto automático):

Ativar dimensionamento automático do armazenamento local

Os volumes EBS anexados a uma instância são desanexados somente quando a instância é devolvida ao AWS. Ou seja, os volumes do EBS nunca são desconectados de uma instância enquanto ela fizer parte de um cluster em execução. Para reduzir o uso do EBS, o site Databricks recomenda o uso desse recurso em um cluster configurado com o tamanho do cluster e a escala automática ou o encerramento automático.

nota

O Databricks usa o Throughput Optimized HDD (st1) para estender o armazenamento local de uma instância. O limite de capacidade padrão da AWS para esses volumes é 20 TiB. Para evitar atingir esse limite, os administradores devem solicitar um aumento nesse limite com base em seus requisitos de uso.

nota

Se o senhor criou seu Databricks account antes da versão 2.44 (antes de 27 de abril de 2017) e quiser usar o armazenamento local de autoescala (ativado por default em cluster de alta simultaneidade), deverá adicionar permissões de volume ao IAM role ou à chave usada para criar seu account. Em particular, você deve adicionar as permissões ec2:AttachVolume, ec2:CreateVolume, ec2:DeleteVolume e ec2:DescribeVolumes. Para obter a lista completa de permissões e instruções sobre como atualizar seu IAM role ou chave existente, consulte Criar um IAM role para implantação do workspace.

perfil da instância

Para acessar com segurança o AWS recurso sem usar a chave AWS, o senhor pode iniciar o Databricks clustering com o perfil de instância. Consulte o tutorial: Configure o acesso S3 com um instance profile para obter informações sobre como criar e configurar o perfil da instância. Depois de criar um instance profile, o senhor o seleciona na lista suspensa do perfil da instância:

Perfil de instância

nota

Depois que um cluster é iniciado com um instance profile, qualquer pessoa que tenha permissões de anexação a esse cluster pode acessar o recurso subjacente controlado por essa função. Para se proteger contra acesso indesejado, o senhor pode usar permissões de computação para restringir as permissões ao clustering.

Configuração do Spark

Para ajustar Spark o Job, o Spark senhor pode fornecer propriedades personalizadas de configuração do em uma configuração de clustering.

  1. Na página Configuração do cluster, clique no botão Opções avançadas .

  2. Clique na tab Spark .

    Configuração do Spark

    Na configuração do Spark , insira as propriedades de configuração como um par key-value por linha.

Quando o senhor configura um clustering usando o clustering API, defina as propriedades Spark no campo spark_conf em Create new clustering API ou Update clustering configuration API.

Databricks não recomenda o uso de script de inicialização global.

Para definir as propriedades do Spark para todos os clusters, crie um init scriptglobal:

Scala
dbutils.fs.put("dbfs:/databricks/init/set_spark_params.sh","""
|#!/bin/bash
|
|cat << 'EOF' > /databricks/driver/conf/00-custom-spark-driver-defaults.conf
|[driver] {
| "spark.sql.sources.partitionOverwriteMode" = "DYNAMIC"
|}
|EOF
""".stripMargin, true)

Recuperar uma propriedade de configuração do Spark a partir de um segredo

Databricks recomenda o armazenamento de informações confidenciais, como senhas, em um segredo em vez de texto simples. Para fazer referência a um segredo na configuração do Spark, use a seguinte sintaxe:

ini
spark.<property-name> {{secrets/<scope-name>/<secret-name>}}

Por exemplo, para definir uma propriedade de configuração do Spark chamada password para o valor do segredo armazenado em secrets/acme_app/password:

ini
spark.password {{secrets/acme-app/password}}

Para obter mais informações, consulte gerenciar segredos.

variável de ambiente

O senhor pode configurar uma variável de ambiente personalizada que pode ser acessada a partir do script de inicialização executado em um cluster. Databricks também fornece variáveis de ambiente predefinidas que o senhor pode usar no script de inicialização. O senhor não pode substituir essas variáveis de ambiente predefinidas.

  1. Na página Configuração do cluster, clique no botão Opções avançadas .

  2. Clique na tab Spark .

  3. Defina as variáveis de ambiente no campo Variáveis de ambiente .

    Campo Variáveis de ambiente

O senhor também pode definir a variável de ambiente usando o campo spark_env_vars em Create new clustering API ou Update clustering configuration API.

Etiqueta de cluster

O Cluster Tag permite que o senhor monitore facilmente o custo do recurso de nuvem usado por vários grupos da sua organização. O senhor pode especificar tags como par key-value ao criar um clustering, e o Databricks aplica essas tags aos recursos de nuvem, como VMs e volumes de disco, bem como aos relatórios de uso doDBU.

Para o clustering iniciado a partir do pool, a tag de cluster personalizada é aplicada somente aos relatórios de uso do DBU e não se propaga para o recurso de nuvem.

Para obter informações detalhadas sobre como os tipos pool e Cluster Tag funcionam juntos, consulte Uso de atributos usando tags.

Por conveniência, o site Databricks aplica quatro tags default a cada clustering: Vendor, Creator, ClusterName e ClusterId.

Além disso, no agrupamento de trabalhos, o site Databricks aplica duas tags default: RunName e JobId.

No recurso usado por Databricks SQL, Databricks também aplica a tag default SqlWarehouseId.

atenção

Não atribua uma tag personalizada com o endereço key Name a um clustering. Cada clustering tem uma tag Name cujo valor é definido por Databricks. Se o senhor alterar o valor associado a key Name, o clustering não poderá mais ser rastreado por Databricks. Como consequência, o clustering pode não ser encerrado depois de se tornar parado e continuará a incorrer em custos de uso.

O senhor pode adicionar tags personalizadas ao criar um clustering. Para configurar a tag de cluster:

  1. Na página Configuração do cluster, clique no botão Opções avançadas .

  2. Na parte inferior da página, clique em Tags tab.

    Tags tab

  3. Adicione um par key-value para cada tag personalizada. Você pode adicionar até 45 tags personalizadas.

Impor tags obrigatórias

Para garantir que determinadas tags sejam sempre preenchidas quando o cluster for criado, é possível aplicar uma IAM política específica ao accountprimário IAM role (aquele criado durante a account configuração do; entre em contato com o AWS administrador do se precisar de acesso). A IAM política deve incluir declarações explícitas de negação para a chave de tag obrigatória e valores opcionais. A criação do clustering falhará se as tags necessárias com um dos valores permitidos não forem fornecidas.

Por exemplo, se o senhor quiser impor as tags Department e Project, com apenas valores especificados permitidos para a primeira e um valor de forma livre e não vazio para a segunda, poderá aplicar uma política de IAM como esta:

JSON
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "MandateLaunchWithTag1",
"Effect": "Deny",
"Action": ["ec2:RunInstances", "ec2:CreateTags"],
"Resource": "arn:aws:ec2:region:accountId:instance/*",
"Condition": {
"StringNotEqualsIgnoreCase": {
"aws:RequestTag/Department": ["Deptt1", "Deptt2", "Deptt3"]
}
}
},
{
"Sid": "MandateLaunchWithTag2",
"Effect": "Deny",
"Action": ["ec2:RunInstances", "ec2:CreateTags"],
"Resource": "arn:aws:ec2:region:accountId:instance/*",
"Condition": {
"StringNotLike": {
"aws:RequestTag/Project": "?*"
}
}
}
]
}

Ambas as ações ec2:RunInstances e ec2:CreateTags são necessárias para cada tag para uma cobertura eficaz dos cenários em que há agrupamentos que têm apenas instâncias sob demanda, apenas instâncias pontuais ou ambas.

dica

A Databricks recomenda que o senhor adicione uma declaração de política separada para cada tag. A política geral pode se tornar longa, mas é mais fácil de depurar. Consulte a Referência de operadores de condição de política de IAM para obter uma lista de operadores que podem ser usados em uma política.

nota

Os erros de criação de clustering devido a uma política IAM mostram um encoded error message, começando com:

Console
Cloud Provider Launch Failure: A cloud provider error was encountered while setting up the cluster.

A mensagem é codificada porque os detalhes do status da autorização podem constituir informações privilegiadas que o usuário que solicitou a ação não deve ver. Consulte DecodeAuthorizationMessage API (ou CLI) para obter informações sobre como decodificar essas mensagens.

Acesso SSH ao clustering

nota

O senhor não pode usar o SSH para log em um clustering que tenha a conectividade segura de clustering ativada.

O SSH permite que o senhor entre remotamente no log Apache Spark clustering para solucionar problemas avançados e instalar o software personalizado.

Para um recurso relacionado, consulte execução shell comando em Databricks web terminal.

Esta seção descreve como configurar seu AWS account para habilitar o acesso de entrada ao seu clustering com seu key público e como abrir uma conexão SSH aos nós do clustering.

Configurar grupo de segurança

O senhor deve atualizar o grupo de segurança Databricks em seu AWS account para dar acesso de entrada ao endereço IP a partir do qual iniciará a conexão SSH. Você pode definir isso para um único endereço IP ou fornecer um intervalo que represente todo o intervalo IP do seu escritório.

  1. No console do AWS, localize o grupo de segurança do Databricks. Ele terá um rótulo semelhante a <databricks-instance>-worker-unmanaged. (Exemplo: dbc-fb3asdddd3-worker-unmanaged)

  2. Edite o grupo de segurança e adicione uma regra TCP de entrada para permitir que a porta 2200 acesse as máquinas worker. Pode ser um único endereço IP ou um intervalo.

    Grupo de segurança SSH

  3. Certifique-se de que seu computador e seu escritório permitam que o senhor envie tráfego TCP na porta 2200.

Gerar par SSH key

Crie um par SSH key executando este comando em uma sessão de terminal:

Bash
ssh-keygen -t rsa -b 4096 -C "email@example.com"

O senhor deve fornecer o caminho para o diretório em que deseja salvar os arquivos públicos e privados key. O site público key é salvo com a extensão .pub.

Configure um novo clustering com seu público key

  1. Copie todo o conteúdo do arquivo público key.

  2. Na página Configuração do cluster, clique no botão Opções avançadas .

  3. Na parte inferior da página, clique em SSH tab.

  4. Cole o endereço key que o senhor copiou no campo SSH Public key .

    Entrada SSH

Configurar um clustering existente com seu público key

Se o senhor tiver um cluster e não tiver fornecido o key público durante a criação do cluster, poderá injetar o key público executando esse código em qualquer Notebook anexado ao cluster:

Scala
val publicKey = " put your public key here "

def addAuthorizedPublicKey(key: String): Unit = {
val fw = new java.io.FileWriter("/home/ubuntu/.ssh/authorized_keys", /* append */ true)
fw.write("\n" + key)
fw.close()
}

val numExecutors = sc.getExecutorMemoryStatus.keys.size
sc.parallelize(0 until numExecutors, numExecutors).foreach { i =>
addAuthorizedPublicKey(publicKey)
}
addAuthorizedPublicKey(publicKey)

SSH no nó do driver do Spark

  1. Na página Configuração do cluster, clique no botão Opções avançadas .

  2. Clique em SSH tab. Copie o nome do host do nó do driver.

  3. execute o seguinte comando, substituindo o nome do host e o caminho do arquivo key privado.

    Bash
    ssh ubuntu@<hostname> -p 2200 -i <private-key-file-path>

SSH em Spark worker nodes

O senhor faz SSH nos nós worker da mesma forma que faz SSH no nó do driver.

  1. Na página de detalhes do clustering, clique em Spark clustering UI - Master tab.

  2. Na tabela de trabalhadores, clique no endereço worker no qual o senhor deseja fazer o SSH. Copie o campo Nome do host.

    Nome do host SSH

clustering log delivery

Ao criar um clustering, o senhor pode especificar um local para entregar o logs para o nó de driver Spark, nós worker e eventos. Os logs são entregues a cada cinco minutos no destino escolhido pelo senhor. Quando um clustering é encerrado, o Databricks garante a entrega de todos os logs gerados até o encerramento do clustering.

O destino do logs depende do ID do clustering. Se o destino especificado for dbfs:/cluster-log-delivery, o clustering logs para 0630-191345-leap375 será entregue a dbfs:/cluster-log-delivery/0630-191345-leap375.

Para configurar o local de entrega de log:

  1. Na página Configuração do cluster, clique no botão Opções avançadas .

  2. Clique na tab Logging .

    clustering log delivery

  3. Selecione um tipo de destino.

  4. Digite o caminho do log de clustering.

Destinos do bucket S3

Se o senhor escolher um destino S3, deverá configurar o clustering com um instance profile que possa acessar o bucket. Esse instance profile deve ter as permissões PutObject e PutObjectAcl. Um exemplo do site instance profile foi incluído para sua conveniência. Consulte o tutorial: Configure o acesso S3 com um instance profile para obter instruções sobre como configurar um instance profile.

JSON
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["s3:ListBucket"],
"Resource": ["arn:aws:s3:::<my-s3-bucket>"]
},
{
"Effect": "Allow",
"Action": ["s3:PutObject", "s3:PutObjectAcl", "s3:GetObject", "s3:DeleteObject"],
"Resource": ["arn:aws:s3:::<my-s3-bucket>/*"]
}
]
}
nota

Esse recurso também está disponível na API REST. Consulte a API de clusters.

script de inicialização

Uma inicialização de nó de clustering - ou script init - é um script shell que é executado durante startup para cada nó de clustering antes que o driver Spark ou worker JVM comece. O senhor pode usar o script init para instalar o pacote e a biblioteca não incluídos no tempo de execução do Databricks, modificar o classpath do sistema JVM, definir as propriedades do sistema e as variáveis de ambiente usadas pelo JVM ou modificar os parâmetros de configuração do Spark, entre outras tarefas de configuração.

É possível anexar o script de inicialização a um cluster expandindo a seção Advanced Options e clicando no script de inicialização tab.

Para obter instruções detalhadas, consulte O que são scripts de inicialização?