Faísca do apache
| faísca do apache | ||
|---|---|---|
![]() | ||
| 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 | ||
| ||
| 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 |
|---|---|---|---|
| 0,5 | 12-06-2012 | 0.5.1 | 07-10-2012 |
| 0,6 | 14-10-2012 | 0.6.2 | 07-02-2013 [ 5 ] |
| 0,7 | 27-02-2013 | 0.7.3 | 16-07-2013 |
| 0,8 | 25-09-2013 | 0.8.1 | 19-12-2013 |
| 0,9 | 02-02-2014 | 0.9.2 | 23-07-2014 |
| 1,0 | 30-05-2014 | 1.0.2 | 05-08-2014 |
| 1.1 | 11-09-2014 | 1.1.1 | 26-11-2014 |
| 1.2 | 18-12-2014 | 1.2.2 | 17-04-2015 |
| 1.3 | 13-03-2015 | 1.3.1 | 17-04-2015 |
| 1,4 | 06-11-2015 | 1.4.1 | 15-07-2015 |
| 1,5 | 09-09-2015 | 1.5.2 | 09-11-2015 |
| 1,6 | 01-04-2016 | 1.6.3 | 11-07-2016 |
| 2,0 | 26-07-2016 | 2.0.2 | 14-11-2016 |
| 2.1 | 28-12-2016 | 2.1.3 | 26-06-2018 |
| 2.2 | 11-07-2017 | 2.2.3 | 11-01-2019 |
| 23 | 28-02-2018 | 2.3.4 | 09-09-2019 |
| 2.4 | 11-02-2018 | 2.4.7 | 12-10-2020 [ 6 ] |
| 3,0 | 18-06-2020 | 3.0.2 | 19-02-2020 [ 7 ] |
| 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 | |||
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:
- Spark autônomo (nativo do cluster Spark)
- FIO do Hadoop
- Apache Mesos . [ 17 ]
Para armazenamento distribuído, o Spark apresenta interfaces para uma ampla variedade de plataformas:
- Sistema de Arquivos Distribuídos Hadoop (HDFS) [ 18 ]
- Sistema de arquivos MapR (MapR-FS) [ 19 ]
- Cassandra [ 20 ]
- OpenStackSwift
- Amazon S3
- Azure Databricks
- Kudu
- Ele ainda suporta uma solução personalizada.
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
- ^ 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 .
- ↑ Spark estabelece oficialmente um novo recorde em classificação em larga escala
- ↑ Desenvolvimento de atividade Open HUB Spark
- ^ "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 .
- ^ "SparkNews" . apache.org . Recuperado em 30 de março de 2017 .
- ^ "SparkNews" . apache.org .
- ^ "SparkNews" . apache.org .
- ^ "SparkNews" . apache.org .
- ↑ 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).
- ^ "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”.
- ^ "Lista de depreciação Spark 2.2.0" . apache.org . 11 de julho de 2017 . Recuperado em 10 de outubro de 2017 .
- ↑ 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 .
- ↑ 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 ".
- ↑ 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.
- ↑ Xin, Reynolds; Rosen, Josh; Zaharia, Matei; Franklin, Michael; Shenker, Scott; Stoica, Ion (junho de 2013). Shark: SQL e Rich Analytics em escala .
- ↑ Harris, Derrick (28 de junho de 2014). "4 razões pelas quais o Spark poderia levar o Hadoop ao hiperdrive" . gigaom .
- ↑ "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 .
- ↑ Figura mostrando o Spark em relação a outros projetos de software de código aberto, incluindo o Hadoop
- ↑ Matriz de suporte ao ecossistema MapR
- ↑ 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 .
