Spark Streaming - Guia Completo para Spark Streaming

Índice:

Anonim

Introdução ao Spark Streaming

O Apache Spark Streaming é um dos componentes essenciais do Apache Spark, que é o processamento em tempo real do utilitário de dados que é usado para transmitir os dados de maneira em tempo real, ao contrário das tarefas em lote tradicionais do Hadoop que foram usadas para executar tarefas em lote. de streaming de dados em tempo real. Ele utiliza o recurso de agendamento rápido do núcleo Spark para executar análises rápidas de fluxo de centelha, que envolvem essencialmente a ingestão de dados na forma de micro e minilotes para executar as transformações de RDD nesses conjuntos de dados em um período de janela específico. O streaming do Apache Spark destina-se a consumir de muitos upgreams, concluindo assim o pipeline, como Apache Kafka, Flume, RabbitMQ, ZeroMQ, Kinesis, soquetes TCP / IP, Twitter etc. Os conjuntos de dados estruturados disponíveis no Spark 2. As versões x + são usadas para streaming estruturado.

Como o Spark Streaming funciona?

  • No caso do Spark Streaming, os fluxos de dados são divididos em lotes fixos, também chamados DStreams, que é internamente uma sequência de tipos fixos do número de RDDs. Portanto, os RDDs são processados ​​usando a API Spark e os resultados retornados são, portanto, em lotes. As operações de fluxo discretizadas, que são transformações com e sem estado, também consistem em operações de saída, operações de entrada DStream e também nos receptores. Esses Dstreams são o nível básico de abstração fornecido pelo streaming do Apache Spark, que é um fluxo contínuo dos RDDs do Spark.
  • Ele também fornece os recursos para que a tolerância a falhas seja usada para Dstreams bastante semelhantes aos RDDs, desde que a cópia dos dados esteja disponível e, portanto, qualquer estado possa ser recalculado ou trazido de volta ao estado original usando o gráfico de linhagem do Spark sobre o conjunto de RDDs. O ponto a ser ponderado aqui é que o Dstreams é usado para converter as operações básicas em seu conjunto subjacente de RDDs. Essas transformações baseadas em RDD são feitas e computadas pelo Spark Engine. As operações do Dstream são usadas para fornecer o nível básico de detalhes e fornecer ao desenvolvedor um alto nível de API para fins de desenvolvimento.

Vantagens do Spark Streaming

Existem várias razões pelas quais o uso do Spark streaming é uma vantagem adicional. Vamos discutir alguns deles em nosso post aqui.

  1. Unificação de fluxo, lote e cargas de trabalho interativas: os conjuntos de dados podem ser facilmente integrados e usados ​​com qualquer carga de trabalho que nunca foi uma tarefa fácil de ser executada em sistemas contínuos e, portanto, serve como um mecanismo único.
  2. Nível avançado de análise, juntamente com aprendizado de máquina e consultas SQL: quando você está trabalhando em cargas de trabalho complexas, isso sempre exige o uso de aprendizado contínuo e também com os modelos de dados atualizados. A melhor parte desse componente do Spark é que ele se integra facilmente ao MLib ou a qualquer outra biblioteca de aprendizado de máquina dedicada.
  3. Falha rápida e também recuperação para retardatários: a recuperação de falhas e a tolerância a falhas são um dos principais recursos básicos disponíveis no Spark streaming.
  4. Balanceamento de carga: Os gargalos geralmente são causados ​​entre os sistemas devido a cargas e balanços desiguais que estão sendo executados e, portanto, torna-se necessário balancear a carga uniformemente, que é manipulada automaticamente por este componente do Spark.
  5. Desempenho: Devido à sua técnica de computação na memória, que utiliza mais a memória interna do que o disco rígido externo, o desempenho do Spark é muito bom e eficiente quando comparado a outros sistemas Hadoop.

Operações de Streaming Spark

1) Operações de transformação no streaming Spark: Da mesma forma que os dados são transformados a partir do conjunto de RDDs, aqui também os dados são transformados a partir do DStreams e oferece muitas transformações disponíveis nos RDDs Spark normais. Alguns deles são:

  • Mapa (): É usado para retornar uma nova forma de Dstream quando cada elemento é passado por uma função.
    Por exemplo, data.map (linha => (linha, linha.contagem))
  • flatMap (): este é semelhante ao mapa, mas cada item é mapeado para 0 ou mais unidades mapeadas.
    Exemplo, data.flatMap (lines => lines.split (”“))
  • filter (): Este é usado para retornar um novo conjunto de Dstream retornando os registros que são filtrados para nosso uso.
    Exemplo, filtro (valor => valor == ”centelha”)
  • União (): É usado para retornar um novo conjunto de Dstream que consiste nos dados combinados dos Dstreams de entrada e outros Dstreams.
    Exemplo, Dstream1.union (Dstream2) .union (Dstream3)

2) Atualizar estado por operação chave

Isso permite que você mantenha um estado arbitrário, mesmo quando o atualiza continuamente com uma nova informação. Seria necessário definir o estado que pode ser do tipo arbitrário e definir a função de atualização do estado, o que significa especificar o estado usando o estado anterior e também usar novos valores de um fluxo de entrada. Em todo sistema em lote, um spark aplicará a mesma função de atualização de estado para todas as chaves que prevalecem.

Exemplo:

função de atualização de def (NV, RC):

se RC for Nenhum:

RC = 0

soma de retorno (NV, RC) #Nv é novos valores e RC está executando contagem

Conclusão

O Spark Stream é um dos sistemas mais eficientes para construir o pipeline real do tipo streaming e, portanto, é usado para superar todos os problemas encontrados no uso de sistemas e métodos tradicionais. Portanto, todos os desenvolvedores que estão aprendendo a entrar no componente de transmissão em fluxo estão pisando no ponto único mais correto de uma estrutura que pode ser usada para atender a todas as necessidades de desenvolvimento. Portanto, podemos dizer com segurança que seu uso aumenta a produtividade e o desempenho nos projetos e empresas que estão tentando ou desejando utilizar o ecossistema de big data. Espero que você tenha gostado do nosso artigo. Fique ligado para mais artigos como esses.

Artigos recomendados

Este é um guia para o Spark Streaming. Aqui discutimos a introdução ao Spark Streaming, como ele funciona junto com vantagens e exemplos. Você também pode consultar nossos outros artigos relacionados -

  1. O que é o Hadoop Streaming?
  2. Comandos do Spark
  3. Tutoriais sobre como instalar o Spark
  4. Diferença entre Hadoop e Spark
  5. DataFrame Spark | Vantagens
  6. Os 6 principais componentes do Spark