Notas de leitura de faísca de alto desempenho - Capítulo 2

1. tolerância a falhas

 

O Spark é tolerante a falhas, o que significa que o Spark não falhará, perderá dados ou retornará
resultados imprecisos no caso de uma máquina host ou falha na rede. O método exclusivo de
tolerância a falhas do Spark é alcançado porque cada partição dos dados contém a dependência

informações necessárias para recalcular a partição. A maioria dos paradigmas computacionais distribuídos
que permitem que os usuários trabalhem com objetos mutáveis ​​fornece tolerância a falhas
registrando atualizações ou duplicando dados nas máquinas

 

Por outro lado, o Spark não precisa manter um log de atualizações para cada RDD ou registrar as
etapas intermediárias reais, pois o próprio RDD contém todas as informações de dependência
necessárias para replicar cada uma de suas partições. Portanto, se uma partição for perdida, o RDD terá
informações suficientes sobre sua linhagem para recalculá-la e esse cálculo poderá ser
paralelo para acelerar a recuperação.

2. A única opção possível para computação em larga escala

Os
RDDs de disco , cujas partições são muito grandes para serem armazenadas na RAM em cada um dos
executores, podem ser gravados no disco. Essa estratégia é obviamente mais lenta para
cálculos repetidos, mas pode ser mais tolerante a falhas para longas sequências de
transformações e pode ser a única opção viável para enormes computações
.

 

3. RDD persistente usa o algoritmo de cache lru

Ao persistir
os RDDs, a implementação padrão dos RDDs remove a partição menos usada recentemente
(chamada cache LRU) se o espaço necessário for necessário para calcular ou armazenar em cache uma
nova partição.

4. As principais propriedades do RDD

Internamente, o Spark usa cinco propriedades principais para representar um RDD。


iterador partitions () (p, parentIters)

dependências ()

particionador ()

localizações preferenciais (p)

5 、 Tipos de RDDs

PairRDDFunctions,

OrderedRDDFunctions,

 GroupedRDDFunctions

 

6. Sobre ação

Cada programa Spark deve conter uma ação, pois as ações trazem informações de
volta ao driver ou gravam os dados no armazenamento estável.

Algumas dessas ações não são bem dimensionadas, pois podem causar
erros de memória no driver. Em geral, é melhor usar ações como
obter, contar e reduzir, que devolvem uma quantidade fixa de dados
ao driver, em vez de coletar ou fazer uma amostra.
 

7. Alocação de recursos

O Spark oferece duas maneiras de alocar recursos entre aplicativos: alocação estática e
alocação dinâmica

8. Sobre o impacto dos particionadores no rdd

as
mesmas operações em RDDs com particionadores conhecidos e RDDs
sem um particionador conhecido podem resultar em limites de estágio diferentes
, porque não há necessidade de embaralhar um RDD com uma
partição  conhecida

Publicado 30 artigos originais · elogiou 74 · 230.000 visualizações +

Acho que você gosta

Origin blog.csdn.net/ruiyiin/article/details/104738547
Recomendado
Clasificación