HBase
 sql >> Base de Dados >  >> NoSQL >> HBase

O que é o InputSplit no Hadoop MapReduce?


Em nosso tutorial Hadoop anterior , estudamos o Hadoop Partitioner em detalhe. Agora vamos discutir o InputSplit no Hadoop MapReduce.

Aqui, abordaremos o que é o Hadoop InputSplit, a necessidade do InputSplit no MapReduce. Também discutiremos detalhadamente como esses InputSplits são criados no Hadoop MapReduce.


Introdução ao InputSplit no Hadoop


InputSplit é a representação lógica de dados no Hadoop MapReduce. Ele representa os dados que o mapeador individual processos. Assim, o número de tarefas de mapa é igual ao número de InputSplits. O framework divide a divisão em registros, que o mapeador processa.

O comprimento do MapReduce InputSplit foi medido em bytes. Cada InputSplit possui locais de armazenamento (sequências de nomes de host). O sistema MapReduce coloca as tarefas de mapa o mais próximo possível dos dados da divisão usando locais de armazenamento.

Processos do framework Mapeie as tarefas na ordem do tamanho das divisões para que a maior seja processada primeiro (algoritmo de aproximação guloso). Isso minimiza o tempo de execução do trabalho.

A principal coisa a focar é que o Inputsplit não contém os dados de entrada; é apenas uma referência aos dados.

Como os InputSplits são criados no Hadoop MapReduce?


Como usuário, não lidamos diretamente com o InputSplit no Hadoop, pois InputFormat (como InputFormat é responsável por criar o Inputsplit e dividir nos registros) o cria. FileInputFormat divide um arquivo em pedaços de 128 MB.

Além disso, definindo mapred .min .dividir .tamanho parâmetro em site mapred .xml o usuário pode alterar o valor conforme a necessidade. Além disso, podemos substituir o parâmetro no objeto Job usado para enviar um determinado trabalho MapReduce.

Ao escrever um InputFormat personalizado, também podemos controlar como o arquivo é dividido em divisões.

InputSplit é definido pelo usuário. O usuário também pode controlar o tamanho da divisão com base no tamanho dos dados no programa MapReduce. Portanto, em uma execução de trabalho MapReduce, o número de tarefas de mapa é igual ao número de InputSplits.

Chamando 'getSplit()' , o cliente calcula as divisões para o trabalho. Em seguida, ele é enviado ao mestre de aplicativos, que usa seus locais de armazenamento para agendar tarefas de mapa que as processarão no cluster.

Depois que a tarefa de mapa passa a divisão para o createRecordReader() método. A partir disso, obtém o RecordReader para a divisão. Em seguida, o RecordReader gera o registro (par chave-valor) , que passa para a função map.

Conclusão


Em conclusão, podemos dizer que, InputSplit representa os dados que o mapeador individual processa. Para cada divisão é criada uma tarefa de mapa. Portanto, InputFormat cria o InputSplit.

Se você tiver alguma dúvida sobre o InputSplit no MapReduce, por favor, deixe um comentário em uma seção abaixo.