Arquitetura Lambda - Como implementar a camada de mesclagem / camada de consulta

7

Estou lendo sobre a arquitetura lambda.

Faz sentido. temos ingestão de dados baseada em fila. temos um armazenamento na memória para dados que é muito novo e temos HDFS para dados antigos.

Portanto, temos todo o nosso conjunto de dados. no nosso sistema. muito bom.

mas o diagrama da arquitetura mostra que a camada de mesclagem é capaz de consultar a camada de lote e a camada de velocidade de uma só vez.

Como fazer isso?

Sua camada de lote é provavelmente um trabalho de redução de mapa ou uma consulta HIVE. A consulta da camada de velocidade é provavelmente um programa scala que está sendo executado na faísca.

Agora, como você irá mesclar isso?

Existe alguma orientação?

Não sabe muito
fonte
Você provavelmente está consultando a última saída conhecida do lote, não executando um processo em lote.
Sean Owen
ESTÁ BEM. Então, como mesclar a saída conhecida lats do lote com os dados de streaming armazenados no Spark discreto RDD?
Sabe Not Much

Respostas:

3

O que você está perguntando é, na minha opinião, o principal problema de implementar uma arquitetura lambda. Aqui estão algumas sugestões sobre como resolvê-lo.

A combinação do Spark e do Spark Streaming substitui amplamente a arquitetura lambda original (que geralmente envolvia o Hadoop e o Storm). Leia aqui um exemplo de como usar SparkContextae um separado StreamingContextpara produzir s diferentes RDD , um para resultados processados ​​em lote e outro para resultados em tempo real.

Depois de replicar isso no seu sistema, você ainda precisa pensar em como consultar os dois tipos de RDDs. O caso trivial seria apenas para os uniondois:

scala> rdd1.union(rdd2).collect

Ou talvez você possa criar um novo DStream, semelhante ao stateStreamexemplo vinculado, em que algumas chaves são mantidas para resultados em tempo real e outras para resultados em lote.

logc
fonte
isso significa que a arquitetura Lambda é um pouco de coisa de fadas arejada. fácil de falar nos slides e bonito, mas na realidade não é tão fácil de implementar.
Sabe Not Much
ou uma analogia melhor são os ratos que decidem "tocar o gato". ótima arquitetura ... mas quem vai fazer isso?
Sabe Not Much
3

Pelo que entendi dos objetivos da arquitetura lambda, seu ponto:

Sua camada de lote provavelmente é um trabalho de redução de mapa ou uma consulta HIVE.

Não é o que se pretendia. A camada em lote não deve ser consultada diretamente, mas alimenta uma camada de veiculação, possivelmente um simples armazenamento de valor-chave, para consultas de baixa latência.

diagrama de arquitetura lambda

Confira http://lambda-architecture.net/ para uma explicação mais completa.

dvdnglnd
fonte