Guia Completo do Apache Spark
Guia Completo do Apache Spark
Apache Spark é um motor de análise de dados. Esta série de tutoriais sobre Spark aborda os conceitos básicos do Apache Spark e
Bibliotecas: Spark MLlib, GraphX, Streaming, SQL com explicação detalhada e exemplos.
A seguir está uma visão geral dos conceitos e exemplos que iremos abordar neste Apache Spark
Tutoriais.
Spark Core
O Spark Core é a estrutura base do Apache Spark. Ele contém o Dispatcher de tarefas distribuídas, o Agendador de Jobs e
Manipulador de funcionalidades básicas de E/S. Ele expõe esses componentes e suas funcionalidades através de APIs disponíveis.
em linguagens de programação Java, Python, Scala e R.
Instale o Spark no Mac OS– Tutorial para instalar o Apache Spark em um computador com Mac OS.
Configurar projeto Java com Apache Spark– Tutorial do Apache Spark para configurar um Projeto Java no Eclipse com Apache Spark
Bibliotecas e começar.
O Spark Shell é um shell interativo através do qual podemos acessar a API do Spark. O Spark fornece o shell em duas linguagens de programação.
Scala e Python.
Scala Spark Shell– Tutorial para entender o uso do ScalaSpark Shell com exemplo de contagem de palavras.
Shell do Python Spark– Tutorial para entender o uso do Python Spark Shell com exemplo de contagem de palavras.
Configurar Apache Spark para rodar no modo de cluster Standalone
Spark RDD
O Spark é construído sobre RDD (Banco de Dados Distribuído Resiliente). RDD é a estrutura que fornece ao Spark a capacidade de
faça processamento de dados paralelo em um cluster. Vamos passar pelas seguintes Transformações e Ações RDD.
Sobre Spark RDD
Criar RDD Spark
Imprimir Elementos de RDD
Leia arquivo de texto para RDD do Spark
Classificação usando Regressão LogísticaTutorial do Apache Spark para entender o uso da Regressão Logística no Spark
MLlib.
Classificação usando Naive Bayes– Tutorial do Apache Spark para entender o uso do Classificador Naive Bayes no Spark
MLlib.
Regressão Generalizada
Regressão de Sobrevivência
Árvores de Decisão– Tutorial do Apache Spark para entender o uso do Algoritmo de Árvores de Decisão no Spark MLlib.
Florestas Aleatórias– Tutorial do Apache Spark para entender o uso do algoritmo Random Forest no Spark MLlib.
Árvores de Gradiente Aumentado
Regras de Associação
Mineração de Padrões Sequenciais
Quando a Apache Software Foundation iniciou o Hadoop, tinha duas ideias importantes para implementação:
MapReduce e sistema de armazenamento escalável. Com dados institucionais, dados de sensores (IOT), dados de redes sociais
etc., crescendo exponencialmente, havia uma necessidade de armazenar vastas quantidades de dados com muito poucas despesas. A resposta
era o HDFS (Sistema de Arquivos Distribuídos do Hadoop). Para processar e analisar essas grandes quantidades de
informação do HDFS de forma muito eficiente, o Apache Hadoop viu a necessidade de um novo mecanismo chamado MapReduce.
E logo o MapReduce se tornou a única forma de processamento e análise de dados com o Ecossistema Hadoop.
O MapReduce, sendo a única opção, logo levou à evolução de novos motores para processar e analisar tamanhos enormes.
lojas de informações. E o Apache Spark se tornou um dos motores interessantes que evoluíram.
O Spark foi originalmente projetado e desenvolvido pelos desenvolvedores do Berkeley AMPLab. Para aproveitar o benefício de
comunidade amplamente aberta na Apache e levar o Spark a todos os interessados em análise de dados, os desenvolvedores têm
doou a base de código para a Apache Software Foundation e o Apache Spark nasceu. Portanto, o Apache Spark é um
projeto de código aberto da Apache Software Foundation.
Hadoop vs Spark
Processamento de Dados
A estrutura de memória flexível do Apache Spark permite que ele trabalhe tanto com dados em lotes quanto com dados de streaming em tempo real.
Isso o torna adequado para análise de big data e processamento em tempo real. Portanto, o Apache Spark fez, contínuo
processamento de dados de streaming, reavaliação do modelo e entrega dos resultados em tempo real possível em grandes volumes de dados
ecossistema.
Gerenciamento de Trabalho
No Hadoop, é necessário dividir todo o trabalho em jobs menores e encadeá-los para prosseguir.
MapReduce. Além disso, as APIs são complexas de entender. Isso torna a construção de jobs de MapReduce de longa duração mais difícil.
difícil.
No Spark, as APIs são bem projetadas pelos desenvolvedores para os desenvolvedores e fizeram um ótimo trabalho em mantê-las.
Simples. O Spark permite que você descreva todo o trabalho e lida com ele de forma muito eficiente para executar em forma paralela.
O Spark, além dos sistemas de arquivos distribuídos, também oferece suporte ao uso de bancos de dados muito populares, como
MySQL, PostgreSQL, etc., com a ajuda de sua biblioteca SQL.
O motor Apache Spark é rápido para o processamento de dados em grande escala e possui as seguintes características notáveis:
Alta Velocidade
O Spark executa programas mais rápido do que o Hadoop MapReduce: 100 vezes mais rápido com processamento em memória e 10 vezes mais rápido com
memória de disco
Facilidade de Uso
O Spark fornece mais de 80 operações de alto nível para construir aplicativos paralelos com facilidade.
Facilidade de Programação
Os programas Spark podem ser desenvolvidos usando várias linguagens de programação, comoJava, Scala, Python, R.
Conjunto de Bibliotecas
O Spark combina SQL, Streaming, computação gráfica edMLlib(Aprendizado de Máquina) juntos para trazer em
generalidade para aplicações.
Ambientes de Execução
Spark pode rodar em: máquina autônoma em modo de cluster, Hadoop, Apache Mesos ou na nuvem.
O Apache Spark funciona em uma arquitetura mestre-escravo. Quando um cliente envia o código da aplicação Spark para o Spark
Driver, o Driver do Spark converte implicitamente as transformações e ações em um (DAG) Grafo Acíclico Direcionado e
submete isso a um Agendador DAG (Durante esta conversão para DAG, também realiza otimização como pipeline
transformações). Agora, o planejador DAG converte o gráfico lógico (DAG) em um plano de ação físico contendo etapas
de tarefas. Essas tarefas são agrupadas para serem enviadas ao cluster.
O Gerenciador de Cluster acompanha os recursos disponíveis no cluster. Assim que o Driver criar e empacotar o
tarefas, ele negocia com o Gerente de Cluster para nós de Trabalho. Após a negociação (que resulta na alocação
de recursos para executar a aplicação spark), o Gerenciador de Cluster lança Executores em nós de Trabalho e permite
O driver conhece os Executores nos Workers. Com base na colocação dos Executores e sua acessibilidade a
dados, o Driver distribui as tarefas. Uma vez que os Executores estejam prontos para começar a tarefa, eles se registram
eles mesmos com o Driver, para que o Driver possa ter uma visão completa dos Executores e monitorá-los durante a tarefa
execução. Algumas das tarefas são dependentes dos dados de saída de outras tarefas. Nessas situações, o Driver é
responsável por agendar essas tarefas futuras em locais apropriados com base na localização onde os dados podem ser obtidos
em cache ou persistido.
Enquanto a Aplicação Spark está sendo executada no driver, ela expõe informações através da Web UI para o usuário. Uma vez que
SparkContext está parado, os Executors são encerrados.
Serviços Financeiros
Identificar transações fraudulentas e adaptar-se às novas técnicas de fraude e atualizar o modelo em tempo real é
necessário.
Na identificação do padrão de compra de ações do cliente e na realização de previsões para vendas de ações, etc.
2. Mercado de Varejo Online
Gigantes do varejo online como Alibaba, Amazon e eBay usam o Spark para análises de clientes, como sugerir um produto com base em
o histórico de navegação de compras de produtos, registro de transações etc.
3. Análise de Despesas
A Concur está usando Spark para personalização e análise de viagens e despesas.
Um grande número de empresas e organizações está utilizando o Apache Spark. A lista completa está disponívelaqui.
Resumo
Este artigo fornece uma boa introdução sobre o que é o Apache Spark; características do Apache Spark; seu
diferenças com o Apache Spark; quais módulos estão presentes no Apache Spark; diferentes operações disponíveis em
os módulos e finalmente alguns dos casos de uso em tempo real.
RDD do Spark
⊩ Spark RDD
⊩ Spark Parallelizar
Spark Dataset
⊩ Modelagem de Tópicos
Spark SQL
Brilhar Outros
⊩ Perguntas de Entrevista sobre Spark