Tarefas

Um trabalho é uma forma de executar código não interativo num cluster Azure Databricks. Por exemplo, pode executar uma carga de trabalho de extração, transformação e carga (ETL) interativamente ou em horário. Também pode executar empregos interativamente na UI do caderno.

Você pode criar e executar um trabalho usando a UI, o CLI, e invocando a API jobs. Pode monitorizar os resultados da execução de emprego usando os alertas de UI, CLI, API e e-mail. Este artigo centra-se na realização de tarefas de trabalho utilizando a UI. Para os outros métodos, consulte Jobs CLI e Jobs API 2.1.

Pode ativar a orquestração de tarefas de mulitple no seu espaço de trabalho Azure Databricks. Quando a orquestração de tarefas está ativada, um trabalho pode consistir em uma ou mais tarefas, e a Azure Databricks gere a orquestração de tarefas, gestão de clusters, monitorização e relatório de erros para o trabalho. Num espaço de trabalho sem orquestração de tarefas habilitada, um trabalho consiste numa única tarefa. A Databricks recomenda permitir a orquestração de tarefas para simplificar a criação, gestão e monitorização de fluxos de trabalho de aprendizagem automática e dados. Consulte requisitos para obter informações sobre a habilitação da orquestração de tarefas.

Você pode implementar uma tarefa em um caderno Azure Databricks, um oleoduto Delta Live Tables, ou uma aplicação escrita em Scala, Java ou Python. As candidaturas de Legacy Spark Submit também são suportadas.

Quando a orquestração de múltiplas tarefas é ativada, você controla a ordem de execução das tarefas especificando dependências entre as tarefas. Pode configurar tarefas para executar em sequência ou paralelo. O diagrama a seguir ilustra um fluxo de trabalho que:

  1. Ingere dados de clickstream crus e executa o processamento para sessãor os registos.

  2. Ingere dados de encomenda e junta-se aos dados do clickstream sessão para criar um conjunto de dados preparado para análise.

  3. Extratos de características dos dados preparados.

  4. Executa tarefas paralelamente para persistir as funcionalidades e formar um modelo de aprendizagem automática.

    Fluxo de trabalho multitask exemplo

Para criar o seu primeiro trabalho orquestrando várias tarefas, consulte Jobs quickstart.

Importante

  • Você pode criar empregos apenas em um espaço de trabalho de Engenharia de Data & Science ou um espaço de trabalho Machine Learning.
  • Um espaço de trabalho está limitado a 1000 trabalhos simultâneos. Uma 429 Too Many Requests resposta é devolvida quando se pede uma execução que não pode começar imediatamente.
  • O número de postos de trabalho que um espaço de trabalho pode criar numa hora é limitado a 5000 (inclui "run now" e "runs submit"). Este limite também afeta as tarefas criadas pela API REST e os fluxos de trabalho do bloco de notas.

Requisitos

Para criar trabalhos que orquestam várias tarefas, um administrador deve permitir o suporte na consola de administração Databricks.

Criar um emprego

  1. Faça um dos seguintes:

    • Clique em Jobs IconJobs na barra lateral e clique em Criar Botão de Trabalho.
    • Na barra lateral, clique em Criar ÍconeCriar e selecione Job no menu.

    O separador Tarefas aparece com o diálogo de tarefas de criar se a orquestração de várias tarefas estiver ativada. O separador Tarefa aparece com o diálogo de tarefas criar se a orquestração de tarefas não estiver ativada.

    Criar ecrã de tarefas

  2. Substitua Adicione um nome para o seu trabalho... com o seu nome de trabalho.

  3. Se a orquestração de múltiplas tarefas estiver ativada, insira um nome para a tarefa no campo nome de Tarefa.

  4. Especificar o tipo de tarefa a executar. No tipo de entrega, selecione Notebook, JAR,Spark Submit,Python,ou Pipeline.

    • Para ester o blocode notas : Utilize o navegador de ficheiros para encontrar o portátil, clique no nome do portátil e clique em Confirmar.

    • JAR: Especifique a classe principal. Utilize o nome totalmente qualificado da classe que contém o método principal, por exemplo, org.apache.spark.examples.SparkPi . Em seguida, clique em Adicionar em Bibliotecas Dependentes para adicionar bibliotecas necessárias para executar a tarefa. Uma destas bibliotecas deve conter a classe principal.

      Para saber mais sobre as tarefas jar, consulte os trabalhos do JAR.

    • Apresentação de faíscas: Na caixa de texto dos parâmetros, especifique a classe principal, o caminho para a biblioteca JAR, e todos os argumentos, formatados como uma matriz de cordas JSON. O exemplo a seguir configura uma tarefa de apresentação de faíscas para executar os DFSReadWriteTest exemplos apache spark:

      ["--class","org.apache.spark.examples.DFSReadWriteTest","dbfs:/FileStore/libraries/spark_examples_2_12_3_1_1.jar","/dbfs/databricks-datasets/README.md","/FileStore/examples/output/"]
      

      Importante

      Existem várias limitações para tarefas de apresentação de faíscas:

      • Só pode executar tarefas de apresentação de faíscas em novos clusters.
      • A submissão de faíscas não suporta a autoscalagem do cluster. Para saber mais sobre autoscaling, consulte a autoscalagem do Cluster.
      • A submissão de faíscas não suporta os Utilitários Databricks. Para utilizar os utilitários Databricks, utilize tarefas JAR.
    • Python: Na caixa de texto Path, introduza o URI de uma escrita Python em DBFS ou armazenamento em nuvem; por exemplo, . .

    • Pipeline: No gasoduto drop-down, selecione um gasoduto Delta Live Tables existente.

    • Roda python: Na caixa de texto do nome do pacote, introduza a embalagem para importar, por exemplo, . Na caixa de texto 'Ponto de entrada', insira a função a ligar quando ligar a roda. Clique em Adicionar em Bibliotecas Dependentes para adicionar bibliotecas necessárias para executar a tarefa.

  5. Configure o cluster onde a tarefa é executada. No cluster drop-down, selecione Novo Cluster ou Clusters de All-Purpose Existentes.

    • Novo Conjunto de Trabalhos: Clique em Editar no Cluster drop-down e complete a configuraçãodo cluster .
    • Cluster All-Purpose existente: Selecione um cluster existente no cluster drop-down. Para abrir o cluster numa nova página, clique no ícone Link Externo à direita do nome e descrição do cluster.

    Para saber mais sobre a seleção e configuração de clusters para executar tarefas, consulte as dicas de configuração do Cluster.

  6. Pode passar parâmetros para a sua tarefa. Cada tipo de tarefa tem diferentes requisitos para formatar e passar os parâmetros.

    • Caderno: Clique em Adicionar e especificar a chave e o valor de cada parâmetro para passar para a tarefa. Pode sobrepor-se ou adicionar parâmetros adicionais quando executar manualmente uma tarefa utilizando a tarefa Executar uma tarefa com diferentes parâmetros. Os parâmetros definem o valor do widget de portátil especificado na chave do parâmetro. Utilize variáveis de parâmetros de tarefa para passar um conjunto limitado de valores dinâmicos como parte de um valor de parâmetro.
    • JAR: Utilize uma matriz de cordas formatada por JSON para especificar parâmetros. Estas cordas são passadas como argumentos para o método principal da classe principal. Consulte os parâmetros de trabalho do JAR configurar.
    • Tarefa de submissão de faíscas: Os parâmetros são especificados como uma matriz de cordas formatada por JSON. Em conformidade com a convenção de apresentação de faíscas Apache Spark, os parâmetros após o caminho do JAR são passados para o método principal da classe principal.
    • Python: Utilize uma matriz de cordas formatada por JSON para especificar parâmetros. Estas cordas são passadas como argumentos que podem ser analisados usando o módulo argparse em Python.
    • Roda python: Nos parâmetros drop-down, selecione *args (matriz de cordas) para introduzir parâmetros como uma matriz de cordas formatada por JSON ou selecione **kwargs (pares de valor-chave) para introduzir a chave e o valor de cada parâmetro.
  7. Para aceder a opções adicionais, incluindo Bibliotecas Dependentes, Política de Retígio e Timeouts,clique em Opções Avançadas. Ver Editar uma tarefa.

  8. Clique em Criar.

  9. Para definir opcionalmente o horário do trabalho, clique em Editar o horário no painel de detalhes do Trabalho. Ver Agendar um trabalho.

  10. Para permitir opcionalmente várias execuções simultâneas da mesma função, clique em Editar execuções simultâneas no painel de detalhes de Trabalho. Ver as execuções simultâneas máximas.

  11. Para especificar opcionalmente endereços de e-mail para receber alertas sobre eventos de trabalho, clique em Editar alertas no painel de detalhes do Trabalho. Ver Alertas.

  12. Para controlar opcionalmente os níveis de permissão no trabalho, clique em Editar permissões no painel de detalhes do Trabalho. Ver Controlo de acesso a empregos.

Para adicionar outra tarefa quando a orquestração de tarefas estiver ativada, clique em Adicionar Botão de Tarefa abaixo da tarefa que acaba de criar.

Executar uma tarefa

  1. Clique em Jobs IconJobs na barra lateral.
  2. Selecione um trabalho e clique no separador 'Runs'. Pode executar um trabalho imediatamente ou agendar o trabalho para concorrer mais tarde.

Executar um trabalho imediatamente

Para executar o trabalho imediatamente, clique em Executar Agora Botão.

Dica

Pode realizar um teste de um trabalho com uma tarefa de caderno clicando em Run Now. Se precisar de fazer alterações no bloco de notas, clicar em Run Now novamente após a edição do portátil irá executar automaticamente a nova versão do caderno.

Executar um trabalho com diferentes parâmetros

Pode utilizar Run Now com diferentes parâmetros para re-executar um trabalho com diferentes parâmetros ou valores diferentes para os parâmetros existentes.

  1. Clique em Blue Down Caret ao lado de Run Now e selecione Run Now com diferentes parâmetros ou, na tabela Ative Runs, clique em Executar Agora com diferentes parâmetros. Introduza os novos parâmetros dependendo do tipo de tarefa.
    • Notebook: Pode introduzir parâmetros como pares de valores-chave ou um objeto JSON. Pode utilizar este diálogo para definir os valores dos widgets.
    • JAR e spark-submit: Pode introduzir uma lista de parâmetros ou um documento JSON. Os parâmetros fornecidos são fundidos com os parâmetros padrão para a execução desencadeada. Se eliminar as teclas, os parâmetros predefinidos são utilizados. Também pode adicionar variáveis de parâmetro de tarefa para a execução.
  2. Clique em Run (Executar).

Agende um emprego

Para definir um horário para o trabalho:

  1. Clique na programação de Edição no painel de detalhes do Trabalho e desa estale o Tipo de Agenda para Programado.

  2. Especifique o período, a hora de início e o fuso horário. Selecione opcionalmente a caixa de verificação De Sintaxe De Cron para exibir e editar a programação em Sintoxe Cron Quartz.

    Nota

    • A Azure Databricks impõe um intervalo mínimo de 10 segundos entre as execuções subsequentes desencadeadas pelo horário de um trabalho, independentemente da configuração dos segundos na expressão do cron.
    • Você pode escolher um fuso horário que observe o horário de verão ou UTC. Se selecionar uma zona que observe o horário de verão, um trabalho de hora a hora será ignorado ou poderá parecer não disparar durante uma ou duashoras quando o horário de verão começar ou terminar . Para correr a cada hora (tempo absoluto), escolha UTC.
    • O programador de emprego não se destina a trabalhos de baixa latência. Devido a problemas de rede ou de nuvem, as tarefas podem ocasionalmente ser adiadas até vários minutos. Nestas situações, os postos de trabalho programados serão executados imediatamente após a disponibilidade do serviço.
  3. Clique em Guardar.

Pausa e retomar um horário de trabalho

Para fazer uma pausa num trabalho, pode:

  • Clique em Pausa no painel de detalhes do Trabalho.
  • Clique na programação de Edição no painel de detalhes do Trabalho e desa estale o Tipo de Agenda para Manual (Pausa)

Para retomar um horário de trabalho pausado, desa fixa o Tipo de Horário para Programado.

Ver empregos

Clique em Jobs IconJobs na barra lateral. A lista de empregos aparece. A página Jobs lista todos os trabalhos definidos, a definição de cluster, o calendário, se houver, e o resultado da última execução.

Pode filtrar empregos na lista de empregos:

  • Usando palavras-chave.
  • Selecionando apenas os empregos que tem.
  • Selecionando todos os trabalhos que tem permissões de acesso. O acesso a este filtro requer que o controlo de acesso do Jobs esteja ativado.

Também pode clicar em qualquer cabeçalho de coluna para classificar a lista de trabalhos (descendentes ou ascendentes) por essa coluna. A classificação padrão é pelo nome do trabalho por ordem crescente.

Ver corridas de emprego

  1. Clique em Jobs IconJobs na barra lateral.
  2. Na coluna Nome, clique num nome de trabalho. O separador Runs mostra execuções ativas e execuções completas.

Detalhes do trabalho

A Azure Databricks mantém um histórico do seu trabalho até 60 dias. Se precisar de preservar as tarefas, a Databricks recomenda que exporte os resultados antes de expirarem. Para obter mais informações, consulte os resultados do trabalho de exportação.

Ver detalhes da execução de emprego

A página de detalhes da execução de trabalho contém saída de trabalho e links para registos. Quando a orquestração de múltiplas tarefas é ativada, a página de detalhes da execução de trabalho contém informações sobre o sucesso ou insucesso de cada tarefa na execução de trabalho. Pode aceder a detalhes de execução de emprego a partir do separador Runs para o trabalho. Para ver os detalhes da execução de trabalho a partir do separador Runs, clique no link para a execução na coluna Executar da tabela Execução (últimos 60 dias). Para voltar ao separador Runs para o trabalho, clique no valor de ID de trabalho.

Para um trabalho que orquestrou várias tarefas, clique numa tarefa para visualizar detalhes da execução de tarefas, incluindo:

  • o cluster que correu a tarefa
    • a IU faísca para a tarefa
    • troncos para a tarefa
    • métricas para a tarefa

Clique no valor de ID de trabalho para voltar ao separador Runs para o trabalho. Clique no valor de ID de execução de trabalho para voltar aos detalhes da execução do trabalho.

Resultados da execução do emprego de exportação

Pode exportar resultados de execução de cadernos e registos de trabalho para todos os tipos de emprego.

Resultados do caderno de exportação

Pode persistir no trabalho exportando os seus resultados. Para o trabalho de portátil, você pode exportar um caderno renderizado que pode ser importado mais tarde para o seu espaço de trabalho Azure Databricks.

Para exportar cadernos executam resultados para um trabalho com uma única tarefa:

  1. Na página de detalhes do trabalho, clique no link Ver Detalhes para a execução na coluna Executar da tabela Execução de Execuções Concluídas (últimos 60 dias).
  2. Clique em Exportação para HTML.

Para exportar cadernos executam resultados para um trabalho com múltiplas tarefas:

  1. Na página de detalhes do trabalho, clique no link Ver Detalhes para a execução na coluna Executar da tabela Execução de Execuções Concluídas (últimos 60 dias).
  2. Clique na tarefa do caderno para exportar.
  3. Clique em Exportação para HTML.

Registos de trabalho de exportação

Também pode exportar os registos para a sua tarefa. Pode configurar o seu trabalho para entregar automaticamente registos à DBFS através da API job. Consulte o new_cluster.cluster_log_conf objeto no órgão de pedido passado para a new_cluster.cluster_log_conf operação de trabalho ( ) na POST /jobs/create API jobs.

Editar um trabalho

Algumas opções de configuração estão disponíveis no trabalho, e outras opções estão disponíveis em tarefasindividuais. Por exemplo, os percursos simultâneos máximos só podem ser definidos no trabalho, enquanto os parâmetros devem ser definidos para cada tarefa.

Para alterar a configuração para um trabalho:

  1. Clique em Jobs IconJobs na barra lateral.
  2. Na coluna Nome, clique no nome do trabalho.

O painel lateral apresenta os detalhes do Trabalho. Pode alterar o horário,configuração do cluster, alertas e o número máximo de execuções simultâneas. Também pode editar permissões de emprego se o controlo de acesso ao trabalho estiver ativado.

Corridas simultâneas máximas

O número máximo de paralelas corre para este trabalho. A Azure Databricks salta a corrida se o trabalho já tiver atingido o seu número máximo de execuções ativas quando tenta iniciar uma nova corrida. Desafie este valor superior ao padrão de 1 para executar várias execuções do mesmo trabalho simultaneamente. Isto é útil, por exemplo, se ativar o seu trabalho num horário frequente e quiser permitir que as corridas consecutivas se sobreponham umas às outras, ou se pretender desencadear várias corridas que diferem pelos seus parâmetros de entrada.

Alertas

Pode adicionar um ou mais endereços de e-mail para notificar quando as execuções deste trabalho começarem, completar ou falhar:

  1. Clique em editar alertas.
  2. Clique em Adicionar.
  3. Insira o endereço de e-mail para notificar e clique na caixa de verificação para cada tipo de alerta enviar para esse endereço.
  4. Para introduzir outro endereço de e-mail para notificação, clique em Adicionar.
  5. Se não quiser receber alertas para execuções de trabalho ignoradas, clique na caixa de verificação.
  6. Clique em Confirmar.

Configure alertas de e-mail

Integre estes alertas de e-mail com as suas ferramentas de notificação favoritas, incluindo:

Controlar o acesso a empregos

O controlo do acesso ao emprego permite que proprietários e administradores de emprego concedam permissões finas nos seus postos de trabalho. Os proprietários de emprego podem escolher quais outros utilizadores ou grupos podem ver os resultados do trabalho. Os proprietários também podem escolher quem pode gerir as suas tarefas (executar agora e cancelar permissões de execução).

Consulte o controlo de acesso a Jobs para obter mais detalhes.

Editar uma tarefa

Para definir opções de configuração de tarefas:

  1. Clique em Jobs IconJobs na barra lateral.
  2. Na coluna Nome, clique no nome do trabalho.
  3. Quando a orquestração de várias tarefas estiver ativada, clique no separador Tarefas. Se a orquestração de tarefas não estiver ativada, clique no separador Tarefa.

Dependências de tarefas

Quando a orquestração de múltiplas tarefas estiver ativada, pode definir a ordem de execução de tarefas num trabalho utilizando o Depends on drop-down. Pode definir este campo para uma ou mais tarefas no trabalho.

Editar dependências de tarefas

Nota

Depende de não ser visível se o trabalho consistir apenas numa única tarefa.

Configurar as dependências de tarefas cria uma Graph Acilcíclica Dirigida (DAG) de execução de tarefas, uma forma comum de representar a ordem de execução em agendadores de trabalho. Por exemplo, considere o seguinte trabalho composto por quatro tarefas:

Diagrama de exemplo de dependências de tarefas

  • A tarefa 1 é a tarefa principal e não depende de qualquer outra tarefa.
  • A tarefa 2 e a Tarefa 3 dependem da conclusão da Tarefa 1 primeiro.
  • Finalmente, a Tarefa 4 depende da tarefa 2 e da conclusão da Tarefa 3 com sucesso.

A Azure Databricks executa tarefas a montante antes de executar tarefas a jusante, executando o maior número possível delas em paralelo. O diagrama a seguir ilustra a ordem de processamento para estas tarefas:

Fluxo de exemplo de dependências de tarefas

Opções individuais de configuração de tarefas

As tarefas individuais têm as seguintes opções de configuração:

Nesta secção:

Cluster

Para configurar o cluster onde uma tarefa é executada, clique no cluster drop-down. Para saber mais sobre a seleção e configuração de clusters para executar tarefas, consulte as dicas de configuração do Cluster.

Nota

Cada tarefa funciona num cluster para todos os fins ou num novo aglomerado de emprego. Não pode usar o mesmo grupo de trabalho para mais do que uma tarefa num trabalho.

Bibliotecas dependentes

As bibliotecas dependentes serão instaladas no cluster antes do funcionação da tarefa. Tem de definir todas as dependências de tarefas para garantir que são instaladas antes do início da execução.

Para adicionar uma biblioteca dependente, clique em opções Avançadas e selecione Adicionar Bibliotecas Dependentes para abrir o escolhar da Biblioteca Dependente adicionar. Siga as recomendações nas dependências da Biblioteca para especificar dependências.

Importante

Se tiver configurado uma biblioteca para instalar automaticamente em todos os clusters, ou selecionar um cluster encerrado existente que tenha bibliotecas instaladas, a execução do trabalho não aguarda a conclusão da instalação da biblioteca. Se um trabalho necessitar de uma biblioteca específica, deve anexar a biblioteca ao trabalho no campo das Bibliotecas Dependentes.

Variáveis de parâmetros de tarefa

Pode passar variáveis modelo numa tarefa de trabalho como parte dos parâmetros da tarefa. Estas variáveis são substituídas pelos valores adequados quando a tarefa funciona. Pode utilizar os valores dos parâmetros de tarefa para passar o contexto sobre uma execução de emprego, como o ID de execução ou a hora de início do trabalho.

Quando um trabalho funciona, a variável do parâmetro de tarefa rodeada por aparelhos duplos encaracolados é substituída e anexada a um valor de corda opcional incluído como parte do valor. Por exemplo, para passar um parâmetro nomeado MyJobId com um valor de qualquer my-job-6 execução de ID 6 de trabalho, adicione o seguinte parâmetro de tarefa:

{
  "MyJobID": "my-job-{{job_id}}"
}

O conteúdo dos aparelhos duplos encaracolados não são avaliados como expressões, pelo que não é possível fazer operações ou funções dentro de aparelhos duplos encaracolados. O whitespace não é despojado dentro dos aparelhos encaracolados, por isso {{ job_id }} não será avaliado.

São suportadas as seguintes variáveis de parâmetros de tarefa:

Variável Descrição
{{job_id}} O identificador único atribuído a um trabalho
{{run_id}} O identificador único atribuído a uma corrida de trabalho
{{start_date}} A data em que começou o trabalho. O formato é yyyy-MM-dd no tempo de utc.
{{start_time}} O tempo de início da execução após a criação e preparação do cluster. O formato é milissegundo desde UNIX época no timezone UTC, como devolvido por System.currentTimeMillis() .
{{task_retry_count}} O número de retrações que foram tentadas executar uma tarefa se a primeira tentativa falhar. O valor é 0 para a primeira tentativa e incrementos a cada repetição.

As seguintes variáveis de parâmetros de tarefa são suportadas quando a orquestração de múltiplas tarefas é ativada:

Variável Descrição Valor de exemplo
{{parent_run_id}} O identificador único atribuído à execução de um trabalho com múltiplas tarefas. 3447835
{{task_key}} O nome único atribuído a uma tarefa que faz parte de um trabalho com múltiplas tarefas. "clean_raw_data"

Pode definir estas variáveis com qualquer tarefa quando criar um emprego,editar um trabalhoou executar um trabalho com parâmetros diferentes.

Tempo Limite

O tempo máximo de conclusão para um trabalho. Se o trabalho não estiver concluído neste momento, a Azure Databricks define o seu estatuto para "Timed out".

Tentativas

Uma política que determina quando e quantas vezes as corridas falhadas são novamente julgadas. Para definir as retreições para a tarefa, clique em opções Avançadas e selecione Editar a Política de Retry.

Nota

Se configurar o Timeout e o Retries,o tempo limite aplica-se a cada repetição.

Clonar um trabalho

Pode criar rapidamente um novo emprego clonando um emprego existente. Clonagem de um trabalho cria uma cópia idêntica do trabalho, exceto a identificação do trabalho. Na página do trabalho, clique em Mais... ao lado do nome do trabalho e selecione Clone no menu suspenso.

Clone uma tarefa

Pode criar rapidamente uma nova tarefa clonando uma tarefa existente:

  1. Na página do trabalho, clique no separador Tarefas.
  2. Selecione a tarefa a clonar.
  3. Clique em Jobs Vertical Ellipsis e selecione a tarefa Clone.

Eliminar trabalhos

Para apagar um trabalho, na página do trabalho, clique em Mais... ao lado do nome do trabalho e selecione Delete do menu suspenso.

Excluir uma tarefa

Para eliminar uma tarefa quando a orquestração de múltiplas tarefas estiver ativada:

  1. Clique no separador Tarefas.
  2. Selecione a tarefa a eliminar.
  3. Clique em Jobs Vertical Ellipsis e selecione Remover a tarefa.

Copiar um caminho de tarefa

Para copiar o caminho para uma tarefa, por exemplo, um caminho de caderno:

  1. Clique no separador Tarefas.
  2. Selecione a tarefa que contém o caminho a copiar.
  3. Clique em Jobs Copy Icon ao lado do caminho de tarefa para copiar o caminho para a área de transferência.

Melhores práticas

Nesta secção:

Dicas de configuração do cluster

A configuração do cluster é importante quando operacionaliza um trabalho. O seguinte fornece orientações gerais sobre a escolha e configuração de agrupamentos de emprego, seguido de recomendações para tipos de emprego específicos.

Escolha o tipo de cluster correto para o seu trabalho

  • Os Novos Clusters de Emprego são clusters dedicados criados e iniciados quando executam uma tarefa e terminam imediatamente após a conclusão da tarefa. Na produção, a Databricks recomenda a utilização de novos clusters para que cada tarefa seja executado num ambiente totalmente isolado.
  • Quando você executa uma tarefa num novo cluster, a tarefa é tratada como uma carga de trabalho de engenharia de dados (tarefa), sujeita ao preço da carga de trabalho de tarefa. Quando você executa uma tarefa num cluster de todos os fins existente, a tarefa é tratada como uma carga de trabalho de análise de dados (para todos os fins), sujeita a preços de carga de trabalho para todos os fins.
  • Se selecionar um cluster existente e o proprietário do trabalho tiverpermissãode Pode Reiniciar,a Azure Databricks inicia o cluster quando o trabalho está programado para ser executado.
  • Os clusters existentes para todos os fins funcionam melhor para tarefas como a atualização de dashboards a intervalos regulares.

Use uma piscina para reduzir os tempos de início do cluster

Para diminuir a hora de início do novo cluster de emprego, crie uma piscina e configuure o cluster do trabalho para usar a piscina.

Dicas de trabalho de caderno

A produção total de células portátil (a saída combinada de todas as células de portátil) está sujeita a um limite de tamanho de 20MB. Além disso, a saída individual de células está sujeita a um limite de tamanho de 8MB. Se a saída total da célula exceder 20MB de tamanho, ou se a saída de uma célula individual for superior a 8MB, a execução é cancelada e marcada como falhada.

Se precisar de ajuda para encontrar células perto ou além do limite, corra o caderno contra um cluster para todos os fins e use esta técnica de autosave notebook.

Tarefas de streaming

Os postos de trabalho em streaming de faíscas nunca devem ter prazos simultâneos máximos definidos para mais de 1. Os trabalhos de streaming devem ser programados para serem executados utilizando a expressão cron "* * * * * ?" (a cada minuto).

Uma vez que uma tarefa de streaming é continuamente executado, deve ser sempre a tarefa final num trabalho.

Trabalhos jar

Ao executar um trabalho JAR, tenha em mente o seguinte:

Limites de tamanho de saída

Nota

Disponível em Databricks Runtime 6.3 ou superior.

A saída de trabalho, como a saída de registo emitida para o stdout, está sujeita a um limite de tamanho de 20MB. Se a saída total tiver um tamanho maior, a execução é cancelada e marcada como falhada.

Para evitar encontrar este limite, pode evitar que o stdout seja devolvido do condutor para Azure Databricks, definindo spark.databricks.driver.disableScalaOutput a configuração Spark para true . Por predefinição, o valor da bandeira é false . A bandeira controla a produção de células para trabalhos scala JAR e cadernos Scala. Se a bandeira estiver ativada, a Spark não devolve os resultados da execução do trabalho ao cliente. A bandeira não afeta os dados que estão escritos nos ficheiros de registo do cluster. A definição desta bandeira é recomendada apenas para agrupamentos de emprego para trabalhos JAR, pois irá desativar os resultados do caderno.

Use o compartilhado SparkContext

Uma vez que o Azure Databricks é um serviço gerido, algumas alterações de código podem ser necessárias para garantir que os seus empregos Apache Spark funcionam corretamente. Os programas de trabalho jar devem usar a API partilhada SparkContext para obter o SparkContext . Porque a Azure Databricks inicializa os SparkContext programas que invocam new SparkContext() falharão. Para obter o SparkContext , use apenas o compartilhado SparkContext criado por Azure Databricks:

val goodSparkContext = SparkContext.getOrCreate()
val goodSparkSession = SparkSession.builder().getOrCreate()

Existem também vários métodos que deve evitar ao utilizar o partilhado SparkContext .

  • Não SparkContext.stop() ligue.
  • Não ligue System.exit(0) nem no final do seu sc.stop()Main programa. Isto pode causar um comportamento indefinido.

Use try-finally blocos para limpar o trabalho

Considere um JAR que consiste em duas partes:

  • jobBody() que contém a parte principal do trabalho.
  • jobCleanup() que tem de ser executada depois jobBody() de essa função ter sido bem sucedida ou devolvida uma exceção.

Como exemplo, jobBody() pode criar tabelas, e pode usar jobCleanup() para deixar cair estas mesas.

A forma segura de garantir que o método de limpeza é chamado é colocar um try-finally bloco no código:

try {
  jobBody()
} finally {
  jobCleanup()
}

Não deve tentar limpar a utilização ou o seguinte código:

val cleanupThread = new Thread { override def run = jobCleanup() }
Runtime.getRuntime.addShutdownHook(cleanupThread)

Devido à forma como a vida útil dos recipientes Spark é gerida em Azure Databricks, os ganchos de paragem não são executados de forma fiável.

Configurar parâmetros de trabalho JAR

Passa-se parâmetros para trabalhos jar com uma matriz de cordas JSON. Consulte o spark_jar_task objeto no órgão de pedido passado para a spark_jar_task operação de trabalho ( ) na POST /jobs/create API jobs. Para aceder a estes parâmetros, inspecione a String matriz passada para a sua main função.

Dependências da biblioteca

O condutor da Spark tem certas dependências da biblioteca que não podem ser ultrapassadas. Estas bibliotecas têm prioridade sobre qualquer uma das suas bibliotecas que entram em conflito com elas.

Para obter a lista completa das dependências da biblioteca do condutor, corram o seguinte comando dentro de um caderno anexado a um conjunto da mesma versão Spark (ou ao cluster com o condutor que pretende examinar).

%sh
ls /databricks/jars

Gerir as dependências da biblioteca

Uma boa regra do polegar ao lidar com as dependências da biblioteca enquanto cria JARs para empregos é listar Spark e Hadoop como provided dependências. Em Maven, adicione Spark e Hadoop como dependências fornecidas, como mostra o seguinte exemplo:

<dependency>
  <groupId>org.apache.spark</groupId>
  <artifactId>spark-core_2.11</artifactId>
  <version>2.3.0</version>
  <scope>provided</scope>
</dependency>
<dependency>
  <groupId>org.apache.hadoop</groupId>
  <artifactId>hadoop-core</artifactId>
  <version>1.2.1</version>
  <scope>provided</scope>
</dependency>

Em sbt , adicione Spark e Hadoop como dependências fornecidas, como mostra o seguinte exemplo:

libraryDependencies += "org.apache.spark" %% "spark-core" % "2.3.0" % "provided"
libraryDependencies += "org.apache.hadoop" %% "hadoop-core" % "1.2.1" % "provided"

Dica

Especifique a versão Scala correta para as suas dependências com base na versão que está a executar.