Partilhar via


Cenário: RpcTimeoutException para servidor thrift Apache Spark no Azure HDInsight

Este artigo descreve as etapas de solução de problemas e possíveis resoluções de problemas ao usar componentes do Apache Spark em clusters do Azure HDInsight.

Problema

O aplicativo Spark falha com uma org.apache.spark.rpc.RpcTimeoutException exceção e uma mensagem: Futures timed out, como no exemplo a seguir:

org.apache.spark.rpc.RpcTimeoutException: Futures timed out after [120 seconds]. This timeout is controlled by spark.rpc.askTimeout
 at org.apache.spark.rpc.RpcTimeout.org$apache$spark$rpc$RpcTimeout$$createRpcTimeoutException(RpcTimeout.scala:48)

OutOfMemoryError e overhead limit exceeded erros também podem aparecer no sparkthriftdriver.log exemplo a seguir:

WARN  [rpc-server-3-4] server.TransportChannelHandler: Exception in connection from /10.0.0.17:53218
java.lang.OutOfMemoryError: GC overhead limit exceeded

Motivo

Esses erros são causados pela falta de recursos de memória durante o processamento de dados. Se o processo de coleta de lixo Java for iniciado, isso pode levar o aplicativo Spark a parar de responder. As consultas começarão a atingir o tempo limite e a parar o processamento. O Futures timed out erro indica um cluster sob forte estresse.

Resolução

Aumente o tamanho do cluster adicionando mais nós de trabalho ou aumentando a capacidade de memória dos nós de cluster existentes. Você também pode ajustar o pipeline de dados para reduzir a quantidade de dados que estão sendo processados de uma só vez.

O spark.network.timeout controla o tempo limite para todas as conexões de rede. Aumentar o tempo limite da rede pode permitir mais tempo para algumas operações críticas serem concluídas, mas isso não resolverá o problema completamente.

Próximos passos

Se não viu o problema ou não conseguiu resolvê-lo, visite um dos seguintes canais para obter mais suporte:

  • Obtenha respostas de especialistas do Azure através do Suporte da Comunidade do Azure.

  • Conecte-se com o @AzureSupport - a conta oficial do Microsoft Azure para melhorar a experiência do cliente. Ligar a comunidade do Azure aos recursos certos: respostas, suporte e especialistas.

  • Se precisar de mais ajuda, você pode enviar uma solicitação de suporte do portal do Azure. Selecione Suporte na barra de menus ou abra o hub Ajuda + suporte . Para obter informações mais detalhadas, consulte Como criar uma solicitação de suporte do Azure. O acesso ao suporte para Gestão de Subscrições e faturação está incluído na sua subscrição do Microsoft Azure e o Suporte Técnico é disponibilizado através de um dos Planos de Suporte do Azure.