Referência de configuração de compute
Este artigo explica as configurações disponíveis na interface de usuário Criar Compute. A maioria dos usuários cria recursos de compute usando suas políticas atribuídas, o que limita as configurações configuráveis. Se você não vir uma configuração específica em sua interface do usuário, é porque a política que você selecionou não permite que você configure essa configuração.
As configurações e as ferramentas de gerenciamento descritas neste artigo se aplicam a todos os fins e ao Job compute. Para obter mais considerações sobre a configuração do Job compute, consulte Configurar compute para o Job.
Crie um novo recurso de compute para todos os fins
Para criar um novo recurso de compute de uso geral:
Na barra lateral do workspace, clique em Compute.
Clique no botão Criar compute.
Configure o recurso de compute.
Clique em Criar compute.
Seu novo recurso de compute iniciará automaticamente e estará pronto para uso em breve.
Políticas
Políticas são um conjunto de regras usadas para limitar as opções de configuração disponíveis para os usuários quando eles criam recursos de compute. Se um usuário não tiver a permissão de Criação de cluster irrestrita, ele só poderá criar recursos de compute usando suas políticas concedidas.
Para criar recursos de compute de acordo com uma política, selecione uma política no menu suspenso Política.
Por padrão, todos os usuários têm acesso à política Compute Pessoal, permitindo que eles criem recursos de compute de máquina única. Se você precisar de acesso ao Compute Pessoal ou a quaisquer políticas adicionais, entre em contato com o administrador do seu workspace.
Compute de nó único ou multinó
Dependendo da política, você pode selecionar entre criar um recurso de compute de Nó único ou um recurso de compute de Multinó.
O compute de nó único destina-se a jobs que usam pequenas quantidades de dados ou cargas de trabalho não distribuídas, como bibliotecas de aprendizado de máquina de nó único. O compute multinó deve ser usado para jobs maiores com cargas de trabalho distribuídas.
Propriedades do nó único
Um recurso de compute de nó único tem as seguintes propriedades:
Executa o Spark localmente.
O driver atua como mestre e worker, sem nós worker.
Gera uma thread executor por núcleo lógico no recurso de compute, menos 1 núcleo para o driver.
Salva todas as saídas de log
stderr
,stdout
elog4j
no log do driver.Não pode ser convertido em um recurso de compute multinó.
Selecionando nó único ou multinó
Considere seu caso de uso ao decidir entre compute de nó único ou multinó:
O processamento de dados em grande escala esgotará os recursos em um recurso de compute de nó único. Para essas cargas de trabalho, a Databricks recomenda o uso de compute multinó.
O compute de nó único não foi projetado para ser compartilhado. Para evitar conflitos de recursos, a Databricks recomenda o uso de um recurso de compute multinó quando o compute precisa ser compartilhado.
Um recurso de compute multinó não pode ser dimensionado para 0 workers. Use o compute de nó único em vez disso.
Compute de nó único não é compatível com isolamento de processo.
O agendamento de GPU não está habilitado no compute de nó único.
Em compute de nó único, o Spark não consegue ler arquivos Parquet com uma coluna UDT. A seguinte mensagem de erro é exibida:
The Spark driver has stopped unexpectedly and is restarting. Your notebook will be automatically reattached.
Para contornar esse problema, desative o leitor Parquet nativo:
spark.conf.set("spark.databricks.io.parquet.nativeReader.enabled", False)
Modos de acesso
O modo de acesso é um recurso de segurança que determina quem pode usar o recurso de compute e os dados que eles podem acessar usando o recurso de compute. Todo recurso de compute no Databricks tem um modo de acesso.
A Databricks recomenda que o senhor use o modo de acesso compartilhado para todas as cargas de trabalho. Use o modo de acesso de usuário único somente se a funcionalidade necessária não for suportada pelo modo de acesso compartilhado.
Modo de acesso |
Visível para o usuário |
Suporte UC |
Idiomas suportados |
Notas |
---|---|---|---|---|
Único usuário |
Sempre |
Sim |
Python, SQL, Scala, R |
Pode ser atribuído e usado por um único usuário. Chamado de modo de acesso atribuído em alguns workspaces. |
Compartilhado |
Sempre (é necessário um plano Premium ou superior) |
Sim |
Python (no Databricks Runtime 11.3 LTS e superior), SQL, Scala (no compute habilitado para Unity Catalog usando Databricks Runtime 13.3 LTS e superior) |
Pode ser usado por vários usuários com isolamento de dados entre os usuários. |
Nenhum isolamento compartilhado |
Os administradores podem ocultar este modo de acesso aplicando o isolamento do usuário na página de configurações do administrador. |
Não |
Python, SQL, Scala, R |
Há uma configuração relacionada ao nível da conta para compute compartilhado sem isolamento. |
Personalizado |
Oculto (para todo novo compute) |
Não |
Python, SQL, Scala, R |
Essa opção é exibida apenas se você tiver um recurso de compute existente sem um modo de acesso especificado. |
Você pode atualizar um recurso de compute existente para atender aos requisitos do Unity Catalog definindo seu modo de acesso como Usuário Único ou Compartilhado. Para obter informações detalhadas sobre a funcionalidade que é suportada por cada um desses modos de acesso em workspaces habilitados para o Unity Catalog, consulte Limitações do modo de acesso do Compute para o Unity Catalog.
Observação
No Databricks Runtime 13.3 LTS e superior, scripts de inicialização e bibliotecas são suportados por todos os modos de acesso. Os requisitos e os níveis de suporte variam. Consulte Onde os scripts de inicialização podem ser instalados? e Bibliotecas com escopo de cluster.
Versões do Databricks Runtime
Databricks Runtime é o conjunto de componentes principais que são executados no seu compute. Selecione o runtime usando o menu suspenso Versão do Databricks Runtime. Para obter detalhes sobre versões específicas do Databricks Runtime, consulte Notas sobre a versão e compatibilidade do Databricks Runtime. Todas as versões incluem o Apache Spark. A Databricks recomenda o seguinte:
Para compute de uso geral, utilize a versão mais recente para garantir que você tenha as otimizações mais recentes e a compatibilidade mais atualizada entre seu código e os pacotes pré-carregados.
Para compute de job executando cargas de trabalho operacionais, considere usar a versão Long Term Support (LTS) do Databricks Runtime. Usar a versão LTS garantirá que você não tenha problemas de compatibilidade e possa testar sua carga de trabalho completamente antes de atualizar.
Para casos de uso de ciência de dados e machine learning, considere a versão Databricks Runtime ML.
Usar a aceleração Photon
O Photon está habilitado por padrão no compute executando o Databricks Runtime 9.1 LTS e superior.
Para habilitar ou desabilitar a aceleração Photon, marque a caixa de seleção Usar Aceleração Photon. Para saber mais sobre o Photon, consulte O que é Photon?
Tipos de nó de worker e driver
Um recurso de compute consiste em um nó driver e zero ou mais nós 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.
O senhor também pode selecionar um pool para usar como worker ou nó de driver. Use apenas o site pool com instâncias pontuais como seu tipo worker. Selecione um tipo de motorista sob demanda separado para evitar que seu motorista seja recuperado. Consulte Conectar-se a pools.
Tipo worker
No compute multinó, os nós worker executam os executores do Spark e outros serviços necessários para um recurso de compute funcionando corretamente. Quando você distribui sua carga de trabalho com o Spark, todo o processamento distribuído acontece nos nós worker. O Databricks executa um executor por nó worker. Portanto, os termos executor e worker são usados alternadamente no contexto da arquitetura do Databricks.
Dica
Para executar um trabalho do Spark, você precisa de pelo menos um nó de worker. Se o recurso de compute tiver zero workers, você poderá executar comandos não Spark no nó do driver, mas os comandos Spark falharão.
Endereços IP do nó do worker
O Databricks inicia nós worker com dois endereços IP privados cada. O endereço IP privado primário do nó hospeda o tráfego interno do Databricks. O endereço IP privado secundário é usado pelo contêiner Spark para comunicação dentro do cluster. Esse modelo permite que o Databricks forneça isolamento entre vários recursos de compute no mesmo workspace.
Tipo de driver
O nó do driver mantém as informações de estado de todos os notebooks conectados ao recurso de compute. O nó do driver também mantém o SparkContext, interpreta todos os comandos executados de um notebook ou uma biblioteca no recurso de compute e executa o mestre Apache Spark que se coordena com os executores do 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.
Tipos de instância de GPU
Para tarefas computacionalmente desafiadoras que exigem alto desempenho, como aquelas associadas à aprendizagem profunda, o Databricks oferece recursos de compute acelerados com unidades de processamento gráfico (GPUs). Para obter mais informações, consulte compute habilitada para GPU.
A Databricks não oferece mais suporte à inicialização de compute usando instâncias Amazon EC2 P2.
Tipos de instância do AWS Graviton
O Databricks oferece suporte a instâncias do AWS Graviton. Essas instâncias usam processadores Graviton projetados pela AWS com base na arquitetura de conjunto de instruções Arm64. A AWS afirma que os tipos de instância com esses processadores têm a melhor relação preço/desempenho de todos os tipos de instância no Amazon EC2. Para usar os tipos de instância do Graviton, selecione um dos tipos de instância do AWS Graviton disponíveis para o tipo de worker, tipo de driver ou ambos.
A Databricks oferece suporte a compute habilitado para AWS Graviton:
No Databricks Runtime 9.1 LTS e superior para nãoPhoton e no Databricks Runtime 10.2 (EoS) e superior para Photon.
No Databricks Runtime 15.4 LTS para aprendizado de máquina para o Databricks Runtime para aprendizado de máquina.
Em todas as regiões da AWS. Observe, no entanto, que nem todos os tipos de instância estão disponíveis em todas as regiões. Se você selecionar um tipo de instância que não está disponível na região de um workspace, a criação do compute falhará.
Para processadores AWS Graviton2 e Graviton3.
Observação
Delta Live Tables não é suportado em compute habilitado para Graviton.
Limitações do ARM64 ISA
Alterações de precisão de ponto flutuante: operações típicas como adicionar, subtrair, multiplicar e dividir não têm alteração na precisão. Para funções de triângulo único, como
sin
ecos
, o limite superior da diferença de precisão para instâncias da Intel é1.11e-16
.Compatibilidade com terceiros: a alteração no ISA pode ter algum impacto na compatibilidade com ferramentas e bibliotecas de terceiros.
Compute de instâncias mistas: a Databricks não suporta a mistura de tipos de instância AWS Graviton e não AWS Graviton, pois cada tipo requer um Databricks Runtime diferente.
Limitações do Graviton
Os seguintes recursos não são compatíveis com os tipos de instância AWS Graviton:
UDFs em Python (UDFs em Python estão disponíveis no Databricks Runtime 15.2 e versões superiores)
Databricks Container Services
Delta Live Tables
Databricks SQL
Databricks on AWS GovCloud
Acesso a arquivos do workspace, incluindo aqueles em pastas Git, a partir de terminais web.
Tipos de instância do AWS Fleet
Observação
Se seu workspace foi criado antes de maio de 2023, as permissões do seu IAM role podem precisar ser atualizadas para permitir acesso aos tipos de instâncias de frota. Para mais informações, consulte Habilitar tipos de instâncias de frota.
Um tipo de instância de frota é um tipo de instância variável que é resolvido automaticamente para o melhor tipo de instância disponível do mesmo tamanho.
Por exemplo, se você selecionar o tipo de instância de frota m-fleet.xlarge
, seu nó será resolvido para qualquer tipo de instância de propósito geral .xlarge
que tiver a melhor capacidade de spot e preço naquele momento. O tipo de instância para o qual seu recurso de compute é resolvido sempre terá a mesma memória e número de núcleos que o tipo de instância de frota que você escolheu.
Os tipos de instância de frota usam a API Spot Placement Score da AWS para escolher a zona de disponibilidade melhor e com maior probabilidade de sucesso para seu recurso de compute no momento da inicialização.
Limitações da frota
A configuração Preço spot máximo em Opções avançadas não tem efeito quando o tipo de nó do worker é definido como um tipo de instância de frota. Isso ocorre porque não há uma única instância sob demanda para usar como ponto de referência para o preço spot.
Instâncias de frota não suportam instâncias de GPU.
Uma pequena porcentagem de workspaces mais antigos ainda não suporta tipos de instância de frota. Se este for o caso do seu workspace, você verá um erro indicando isso ao tentar criar um compute ou um pool de instâncias usando um tipo de instância de frota. Estamos trabalhando para trazer suporte a esses workspaces restantes.
Ativar autoscale
Quando a opção Ativar autoscale está marcada, você pode fornecer um número mínimo e máximo de workers para o recurso de compute. O Databricks então escolhe o número apropriado de workers necessários para executar seu job.
Para definir o número mínimo e máximo de workers entre os quais seu recurso de compute fará o autoscale, use os campos Mín workers e Máx workers ao lado do menu suspenso Tipo de worker.
Se você não habilitar o autoscale, deverá inserir um número fixo de workers no campo Workers ao lado da lista suspensa Tipo de worker.
Observação
Quando o recurso de compute está em execução, a página de detalhes de compute 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.
Benefícios do dimensionamento 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 autoscale facilita a obtenção de alta utilização porque você não precisa provisionar o compute 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 recurso de compute subprovisionado de tamanho constante.
O autoscale pode reduzir os custos gerais em comparação com um recurso de compute de tamanho estático.
Dependendo do tamanho constante do recurso de compute e da carga de trabalho, o autoscale oferece um ou ambos os benefícios ao mesmo tempo. O tamanho do compute 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.
Observação
O autoscale não está disponível para jobs spark-submit
.
Observação
O dimensionamento automático de computação tem limitações ao reduzir o tamanho do cluster para cargas de trabalho de streaming estruturado. A Databricks recomenda usar Delta Live Tables com Autoscale aprimorado para cargas de trabalho de streaming. Consulte Otimize a utilização do cluster dos pipelines do Delta Live Tables com escalonamento automático aprimorado.
Como o Autoscale se comporta
Workspace no plano Premium ou superior usam autoscale otimizado. Workspaces no plano de preços padrão usam autoscale padrão.
O autoscale otimizado tem as seguintes características:
Aumenta de mínimo a máximo em 2 passos.
Pode reduzir a escala, mesmo se o recurso de compute não estiver ocioso, observando o estado do arquivo shuffle.
Reduz com base em uma porcentagem dos nós atuais.
No compute de job, reduz a escala se o recurso de compute estiver subutilizado nos últimos 40 segundos.
No compute de uso geral, reduz a escala se o recurso de compute estiver subutilizado nos últimos 150 segundos
A propriedade de configuração
spark.databricks.aggressiveWindowDownS
do Spark especifica em segundos com que frequência o cálculo toma decisões de redução de escala. Aumentar o valor faz com que o compute diminua mais lentamente. O valor máximo é 600.
O autoscale padrão é usado em workspaces de plano padrão. O autoscale padrão tem as seguintes características:
Começa adicionando 8 nós. Então escala exponencialmente, realizando tantos passos quantos forem necessários para atingir o máximo.
Reduz quando 90% dos nós não estão ocupados por 10 minutos e o compute está ocioso há pelo menos 30 segundos.
Reduz exponencialmente, começando com 1 nó.
autoscale com pools
Se estiver anexando seu recurso de compute a um pool, considere o seguinte:
Certifique-se de que o tamanho do compute solicitado seja menor ou igual ao número mínimo de instâncias ociosas no pool. Se for maior, o tempo de inicialização do compute será equivalente ao compute que não usa um pool.
Certifique-se de que o tamanho máximo do compute seja menor ou igual à capacidade máxima do pool. Se for maior, a criação do compute falhará.
Exemplo de Autoscale automático
Se você reconfigurar um recurso de compute estático para autoscale, o Databricks redimensiona imediatamente o recurso de compute 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 um recurso de compute com um determinado tamanho inicial se você reconfigurar o recurso de compute para autoscale entre 5 e 10 nós.
Tamanho inicial |
Tamanho após a reconfiguração |
---|---|
6 |
6 |
12 |
10 |
3 |
5 |
Ativar o autoscale do armazenamento local
Se você não quiser alocar um número fixo de volumes EBS no momento da criação do compute, use o armazenamento local com autoscale. Com o armazenamento local com autoscaling, o Databricks monitora a quantidade de espaço em disco livre disponível nos workers do Spark do seu compute. 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 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 autoscale, selecione Ativar armazenamento local de autoscale.
Os volumes EBS anexados a uma instância são desanexados somente quando a instância é retornada à AWS. Ou seja, os volumes EBS nunca são desanexados de uma instância enquanto ela faz parte de um compute em execução. Para reduzir o uso de EBS, a Databricks recomenda usar esse recurso em compute configurado com autoscale de compute ou término automático.
Observação
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.
Criptografia de disco local
Prévia
Esse recurso está em Prévia Pública.
Alguns tipos de instância que você usa para executar um compute podem ter discos conectados localmente. O Databricks pode armazenar dados de shuffle ou dados efêmeros nesses discos conectados localmente. Para garantir que todos os dados em repouso sejam criptografados para todos os tipos de armazenamento, incluindo dados de shuffle que são armazenados temporariamente nos discos locais do seu compute, você pode habilitar a criptografia de disco local.
Importante
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á habilitada, o Databricks gera uma chave de criptografia localmente, que é única para cada nó de compute e é usada para criptografar todos os dados armazenados em discos locais. O escopo da chave é local para cada nó de compute e é destruído junto com o próprio nó de compute. Durante sua vida útil, a chave reside na memória para criptografia e descriptografia e é armazenada criptografada no disco.
Para habilitar a criptografia de disco local, você deve usar a API de Clusters. Durante a criação ou edição do cálculo, defina enable_local_disk_encryption
como true
.
Encerramento automático
Você pode definir o encerramento automático para compute. Durante a criação do compute, especifique um período de inatividade em minutos após o qual deseja que o recurso de compute seja encerrado.
Se a diferença entre a hora atual e o último comando executado no recurso de compute for maior que o período de inatividade especificado, o Databricks encerrará automaticamente esse compute. recurso Para obter mais informações sobre o encerramento de compute, consulte Encerrar um compute.
Perfis de instância
Observação
Databricks recomenda usar os locais externos de Unity Catalog para se conectar a S3 em vez do perfil da instância. Unity Catalog simplifica a segurança e a governança de seus dados, fornecendo um local central para administrar e auditar o acesso aos dados em vários espaços de trabalho em seu site account. Consulte Conectar-se ao serviço e armazenamento de objetos cloud usando Unity Catalog.
Para acessar recursos da AWS com segurança sem usar chaves da AWS, você pode iniciar o compute do Databricks com perfis de instância. Consulte o Tutorial: Configurar acesso ao S3 com um perfil de instância para obter informações sobre como criar e configurar perfis de instância. Depois de criar um perfil de instância, selecione-o na lista suspensa Perfil de Instância.
Após iniciar seu recurso de compute, verifique se você pode acessar o bucket S3 usando o seguinte comando. Se o comando for bem-sucedido, esse recurso de compute poderá acessar o bucket S3.
dbutils.fs.ls("s3a://<s3-bucket-name>/")
Aviso
Assim que um recurso de compute é iniciado com um instance profile, qualquer pessoa que tenha permissões de anexação a esse recurso de compute pode acessar os recursos subjacentes controlados por essa função. Para se proteger contra acesso indesejado, use as permissões de Compute para restringir as permissões ao recurso de compute.
Tags
As tags permitem que você monitore facilmente o custo dos recursos da nuvem utilizados por vários grupos em sua organização. Especifique tags como pares key-value ao criar recursos de compute, e o Databricks aplicará essas tags a recursos da nuvem como VMs e volumes de disco, bem como a relatórios de uso de DBU.
Para compute iniciado a partir de pools, as tags personalizadas são aplicadas apenas aos relatórios de uso de DBU e não se propagam para os recursos da nuvem.
Para obter informações detalhadas sobre como os tipos de tag de pool e compute funcionam juntos, consulte Monitorar o uso com tags.
Para adicionar tags ao seu recurso de compute:
Na seção Tags, adicione um par key-value para cada tag personalizada.
Clique em Adicionar.
Configurações da AWS
Ao criar um compute, você pode escolher a zona de disponibilidade, o preço máximo spot e o tipo de volume EBS. Essas configurações estão na alternância Opções Avançadas na tab Instâncias.
Zonas de disponibilidade
Essa configuração permite especificar qual zona de disponibilidade (AZ) você deseja que o recurso de compute utilize. Por padrão, essa configuração está definida como auto, onde a AZ é selecionada automaticamente com base nos IPs disponíveis nas sub-redes do workspace. A opção "auto" para AZ tenta outras zonas de disponibilidade se a AWS retornar erros de capacidade insuficiente.
Observação
A opção "auto" para AZ funciona apenas na inicialização do compute. Após o recurso de compute ser iniciado, todos os nós permanecem na zona de disponibilidade original até que o recurso de compute seja encerrado ou reiniciado.
Escolher uma AZ específica para o recurso de compute é útil principalmente se sua organização tiver adquirido instâncias reservadas em zonas de disponibilidade específicas. Leia mais sobre as zonas de disponibilidade da AWS.
Instâncias Spot
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 EBS
Esta seção descreve as configurações padrão de volume EBS para nós worker, como adicionar volumes de shuffle e como configurar o compute para que o Databricks aloque automaticamente volumes EBS.
Para configurar volumes EBS, seu compute não deve estar habilitado para armazenamento local com autoscaling. Clique na guia Instâncias na configuração do compute e selecione uma opção na lista suspensa Tipo de Volume EBS.
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 pelo sistema operacional do host e pelos serviços internos do 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 de uso geral na lista suspensa Tipo de volume do EBS.
Por padrão, as saídas de shuffle do Spark vão para o disco local da instância. Para tipos de instância que não possuem um disco local, ou se você deseja aumentar seu espaço de armazenamento de shuffle do Spark, você pode especificar volumes EBS adicionais. Isso é particularmente útil para evitar erros de falta de espaço em disco quando você executa jobs do Spark que produzem grandes saídas de shuffle.
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 EBS do Databricks com uma chave gerenciada pelo cliente
Opcionalmente, você pode criptografar os volumes EBS do compute com uma chave gerenciada pelo cliente.
Limites EBS da AWS
Certifique-se de que seus limites de AWS EBS sejam altos o suficiente para satisfazer os requisitos de tempo de execução para todos os workers em todos os seus computes implantados. Para obter informações sobre os limites padrão de EBS e como alterá-los, consulte Limites do Amazon Elastic Block Store (EBS).
Tipo de volume EBS SSD da AWS
Selecione gp2 ou gp3 para o tipo de volume do AWS EBS SSD. Para fazer isso, consulte Gerenciar armazenamento SSD. O Databricks recomenda que você mude para o gp3 devido à sua economia de custos em comparação com o gp2.
Observação
Por padrão, a configuração do Databricks define as IOPS e as IOPS de taxa de transferência do volume gp3 para corresponder ao desempenho máximo de um volume gp2 com o mesmo tamanho de volume.
Para obter informações técnicas sobre gp2 e gp3, consulte Tipos de volume do Amazon EBS.
Configuração do Spark
Para ajustar os jobs do Spark, você pode fornecer propriedades de configuração personalizadas do Spark.
Na página de configuração do compute, clique na alternância Opções Avançadas.
Clique na tab Spark.
Na configuração do Spark, insira as propriedades de configuração como um par key-value por linha.
Quando você configura o compute usando a API de Clusters, defina as propriedades do Spark no campo spark_conf
na API de criação de cluster ou na API de atualização de cluster.
Recuperar uma propriedade de configuração do Spark de um segredo
Databricks recomenda armazenar informações confidenciais, como senhas, em segredo, em vez de texto simples. Para fazer referência a um segredo na configuração do Spark, use a seguinte sintaxe:
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
:
spark.password {{secrets/acme-app/password}}
Para obter mais informações, consulte gerenciar segredos.
Variáveis de ambiente
Configure variáveis de ambiente personalizadas que você pode acessar de init script em execução no recurso de compute. O Databricks também fornece variáveis de ambiente predefinidas que você pode usar em init script. Você não pode substituir essas variáveis de ambiente predefinidas.
Na página de configuração do compute, clique na alternância Opções Avançadas.
Clique na tab Spark.
Defina as variáveis de ambiente no campo Variáveis de ambiente.
Você também pode definir variáveis de ambiente usando o campo spark_env_vars
na API de Criação de cluster ou na API de Atualização de cluster.
Entrega de logs do compute
Ao criar um compute, você pode especificar um local para entregar os logs do nó driver do Spark, dos nós worker e dos eventos. Os logs são entregues a cada cinco minutos e arquivados de hora em hora no destino escolhido. Quando um recurso de compute é encerrado, o Databricks garante a entrega de todos os logs gerados até o momento em que o recurso foi encerrado.
O destino dos registros depende do cluster_id
do recurso de compute. Se o destino especificado for dbfs:/cluster-log-delivery
, os logs de compute para 0630-191345-leap375
são entregues para dbfs:/cluster-log-delivery/0630-191345-leap375
.
Para configurar o local de entrega de log:
Na página do compute, clique na alternância Opções Avançadas.
Clique na tab Logging.
Selecione um tipo de destino.
Insira o caminho do log do compute.
Destinos do bucket S3
Se você escolher um destino S3, deverá configurar o recurso de compute com um instance profile que possa acessar o bucket. Este instance profile deve ter as permissões PutObject
e PutObjectAcl
. Um exemplo de instance profile foi incluído para sua conveniência. Consulte o Tutorial: Configurar o acesso ao S3 com um instance profile para obter instruções sobre como configurar um instance profile.
{
"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>/*"
]
}
]
}
Observação
Esse recurso também está disponível na API REST. Consulte a API de clusters.