Pular para o conteúdo principal

Spark estágio I/O alto

Em seguida, veja novamente as estatísticas de E/S do estágio mais longo:

E/S de longo estágio

O que é alta E/S?

Quantos dados precisam estar em uma coluna de E/S para serem considerados altos? Para descobrir isso, primeiro comece com o número mais alto em qualquer uma das colunas dadas. Em seguida, considere o número total de núcleos de CPU que o senhor tem em todos os nossos trabalhadores. Geralmente, cada núcleo pode ler e gravar cerca de 3 MBs por segundo.

Divida sua maior coluna de E/S pelo número de núcleos de worker clustering e, em seguida, divida esse valor por segundos de duração. Se o resultado for de cerca de 3 MB, provavelmente você está vinculado à E/S. Isso seria um alto I/O.

Alta entrada

Se você vê muitas informações em seu palco, isso significa que você está gastando muito tempo lendo dados. Primeiro, identifique quais dados esse estágio está lendo. Consulte Identificação de uma leitura cara no DAG do Spark.

Depois de identificar os dados específicos, aqui estão algumas abordagens para acelerar suas leituras:

  • Use Delta.
  • Experimente o Photon. Isso pode ajudar muito na velocidade de leitura, especialmente para tabelas largas.
  • Torne sua consulta mais seletiva para que ela não precise ler tantos dados.
  • Reconsidere sua disposição de dados para que a omissão de dados seja mais eficaz.
  • Se o senhor estiver lendo os mesmos dados várias vezes, use o cache Delta.
  • Se o senhor estiver fazendo um join, considere a possibilidade de tentar fazer o DFP funcionar.

Alto rendimento

Se você vê muitos resultados do seu palco, isso significa que você está gastando muito tempo escrevendo dados. Aqui estão algumas abordagens para resolver isso:

Embaralhamento alto

Se você não está familiarizado com o shuffle, esta é a hora de aprender.

Sem E/S alta

Se você não vê um alto I/O em nenhuma das colunas, precisa se aprofundar. Veja o estágio Slow Spark com pouca E/S.