Explicação da arquitectura tez Apache

Estava a tentar ver o que faz o Apache Tez com o Hive muito mais rápido do que o mapa reduzir com o hive. Não consigo entender o conceito de DAG.
Qualquer um tem uma boa referência para entender a arquitetura do Apache tez.

Author: hjamali52, 2014-08-27

5 answers

A apresentação do cume Hadoop (slide 35) discutiu como a abordagem DAG é óptima versus o paradigma MapReduce:

Http://www.slideshare.net/Hadoop_Summit/murhty-saha-june26255pmroom212

Basicamente, permitirá que Ferramentas de nível mais elevado (como a colmeia e O Porco) definam os seus passos gerais de processamento (também conhecido como workflow, também conhecido como gráfico acíclico dirigido) antes do início do trabalho. Um DAG é um gráfico de todos os passos necessários para completar o trabalho (Consulta de colmeia, trabalho de porco, etc.). Porque os passos de todo o trabalho podem ser computados antes do tempo de execução, o sistema pode tirar vantagem dos resultados intermédios do trabalho de cache "na memória". Enquanto que, em MapReduce todos os dados intermediários entre as fases de MapReduce exigiam escrita para HDFS (disco) adicionando latência.

O fio também permite a reutilização de contentores para tarefas de Tez. Por exemplo, cada servidor é picado em vários "contentores" em vez de "mapas" ou "reduzir" fendas. Para qualquer ponto dado na execução do trabalho, isto permite que o Tez use o conjunto inteiro para as fases do mapa ou as fases de redução conforme necessário. Enquanto que em Hadoop v1 antes do fio, o número de slots de mapa (e reduzir slots) foram fixos/hard codificados ao nível da plataforma. Uma melhor utilização de todos os recursos disponíveis dos clusters conduz geralmente a uma maior rapidez

 8
Author: Wes Floyd, 2014-11-25 14:25:48

Ainda não estou a usar Tez, mas li sobre isso. Acho que as duas principais razões que farão a colmeia correr mais rápido sobre o Tez são:

  1. o Tez partilhará os dados entre o mapa reduzirá os postos de trabalho na memória quando possível, evitando a sobrecarga de escrita/ leitura de / para HDFS
  2. com o Tez, poderá executar vários mapas / reduzir os DAGs definidos na colmeia, numa sessão de Tez, sem necessidade de iniciar um novo mestre de aplicação de cada vez.

Você pode encontrar uma lista de links que irá ajudá-lo para entender melhor o Tez aqui: http://hortonworks.com/hadoop/tez/

 3
Author: Geeky, 2014-08-29 18:35:38

O Apache tez representa uma alternativa ao tradicional MapReduce que permite que os empregos satisfaçam as exigências de tempos de resposta rápidos e de rendimento extremo à escala de petabyte.

Aplicações de processamento de dados de Nível Superior como o Hive e o Pig precisam de uma estrutura de execução que possa expressar a sua complexa lógica de consulta de uma forma eficiente e depois executá-la com elevado desempenho, que é gerida pelo Tez. Tez atinge este objetivo modelando o processamento de dados não como um único trabalho, mas sim como um trabalho como um gráfico de fluxo de dados.

... com vértices no gráfico representando a lógica da aplicação e arestas representando o movimento de dados. Uma API de definição rica de dataflow permite que os usuários expressem lógica de consulta complexa em um forma intuitiva e é um ajuste natural para planos de consulta produzidos por nível superior aplicações declarativas como colmeia e porco... [The] dataflow pipeline can be expressed as um único trabalho de Tez que fará todo o cálculo. Expandir este gráfico lógico em o gráfico físico das tarefas e executá-lo é tratado por Tez.

API de processamento de dados no Apache tez blog post descreve uma API Java simples usada para expressar um DAG de processamento de dados. A API tem três componentes

DAG . isto define o trabalho global. O usuário cria um objeto DAG para cada trabalho de processamento de dados.

Vertex . isto define a lógica do utilizador e os recursos e ambiente necessários para executar a lógica do utilizador. O o usuário cria um objeto de vértices para cada passo na tarefa e adiciona-o ao DAG.

Edge. isto define a conexão entre os vértices produtor e consumidor. O usuário cria um objeto de aresta e conecta os vértices produtor e consumidor usando-o.

As propriedades da aresta definidas pelo Tez permitem-lhe instanciar as tarefas do utilizador, configurar as suas entradas e Saídas, programá-las adequadamente e definir como encaminhar os dados entre as tarefas. Tez também permite definir paralelismo para cada execução de vértices, especificando a orientação do utilizador, o tamanho dos dados e os recursos.

Movimento dos Dados : define o encaminhamento dos dados entre as tarefas ◦1-A-1: Os dados das rotas das tarefas do produtor i-ésimo para a tarefa do consumidor i-ésimo.

Difusão : dados de rotas de trabalho de um produtor para todas as tarefas de consumo.

Scatter-Gather : As tarefas do produtor dispersam os dados em fragmentos e as tarefas do consumidor recolhem os fragmentos. O i-ésimo fragmento de todos tarefas do produtor rotas para a ith tarefa do consumidor.

Programação Define quando uma tarefa do consumidor é programada ◦sequencial: a tarefa do consumidor pode ser programada após a conclusão de uma tarefa do produtor. concorrente : a tarefa do consumidor deve ser co-programada com uma tarefa do produtor.

Fonte de Dados : define o tempo de vida/fiabilidade de uma saída de tarefa ◦persistiu: a saída estará disponível após a saída da tarefa. A saída pode ser perdida mais tarde. Persisted-Reliable : a saída é armazenada de forma fiável e estará sempre disponível efémero : a produção só está disponível enquanto a tarefa do produtor está a decorrer.

Detalhes adicionais sobre a arquitectura Tez são apresentados neste Apache tez Design Doc.

 3
Author: abhijeet dhumal, 2014-12-02 05:41:04

A principal diferença para o MR e o TEZ é escrever dados intermédios para o disco local no Mr. mas, no TEZ, ou a funcionalidade mapper / redutor será executada numa única instância em cada contentor usando em memória. Além disso, a TEZ realiza operações como transações ou ações em operações de faísca.

 0
Author: Kiran Teja Avvaru, 2017-06-11 03:45:43

O tez é uma arquitectura DAG (gráfico acíclico dirigido). Um mapa típico de redução de Tarefas tem os seguintes passos:

  1. Ler os dados do ficheiro -- > um acesso ao disco

  2. Corre mappers

  3. Gravar a saída do mapa --> segundo acesso ao disco

  4. Executar o shuffle e ordenar --> ler o resultado do mapa, terceiro acesso ao disco

  5. Write shuffle and sort -- > write tried data for reducers -- > fourth disk access

  6. Redutores de execução ordenados dados -- > saída do quinto disco

  7. Saída de redutores de Escrita -- > acesso ao sexto disco

Tez funciona muito semelhante à faísca (o Tez foi criado pela Hortonworks muito antes da faísca):

  1. Execute o plano, mas não precisa ler os dados do disco.

  2. Uma vez pronto para fazer alguns cálculos (semelhante a ações em faísca), obter os dados do disco e executar todos os passos e produzir saída.

Só uma leitura e uma escrita.

Reparem no eficiência introduzida por não ir ao disco várias vezes. Os resultados intermédios são armazenados na memória (não escritos em discos). Além disso, há Vectorização (lote de processo de linhas em vez de uma linha de cada vez). Tudo isso aumenta a eficiência em tempo de consulta.

Referências http://www.slideshare.net/Hadoop_Summit/w-235phall1pandey https://community.hortonworks.com/questions/83394/difference-between-mr-and-tez.html

 0
Author: Ketan Keshri, 2017-07-31 06:37:36