Implantar um Cluster do Apache Spark no Modo Gerente/Colaborador

O Apache Spark é uma estrutura de computação em cluster de código-fonte aberto para análise de dados. O Oracle Cloud Infrastructure fornece uma plataforma confiável e de alto desempenho para executar e gerenciar seus aplicativos de Big Data baseados em Apache Spark.

Arquitetura

Esta arquitetura implanta um cluster do Apache Spark no Oracle Cloud Infrastructure usando o modelo de gerente/colaborador. Ele tem um nó de gerente e três nós de trabalho, em execução em instâncias de computação.

O diagrama a seguir ilustra essa arquitetura de referência.

Veja a seguir a descrição da ilustração spark-oci-png.png
Descrição da ilustração spark-oci-png.png

spark-oci-oracle.zip

A arquitetura tem os seguintes componentes:

  • Região

    Uma região do Oracle Cloud Infrastructure é uma área geográfica localizada que contém um ou mais data centers, chamados domínios de disponibilidade. As regiões são independentes de outras regiões e grandes distâncias podem separá-las (entre países ou mesmo continentes).

  • Domínio de disponibilidade

    Os domínios de disponibilidade são data centers independentes e independentes em uma região. Os recursos físicos em cada domínio de disponibilidade são isolados dos recursos nos outros domínios de disponibilidade, o que fornece tolerância a falhas. Os domínios de disponibilidade não compartilham infraestrutura, como energia ou resfriamento, ou a rede de domínio de disponibilidade interna. Portanto, é improvável que uma falha em um domínio de disponibilidade afete os outros domínios de disponibilidade na região.

  • Domínio com falha

    Um domínio de falha é um agrupamento de hardware e infraestrutura dentro de um domínio de disponibilidade. Cada domínio de disponibilidade tem três domínios de falha com energia e hardware independentes. Quando você distribui recursos entre vários domínios de falha, seus aplicativos podem tolerar falhas físicas do servidor, manutenção do sistema e falhas de energia dentro de um domínio de falha.

  • Rede virtual na nuvem (VCN) e sub-redes

    Um VCN é uma rede personalizável definida por software que você configura em uma região do Oracle Cloud Infrastructure. Como as redes tradicionais de data center, as VCNs oferecem controle total sobre seu ambiente de rede. Um VCN pode ter vários blocos CIDR não sobrepostos que você pode alterar depois de criar o VCN. Você pode segmentar uma VCN em sub-redes, que podem ter escopo para uma região ou para um domínio de disponibilidade. Cada sub-rede consiste em uma faixa contígua de endereços que não se sobrepõem às outras sub-redes na VCN. Você pode alterar o tamanho de uma sub-rede após a criação. Uma sub-rede pode ser pública ou privada.

  • Gerente e colaboradores do Apache Spark

    A instância de computação que hospeda o gerenciador de Apache Spark está anexada a uma sub-rede pública regional. Os trabalhadores estão ligados a uma sub-rede privada regional.

  • Armazenamento em bloco

    Com os volumes de armazenamento em blocos, você pode criar, anexar, conectar e mover volumes de armazenamento e alterar o desempenho do volume para atender aos requisitos de armazenamento, desempenho e aplicativo. Depois de anexar e conectar um volume a uma instância, você pode usar o volume como um disco rígido regular. Você também pode desconectar um volume e anexá-lo a outra instância sem perder dados.

    O modelo de inicialização rápida do Terraform fornecido para essa arquitetura provisiona um volume em blocos de 700 GB para cada nó de trabalho. Ao implantar a arquitetura, você pode escolher o número e o tamanho dos volumes em blocos.

    A arquitetura usa iSCSI, um padrão baseado em TCP/IP, para comunicação entre os volumes e as instâncias anexadas.

  • Gateway de Internet

    O gateway de internet permite o tráfego entre as sub-redes públicas em uma VCN e a internet pública.

  • Gateway NAT (Network address translation)

    Um gateway NAT permite que recursos privados em uma VCN acessem hosts na internet, sem expor esses recursos a conexões provenientes da internet.

Recomendações

Seus requisitos podem ser diferentes da arquitetura descrita aqui. Usar as recomendações a seguir como ponto inicial.

  • VCN

    Ao criar uma VCN, determine o número de blocos CIDR necessários e o tamanho de cada bloco com base no número de recursos que você planeja anexar a sub-redes na VCN. Usar blocos CIDR que estão dentro do espaço de endereço IP privado padrão.

    Selecione blocos CIDR que não se sobreponham a nenhuma outra rede (no Oracle Cloud Infrastructure, seu data center local ou outro provedor de nuvem) para a qual você pretenda configurar conexões privadas.

    Depois de criar um VCN, você poderá alterar, adicionar e remover seus blocos CIDR.

    Ao projetar as sub-redes, considere seu fluxo de tráfego e requisitos de segurança. Anexar todos os recursos em uma camada ou função específica à mesma sub-rede, que pode servir como limite de segurança.

    Usar sub-redes regionais.

  • Calcular formas

    Essa arquitetura usa uma imagem do SO Oracle Linux 7.7 com uma forma VM.Standard2.1 para OS nós gerenciador e colaborador. Se o aplicativo precisar de mais memória, núcleos ou largura de banda da rede, você poderá escolher uma forma diferente.

  • Apache Spark e Hadoop

    Mesmo que o Apache Spark possa ser executado sozinho, nessa arquitetura, ele é executado no Hadoop.

    Nesta arquitetura, um único nó do gerenciador e três nós de trabalho são implantados como parte do cluster do Apache Spark.

  • Segurança
    • Use o Oracle Cloud Guard para monitorar e manter a segurança de seus recursos no Oracle Cloud Infrastructure proativamente. O Cloud Guard usa receitas de detectores que você pode definir para examinar seus recursos quanto a deficiências de segurança e monitorar operadores e usuários quanto a atividades arriscadas. Quando qualquer configuração incorreta ou atividade insegura é detectada, o Cloud Guard recomenda ações corretivas e auxilia na execução dessas ações, com base nas receitas do respondedor que você pode definir.

    • Para recursos que exigem segurança máxima, a Oracle recomenda que você use zonas de segurança. Uma zona de segurança é um compartimento associado a uma receita definida pela Oracle de políticas de segurança baseadas nas melhores práticas. Por exemplo, os recursos em uma zona de segurança não devem estar acessíveis na internet pública e devem ser criptografados usando chaves gerenciadas pelo cliente. Quando você cria e atualiza recursos em uma zona de segurança, o Oracle Cloud Infrastructure valida as operações em relação às políticas na receita da zona de segurança e nega operações que violem qualquer uma das políticas.

Considerações

  • Desempenho

    Considere o uso de formas bare metal para instâncias do serviço Compute para nós de gerenciador e de trabalho. Você pode obter benefícios de desempenho significativos executando aplicativos Big Data em um cluster Spark bare metal.

  • Disponibilidade

    Os domínios de falha fornecem a melhor resiliência dentro de um único domínio de disponibilidade. Você pode implantar instâncias de computação que executam as mesmas tarefas em vários domínios de disponibilidade. Esse design remove um único ponto de falha introduzindo redundância.

    Você também pode considerar a criação de um nó extra do gerenciador do Spark como um backup para alta disponibilidade.

  • Escalabilidade

    Você pode dimensionar seu aplicativo usando o pool de instâncias e os recursos de dimensionamento automático.

    • Usando pools de instâncias, você pode provisionar e criar várias instâncias de computação com base na mesma configuração dentro da mesma região.
    • O dimensionamento automático permite ajustar automaticamente o número de instâncias de computação em um pool de instâncias, com base em métricas de desempenho, como a utilização da CPU.
  • Armazenamento

    Você pode usar o Oracle Cloud Infrastructure Object Storage para armazenar os dados em vez de volumes em blocos. Se você usar o armazenamento de objetos, crie um gateway de serviço para conectividade de nós em sub-redes privadas.

    O Oracle também oferece o Conector HDFS (Hadoop Distributed File System) para Oracle Cloud Infrastructure Object Storage. Usando o conector HDFS, seus aplicativos do Apache Hadoop podem ler e gravar dados de e para o armazenamento de objetos.

  • Capacidade de gerenciamento

    Esta arquitetura usa o Terraform para criar a infraestrutura e implantar o cluster do Spark.

    Você pode, em vez disso, usar o serviço totalmente gerenciado, o Oracle Cloud Infrastructure Data Flow, que fornece uma interface de usuário rica para permitir que desenvolvedores e cientistas de dados criem, editem e executem aplicativos Apache Spark em qualquer escala sem a necessidade de clusters, uma equipe de operações ou conhecimento altamente especializado do Spark. Como um serviço totalmente gerenciado, não há infraestrutura para implantar ou gerenciar.

  • Segurança

    Use políticas para restringir quem pode acessar seus recursos do Oracle Cloud Infrastructure e quais ações eles podem executar.

Implantar

O código necessário para implantar esta arquitetura de referência está disponível no GitHub. Você pode extrair o código para o Oracle Cloud Infrastructure Resource Manager com um único clique, criar a pilha e implantá-lo. Como alternativa, faça download do código do GitHub para seu computador, personalize-o e implante a arquitetura usando a CLI do Terraform.

  • Implantar usando o Oracle Cloud Infrastructure Resource Manager:
    1. Clique em Implantar no Oracle Cloud

      Se você ainda não tiver efetuado sign-in, informe as credenciais da tenancy e do usuário.

    2. Revisar e aceitar os termos e condições.
    3. Selecione a região onde você deseja disponibilizar a pilha.
    4. Siga os prompts e instruções na tela para criar a pilha.
    5. Depois de criar a pilha, clique em Ações do Terraform e selecione Plano.
    6. Aguarde a conclusão do job e revise o plano.

      Para fazer alterações, retorne à página Detalhes da Pilha, clique em Editar Pilha e faça as alterações necessárias. Em seguida, execute a ação Plano novamente.

    7. Se nenhuma outra alteração for necessária, retorne à página Detalhes da Pilha, clique em Ações do Terraform e selecione Aplicar.
  • Implantar usando a CLI do Terraform:
    1. Vá para o GitHub.
    2. Clone ou faça download do repositório para o computador local.
    3. Siga as instruções no documento README.

Log de Alterações

Este log lista alterações significativas: