close

Faísca do apache

Ir para a navegação Ir para a pesquisa
faísca do apache
Logotipo do Spark
Informações gerais
tipo de programa Análise de dados, algoritmos de aprendizado de máquina
desenvolvedor Matei Zaharia
lançamento inicial 30 de maio de 2014
Licença Licença Apache 2.0
Estado atual Ativo
línguas Inglês
Informação técnica
Programado em Scala , Java , Python , R
Plataformas compatíveis Java
Versões
Última versão estável 2.4.52 de fevereiro de 2020
arquivos legíveis
arquivos editáveis
  • Valores Separados Por Virgula
  • Notação de Objeto JavaScript
  • Apache Parquet
  • documento de texto
  • Linha Colunar Otimizada
  • apache avro
Links

Apache Spark é uma estrutura de computação em cluster de código aberto . Foi desenvolvido originalmente na Universidade da Califórnia , no AMPLab de Berkeley . A base de código do projeto Spark foi posteriormente doada à Apache Software Foundation , que a mantém desde então. O Spark fornece uma interface para programar clusters completos com paralelismo de dados implícito e tolerância a falhas.

O Apache Spark pode ser considerado um sistema de computação em cluster orientado à velocidade e de uso geral. Fornece APIs em Java , Scala , Python e R. Também fornece um motor otimizado que suporta a execução de gráficos em geral. Ele também suporta um conjunto rico e extenso de ferramentas de alto nível, incluindo Spark SQL (para processamento de dados estruturados baseado em SQL ) , MLlib para implementação de aprendizado de máquina, GraphX ​​para processamento de gráficos e Spark Streaming.

História

O Spark foi originalmente desenvolvido por Matei Zaharia no AMPLab da UC Berkeley em 2009 . Foi lançado como código aberto em 2010 sob a licença BSD .

Em 2013 , o projeto foi doado à Apache Software Foundation e relicenciado para Apache 2.0 . Em fevereiro de 2014 , o Spark tornou-se um projeto Apache de nível superior . [ 1 ]

Em novembro de 2014, a empresa Databricks do fundador M. Zaharia estabeleceu um novo recorde mundial para classificação em larga escala usando o Spark. [ 2 ]

A partir de 2015 , Spark tinha mais de 1.000 colaboradores [ 3 ] tornando-se um dos projetos mais ativos da Apache Software Foundation [ 1 ] e um dos projetos de big data de código aberto mais ativos .

Dada a popularidade da plataforma por volta de 2014 , programas pagos como o General Assembly e bolsas gratuitas como The Data Incubator começaram a oferecer cursos de treinamento personalizados [ 4 ]

Versão Data da distribuição original Última versão Data de Distribuição
Versão antiga, sem suporte técnico:0,5 12-06-2012 0.5.1 07-10-2012
Versão antiga, sem suporte técnico:0,6 14-10-2012 0.6.2 07-02-2013 [ 5 ]
Versão antiga, sem suporte técnico:0,7 27-02-2013 0.7.3 16-07-2013
Versão antiga, sem suporte técnico:0,8 25-09-2013 0.8.1 19-12-2013
Versão antiga, sem suporte técnico:0,9 02-02-2014 0.9.2 23-07-2014
Versão antiga, sem suporte técnico:1,0 30-05-2014 1.0.2 05-08-2014
Versão antiga, sem suporte técnico:1.1 11-09-2014 1.1.1 26-11-2014
Versão antiga, sem suporte técnico:1.2 18-12-2014 1.2.2 17-04-2015
Versão antiga, sem suporte técnico:1.3 13-03-2015 1.3.1 17-04-2015
Versão antiga, sem suporte técnico:1,4 06-11-2015 1.4.1 15-07-2015
Versão antiga, sem suporte técnico:1,5 09-09-2015 1.5.2 09-11-2015
Versão antiga, sem suporte técnico:1,6 01-04-2016 1.6.3 11-07-2016
Versão antiga, sem suporte técnico:2,0 26-07-2016 2.0.2 14-11-2016
Versão antiga, sem suporte técnico:2.1 28-12-2016 2.1.3 26-06-2018
Versão antiga, sem suporte técnico:2.2 11-07-2017 2.2.3 11-01-2019
Versão antiga, sem suporte técnico:23 28-02-2018 2.3.4 09-09-2019
Versão antiga, com suporte técnico:2.4 11-02-2018 2.4.7 12-10-2020 [ 6 ]
Versão estável atual: 3,0 18-06-2020 3.0.2 19-02-2020 [ 7 ]
Versão estável atual: 3.1 02-03-2021 3.1.1 02-03-2021 [ 8 ]
Lenda:
Versão antiga
Versão antiga, com suporte técnico
Última versão
Última versão anterior
lançamento futuro

Introdução

A arquitetura do Apache Spark é baseada no chamado RDD ou Resilient Distributed DataSet, que é um multiconjunto somente leitura de itens de dados distribuídos em um cluster de máquinas que é mantido em um ambiente tolerante a falhas. [ 9 ]

No Spark 1.x, o RDD era a API principal, mas com o desenvolvimento do Spark 2.0, recomenda-se o uso da API DataSet. [ 10 ] embora a API RDD não seja considerada obsoleta. [ 11 ] ​[ 12 ]​ A tecnologia RDD ainda está presente no núcleo da API DataSet. [ 13 ]

O Spark e seus RDDs foram desenvolvidos em 2012 em resposta às limitações do paradigma de computação em cluster MapReduce que força o uso de uma estrutura de fluxo de dados linear em particular em programas distribuídos: programas baseados em MapReduce leem dados de entrada do disco, que mapeia uma função sobre o dados, reduz os resultados do mapa e armazena os resultados da redução no disco.

Spark RDDs funcionam como um conjunto de trabalho para programas distribuídos que oferecem uma forma (deliberadamente) restrita de memória compartilhada distribuída . [ 14 ]

O Spark facilita a implementação de algoritmos iterativos que visitam seu conjunto de dados muitas vezes no mesmo loop, bem como análise de dados interativa/exploratória (ou seja, um loop e análise de dados interativa/exploratória, ou seja, a consulta repetida de dados no estilo de banco de dados) .

A latência desses aplicativos pode ser reduzida em várias ordens de magnitude em comparação com a implementação baseada em MapReduce (comumente usada, ou seja, em pilhas baseadas em Apache Hadoop . [ 9 ] [ 15 ]

Além dos algoritmos do tipo iterativo, existem os algoritmos de treinamento para sistemas de aprendizado de máquina , que foram o impulso inicial para o desenvolvimento do Apache Spark. [ 16 ]

O Apache Spark requer um gerenciador de cluster e um sistema de armazenamento distribuído .

Para gerenciamento de cluster, o Spark oferece suporte às seguintes opções:

Para armazenamento distribuído, o Spark apresenta interfaces para uma ampla variedade de plataformas:

O Spark também oferece suporte a um modo pseudodistribuído local, normalmente usado apenas para ambientes de teste ou desenvolvimento em que o armazenamento distribuído não é necessário e o sistema de arquivos local pode ser usado; Em um cenário como esse, o Spark é executado em uma única máquina com um executor para cada núcleo de CPU .

Referências

  1. ^ a b "A Apache Software Foundation anuncia Apache™ Spark™ como um projeto de alto nível" . apache.org . Fundação de Software Apache. 27 de fevereiro de 2014 . Recuperado em 4 de março de 2014 . 
  2. Spark estabelece oficialmente um novo recorde em classificação em larga escala
  3. Desenvolvimento de atividade Open HUB Spark
  4. ^ "NY recebe novo bootcamp para cientistas de dados: é grátis, mas mais difícil de entrar do que Harvard" . VentureBeat . Recuperado em 21 de fevereiro de 2016 . 
  5. ^ "SparkNews" . apache.org . Recuperado em 30 de março de 2017 . 
  6. ^ "SparkNews" . apache.org . 
  7. ^ "SparkNews" . apache.org . 
  8. ^ "SparkNews" . apache.org . 
  9. a b Zaharia, Matei; Chowdhury, Mosharaf; Franklin, Michael J.; Shenker, Scott; Stoika, Íon. Spark: computação em cluster com conjuntos de trabalho . Workshop USENIX sobre Hot Topics em Cloud Computing (HotCloud). 
  10. ^ "Spark 2.2.0 Quick Start" . apache.org . 11 de julho de 2017 . Recuperado em 19 de outubro de 2017 . “recomendamos vivamente que mude para usar Dataset, que tem melhor desempenho que o RDD”. 
  11. ^ "Lista de depreciação Spark 2.2.0" . apache.org . 11 de julho de 2017 . Recuperado em 10 de outubro de 2017 . 
  12. Damji, Jules (14 de julho de 2016). "Um conto de três APIs do Apache Spark: RDDs, DataFrames e conjuntos de dados: quando usá-los e por quê" . databricks . com . Recuperado em 19 de outubro de 2017 . 
  13. Chambers, Bill (10 de agosto de 2017). "11" . Spark: The Definitive Guide (edição pré-impressa "Rough Cut"). Mídia O'Reilly . "praticamente todo o código Spark que você executa, onde DataFrames ou Datasets, compila para um RDD ". 
  14. Zaharia, Matei; Chowdhury, Mosharaf; Das, Tathagata; Dave, Ankur; Mãe, Justin; McCauley, Murphy; J., Michael; Shenker, Scott et ai. . Conjuntos de dados distribuídos resilientes: uma abstração tolerante a falhas para computação em cluster na memória . USENIX Sym. Projeto e Implementação de Sistemas em Rede. 
  15. Xin, Reynolds; Rosen, Josh; Zaharia, Matei; Franklin, Michael; Shenker, Scott; Stoica, Ion (junho de 2013). Shark: SQL e Rich Analytics em escala . 
  16. Harris, Derrick (28 de junho de 2014). "4 razões pelas quais o Spark poderia levar o Hadoop ao hiperdrive" . gigaom . 
  17. "Visão geral do modo de cluster - Documentação do Spark 1.2.0 - Tipos de gerenciador de cluster" . apache.org . Fundação Apache. 18 de dezembro de 2014 . Recuperado em 18 de janeiro de 2015 . 
  18. Figura mostrando o Spark em relação a outros projetos de software de código aberto, incluindo o Hadoop
  19. Matriz de suporte ao ecossistema MapR
  20. Doan, DuyHai (10 de setembro de 2014), " Re: cassandra + spark / pyspark ", lista de discussão do usuário Cassandra , http://mail-archives.apache.org/mod_mbox/cassandra-user/201409.mbox/ %3CCABNXB2DE5Apmvn1nNg79 [email protected]%3E , recuperado em 21-11-2014 .