0% acharam este documento útil (0 voto)
5 visualizações6 páginas

Guia Completo do Apache Spark

Apache Spark é um motor de análise de dados que fornece processamento de tarefas distribuídas, um agendador de jobs e funcionalidade básica de I/O. Ele expõe esses componentes por meio de APIs para Java, Python, Scala e R. Este documento fornece uma visão geral dos conceitos do Spark, como RDDs e DataFrames/Datasets, bem como as capacidades de aprendizado de máquina do Spark MLlib. Também discute como o Spark se encaixa no ecossistema de big data como uma alternativa mais rápida ao Hadoop para processamento de dados em lote e em streaming.

Traduzido por

ScribdTranslations
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
5 visualizações6 páginas

Guia Completo do Apache Spark

Apache Spark é um motor de análise de dados que fornece processamento de tarefas distribuídas, um agendador de jobs e funcionalidade básica de I/O. Ele expõe esses componentes por meio de APIs para Java, Python, Scala e R. Este documento fornece uma visão geral dos conceitos do Spark, como RDDs e DataFrames/Datasets, bem como as capacidades de aprendizado de máquina do Spark MLlib. Também discute como o Spark se encaixa no ecossistema de big data como uma alternativa mais rápida ao Hadoop para processamento de dados em lote e em streaming.

Traduzido por

ScribdTranslations
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

Tutorial 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.

Tutorial do Apache Spark

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.

Para começar com os conceitos e a configuração do Apache Spark Core:

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

Exemplo de Aplicação Spark usando Pythonpara começar a programar Aplicativos Spark.


Configurar o Ecossistema Apache Spark
Configurar Aplicação Spark– Tutorial do Apache Spark para aprender como configurar uma Aplicação Spark como número de
Núcleos do Driver Spark, Master Spark, Modo de Implantação, etc.
Configurando o Ambiente Spark
Configurar Registrador

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

Spark – Ler vários arquivos de texto em um único RDD


Spark – RDD com objetos de classe personalizados

Spark RDD Mapa


Redução RDD do Spark
Spark RDD FlatMap
Filtro RDD do Spark
Spark RDD Distinto
RDD do Spark com Objetos de Classe Personalizados

Spark RDD foreachiterar sobre cada elemento do Conjunto de Dados Distribuído.


Leia o arquivo JSON para RDD

Conjunto de Dados Spark

Ler arquivo JSON para DataSet do Spark


Escreva o DataSet do Spark em um arquivo JSON

Adicionar nova coluna ao DataSet do Spark


Concatenar Conjuntos de Dados do Spark

Spark MLlib – Tutorial do Apache Spark


Uma explicação detalhada com um exemplo para cada um dos disponíveisaprendizado de máquinaos algoritmos estão fornecidos abaixo :

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

Recomendação usando Mínimos Quadrados Alternados (ALS)


Agrupamento usando KMeansTutorial do Apache Spark para entender o uso do Algoritmo KMean no Spark MLlib para
Agrupamento.
Agrupamento usando Misturas Gaussianas
Modelagem de Tópicos no Sparkusando Condições de Dirichlet Latentes
Conjuntos de Itens Frequentes

Regras de Associação
Mineração de Padrões Sequenciais

Como o Spark entrou no Ecossistema de Big Data

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

Segue algumas das diferenças entre Hadoop e Spark:

Processamento de Dados

O Hadoop é capaz apenas de processamento em lote.

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.

Suporte a bancos de dados existentes


O Hadoop pode processar apenas os dados presentes em um sistema de arquivos distribuído (HDFS).

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.

Recursos do Apache Spark

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.

Suporte a fontes de dados


O Spark pode acessar dados no HDFS, HBase, Cassandra, Tachyon, Hive e qualquer fonte de dados do Hadoop.

Ambientes de Execução
Spark pode rodar em: máquina autônoma em modo de cluster, Hadoop, Apache Mesos ou na nuvem.

Arquitetura de Runtime do Apache Spark

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.

Uso do Apache Spark


Apache Spark está sendo usado na resolução de alguns dos interessantes problemas de produção em tempo real e a seguir estão
poucos dos cenários :

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.

Aprenda Apache Spark

⊩ Tutorial do Apache Spark

⊩ Instalar o Spark no Ubuntu

⊩ Instale o Spark no Mac OS

⊩ Scala Spark Shell - Exampo

⊩ Shell Python Spark - PySpark

⊩ Configurar Projeto Java com Spark

⊩ Aplicação Spark Scala - Exemplo de Contagem de Palavrasmpo

⊩ Aplicação Python Spark

⊩ Spark DAG e Plano de Execução Física

⊩ Configurar Cluster Spark

⊩ Configurar o Ecossistema Spark

⊩ Configurar Aplicativo Spark

⊩ Gerenciadores de Cluster Spark

RDD do Spark

⊩ Spark RDD

⊩ Spark RDD - Imprimir Conteúdos do RDD

⊩ Spark RDD - foreach


⊩ RDD do Spark - Criar RDD

⊩ Spark Parallelizar

⊩ Spark RDD - Ler arquivo de texto para RDD

⊩ Spark RDD - Ler Vários Arquivos de Texto em um Único RDD

⊩ Spark RDD - Ler arquivo JSON para RDD

⊩ Spark RDD - Contendo Objetos de Classe Personalizada

⊩ Spark RDD - Mapear

⊩ Spark RDD - FlatMap

⊩ Spark RDD - Filtrar

⊩ Spark RDD - Distinct

⊩ Spark RDD - Reducaoce

Spark Dataset

⊩ Spark - Ler arquivo JSON para Dataset

⊩ Spark - Escrever Conjunto de Dados em arquivo JSON

⊩ Spark - Adicionar nova ColumntoDconjunto de dados

⊩ Spark - Concatenar Conjuntos de Dados

Spark MLlib (Biblioteca de Aprendizado de Máquina)

⊩ Tutorial do Spark MLlib

⊩ Agrupamento e Classificação KMeans

⊩ DeceuClassificação de Árvore de Decisão

⊩ Classificação de Floresta Aleatória

⊩ Classificação Naive Bayes

⊩ Classificação por Regressão Logística

⊩ Modelagem de Tópicos

Spark SQL

⊩ Tutorial de Spark SQL

⊩ Spark SQL - Carregar arquivo JSON e executar consulta SQL

Brilhar Outros
⊩ Perguntas de Entrevista sobre Spark

Você também pode gostar