O Apache Spark, uma biblioteca de computação em cluster de código aberto, é uma escolha comum para processamento de dados e aprendizado de máquina em grande escala, principalmente nas áreas de finanças, mídia, saúde e varejo. No ano passado, o Google Cloud liderou iniciativas para integrar nativamente o Apache Spark e o Kubernetes. O trabalho começou como uma pequena iniciativa de código aberto em dezembro de 2016, mas cresceu e criou uma comunidade ativa que mantém e oferece suporte a essa integração.

Da versão 2.3 em diante, o Apache Spark passou a contar com suporte nativo ao Kubernetes, o que permite usar diretamente os recursos de multilocatário e compartilhamento por meio de Namespaces e Quotas do Kubernetes, além de recursos administrativos como Pluggable Authorization e Logging para cargas de trabalho do Spark. Isso abre um mundo de possibilidades para a nuvem híbrida: agora você pode migrar e executar jobs locais do Spark no Kubernetes para o Kubernetes Engine. Além disso, lançamos recentemente os conectores GCP Hadoop/Spark para o Apache Spark 2.3, o que permite executar o Spark de forma nativa no Kubernetes Engine em conjunto com os produtos de dados do Google, como o Cloud Storage e o BigQuery.

Para ajudar você a começar a usar, criamos um tutorial sobre como executar o Spark no Kubernetes Engine. Aqui, o Spark é executado como um controlador personalizado que cria recursos no Kubernetes em resposta a solicitações feitas pelo programador do Spark. Dessa forma, você obtém um gerenciamento detalhado dos aplicativos Spark, maior elasticidade e integração transparente com tutoriais de geração de registros e monitoramento no Kubernetes Engine.

Esse tutorial reúne alguns dos melhores serviços de processamento e armazenamento de dados do Google. Além do Cloud Storage e do BigQuery, o tutorial mostra como usar o Google Cloud Pub/Sub com o Spark para cargas de trabalho de streaming. O tutorial detalha a configuração do Spark, incluindo credenciais e IAM, para se conectar aos serviços Google. Além disso, oferece código executável para realizar transformações e agregações de dados em um conjunto de dados público do GitHub. Essa é uma boa abordagem se você quer desenvolver seus próprios aplicativos Spark e usar o Cloud Storage e o BigQuery como fontes e coletores de dados. Por exemplo, você pode armazenar registros no Cloud Storage, usar o Spark no Kubernetes Engine para pré-processar dados e usar o BigQuery para fazer uma análise dos dados.

Esse tutorial foi desenvolvido pensando na flexibilidade. Use-o como ponto de partida e personalize o Apache Spark de acordo com o seu caso de uso. Se você quiser um serviço Apache Spark totalmente gerenciado e suportado, uma alternativa é usar o Cloud Dataproc no GCP.
Temos diversos outros planos para o Apache Spark e o Kubernetes: em um deles, estamos desenvolvendo o suporte a Spark interativo no Kubernetes Engine. Além disso, estamos trabalhando no Spark Dynamic Resource Allocation, ou alocação dinâmica de recursos do Spark, para futuras versões do Apache Spark. Você poderá usar esse recurso juntamente com o escalonamento automático de cluster do Kubernetes Engine, o que ajudará a aumentar a eficiência e a elasticidade em caso de bursts em jobs periódicos de lotes em clusters do Kubernetes Engine para várias cargas de trabalho. Até lá, não deixe de experimentar o novo tutorial do Spark nos seus clusters do Kubernetes Engine!