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?
bigdata
apache-hadoop
Não sabe muito
fonte
fonte
Respostas:
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
SparkContext
ae um separadoStreamingContext
para produzir s diferentesRDD
, 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
RDD
s. O caso trivial seria apenas para osunion
dois:Ou talvez você possa criar um novo
DStream
, semelhante aostateStream
exemplo vinculado, em que algumas chaves são mantidas para resultados em tempo real e outras para resultados em lote.fonte
Pelo que entendi dos objetivos da arquitetura lambda, seu ponto:
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.
Confira http://lambda-architecture.net/ para uma explicação mais completa.
fonte