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?


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.


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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.