Neste blog, discutiremos sobre Junção do lado do mapa e suas vantagens sobre a operação normal de junção em Colmeia .Este é um conceito importante que você precisa aprender para implementar seu .Mas antes de saber sobre isso, devemos primeiro entender o conceito de 'Junte-se' e o que acontece internamente quando realizamos a junção Colmeia .
Junte-se é uma cláusula que combina os registros de duas tabelas (ou Conjuntos de Dados).
Suponha que temos duas tabelas A e B. Quando executamos a operação de junção nelas, ela retornará os registros que são a combinação de todas as colunas de A e B.
php converter array para objeto
Agora vamos entender a funcionalidade da junção normal com um exemplo ..
Sempre que aplicamos a operação de junção, o trabalho será atribuído a uma tarefa Map Reduce que consiste em duas fases - a ‘Estágio do mapa 'E um' Reduzir estágio ’. O trabalho de um mapeador durante o estágio de mapa é 'ler' os dados das tabelas de junção e para 'Retorna' a ‘Chave de junção’ e ‘Valor de junção’ par em um arquivo intermediário. Além disso, no estágio de reprodução aleatória, esse arquivo intermediário é classificado e mesclado. O trabalho do redutor durante o estágio de redução é pegar esse resultado classificado como entrada e concluir a tarefa de junção.
A união do lado do mapa é semelhante a uma união, mas toda a tarefa será executada apenas pelo mapeador.
A união do lado do mapa será mais adequada para pequenas tabelas para otimizar a tarefa.
Como a junção do lado do mapa otimizará a tarefa?
Suponha que temos duas mesas, das quais uma delas é uma pequena mesa. Quando enviamos uma tarefa de redução de mapa, uma tarefa local de redução de mapa será criada antes da tarefa de redução de mapa de junção original, que lerá os dados da pequena tabela do HDFS e os armazenará em uma tabela hash na memória. Após a leitura, ele serializa a tabela de hash na memória em um arquivo de tabela de hash.
Na próxima etapa, quando a tarefa Map Reduce de junção original está em execução, ela move os dados no arquivo da tabela de hash para o cache distribuído do Hadoop, que preenche esses arquivos para cada disco local do mapeador. Portanto, todos os mapeadores podem carregar esse arquivo de tabela hash persistente de volta na memória e fazer o trabalho de junção como antes. O fluxo de execução da junção do mapa otimizado é mostrado na figura abaixo. Após a otimização, a pequena tabela precisa ser lida apenas uma vez. Além disso, se vários mapeadores estiverem em execução na mesma máquina, o cache distribuído só precisa enviar uma cópia do arquivo da tabela hash para esta máquina.
Vantagens de usar a junção do lado do mapa:
- A junção do lado do mapa ajuda a minimizar o custo incorrido para classificação e fusão no embaralhar e reduzir estágios.
- A junção do lado do mapa também ajuda a melhorar o desempenho da tarefa, diminuindo o tempo para terminar a tarefa.
Desvantagens da junção do lado do mapa:
- A junção do lado do mapa é adequada apenas quando uma das tabelas nas quais você executa a operação de junção do lado do mapa é pequena o suficiente para caber na memória. Portanto, não é adequado realizar a junção do lado do mapa nas tabelas que são grandes dados em ambas.
Exemplo simples para junções de redução de mapa:
Vamos criar duas tabelas:
- Emp : contém detalhes de um funcionário, como nome do funcionário, ID do funcionário e o departamento ao qual ela pertence.
- Departamento: contém os detalhes como o nome do departamento, ID do departamento e assim por diante.
Crie dois arquivos de entrada conforme mostrado na imagem a seguir para carregar os dados nas tabelas criadas.
funcionário.txt
dept.txt
Agora, vamos carregar os dados nas tabelas.
Deixe-nos realizar o Lado do mapa Junte-se nas duas tabelas para extrair a lista de departamentos em que cada funcionário está trabalhando.
tableau como criar um conjunto
Aqui o segundo departamento de mesa é uma pequena mesa. Lembre-se de que sempre o número de departamentos será menor do que o número de funcionários em uma organização.
Agora vamos realizar a mesma tarefa com a ajuda da junção do lado Reduzir normal.
Ao executar ambas as junções, você pode encontrar as duas diferenças:
A junção com redução de mapa concluiu o trabalho em menos tempo quando comparada com o tempo gasto na junção normal.
A junção de redução de mapa concluiu seu trabalho sem a ajuda de qualquer redutor, enquanto a junção normal executou essa tarefa com a ajuda de um redutor.
Conseqüentemente, Junção do lado do mapa é a sua melhor aposta quando uma das tabelas é pequena o suficiente para caber na memória para concluir o trabalho em um curto espaço de tempo.
java sair de um método
Dentro Ambiente em tempo real , você terá conjuntos de dados com uma grande quantidade de dados. Portanto, realizar a análise e recuperar os dados consumirá muito tempo se um dos conjuntos de dados for de tamanho menor. Em tais casos Junção do lado do mapa ajudará a concluir o trabalho em menos tempo.
Nunca houve um momento melhor para dominar o Hadoop! Comece agora com o curso de Big Data e Hadoop especialmente curado por Edureka.
Referências:
https://www.facebook.com/notes/facebook-engineering/join-optimization-in-apache-hive/470667928919
Postagens relacionadas:
7 maneiras pelas quais o treinamento de Big Data pode mudar sua organização