Combinação de conhecimento básico do Hadoop

Combinação de conhecimento básico do Hadoop

Um, estrutura básica do hadoop

1. O que é big data? Quais são as características?

Dados massivos, dados que não podem ser coletados e gerenciados com ferramentas tradicionais e exigem alto poder de computação.
Recursos:
Volume 4V : Grande tráfego
Variedade:
Velocidade diversificada : Alta velocidade
Valor: Baixo valor A
teoria vem do artigo bigtable do Google

2. Estrutura de código aberto de big data do Hadoop

O projeto de código aberto de nível superior do Apache, a fim de resolver o problema de armazenamento distribuído de big data e computação distribuída de big data, é produzida uma estrutura de código aberto.
A diferença entre big data distribuído e distribuído
tradicional é tradicionalmente distribuída. A comparação do distribuído tradicional depende do desempenho de cada nó. A velocidade de execução, que nó é lento, avisa o desempenho de qual nó.
Big data é distribuído para usar espaço para melhorar o desempenho.
Componente principal:
Estrutura de armazenamento distribuído: hdfs
Estrutura de computação distribuída:
estrutura de gerenciamento distribuído MapReduce : yarn (hadoop 2. x start)

Dois, hdfs

1. O que é hdfs

É essencialmente um sistema de arquivos, mas é um sistema de arquivos distribuído. Os arquivos grandes armazenados são divididos em vários blocos de blocos e armazenados em nós diferentes. Ao mesmo tempo, há vários dados de backup em outros nós. A segurança é alta e é adequado para processar arquivos grandes. Arquivo (GB ~ PB)
Insira a descrição da imagem aqui

2. O processo de gravação de arquivos:

O cliente envia uma solicitação de gravação para o namenode, e o namenode lê as informações de fsimage e edita para verificar se é gravável;
se for gravável, ele precisa calcular as informações de bloco do arquivo gravado, gerar informações de metadados, gravá-las nas edições e enviá-lo de volta de forma síncrona Lado do cliente; O
lado do cliente primeiro grava no datanode mais próximo nos metadados, e este datanode espalha solicitações para outros datanodes;
depois que todas as gravações são concluídas, todos os datanodes relatam as informações completas para o namenode ;
namenode confirma as edições de gravação (Salvar), caso contrário, as edições serão excluídas; as
edições e fsimage serão copiadas e mescladas pelo secondaryNamenode (processado em tempo livre);
Existem fotos no ppt

3. O processo de leitura de arquivos:

O cliente envia uma solicitação ao namenode, o namenode lê as informações de fsimage e edita e retorna as informações de metadados ao cliente de acordo com o endereço enviado pelo cliente. O cliente lê os dados do datanode mais próximo de acordo com as informações de metadados , e o datanode espalha a solicitação.
Existem fotos no ppt

4. Comandos comumente usados:

	(1) 客户端命令:hdfs  dfs
	hdfs dfs -mkdir -p  递归创建目录
	hdfs dfs -rmr   删除目录
	hdfs dfs -lsr   递归查看目录
	hdfs dfs -put 从本地目录hdfs的目录
	hdfs dfs -copyToLocal   hdfs的目录下载到本地目录
	hdfs dfs -appendToFile   追加文件
	(2) 管理命令:hdfsadmin
	(3) oev和oiv: 分别查看edits 和fsimage

5. As funções de trabalho de Namenode, datanode e secondaryNamenode

Namenode: gerencie metadados, interaja com clientes, gerencie datanode e secondaryNamenode
Datanode: responsável por ler e gravar dados, enviando pulsações para namenode regularmente.
SecondaryNamenode: namenode secundário mescla fsimage e editslog e é responsável por gerenciar o backup de dados

6 、 API Java

Configuration conf;   对象获取对应的配置信息
FileSystem fs;        由conf对象创建对象的文件系统
由文件系统执行各种增删改查等操作

Três, Fios

1. O papel do fio

Apresentado a partir do hadoop2.0, o objetivo principal é compartilhar a pressão de gerenciamento do MapReduce, e outros códigos de estrutura de computação MapReduce podem ser usados.

2 、 ResourceManager 和 NodeManager

Todas as solicitações de trabalho são gerenciadas pelo ResourceManager, que também gerencia o NodeManager.
NodeManager corresponde principalmente às tarefas do ResourceManager, gerencia o ciclo de vida do contêiner, envia pulsações para resourceManager e gerencia o consumo de recursos do datanode

3. O mecanismo de operação do Yarn

(1) Quando o cliente envia uma tarefa de computação, o ResourceManager aceita a solicitação, cria um Appmanager e o APPmanager realimenta os diretórios jobid e hdfs para o cliente, e o cliente carrega pacotes jar específicos e dados temporários e informações de dados de destino;

(2) ResourceManager cria ResourceSchedular após obter informações de metadados do namenode e gera um arquivo de cronograma bruto (planejamento do projeto) com base nas informações de metadados para obter os recursos que requerem vários datanodes e quantos blocos de dados cada datanode envolverá;

(3) O nodeManager com baixo consumo de recursos cria o AppMaster para replicar especificamente a operação do shedule.
O AppMaster primeiro vai para o diretório hdfs para obter pacotes jar específicos e arquivos temporários e outras informações, calcula os recursos específicos exigidos por cada datanode e relata para ResourceSchedular, atualiza o arquivo shedule e se aplica a permissões de recursos do AppManager ao mesmo tempo;

(4) Após o AppMaster obter a permissão, ele envia a tarefa de criação de Container para o NodeManager correspondente de acordo com o arquivo shedule. Cada Container cria um taskTraker correspondentemente, baixa pacotes jar e arquivos temporários de hdfs, cria tarefas específicas como MapTask e ReduceTask e começa a executar o pacote jar. Durante o processo de execução, o Container realimenta o progresso de cada estágio para o AppMaster em tempo real, e realimenta sua pulsação para o NodeManager. Depois que a execução é concluída, os resultados são retornados gradualmente ao lado do cliente. NameNode grava as edições correspondentes;
Insira a descrição da imagem aqui

四 、 MapReduce

1. Qual é a versão do MapReduce?
No hadoop 1.0, o cálculo de big data e o gerenciamento de tarefas de trabalho foram replicados, e o gerenciamento de tarefas de trabalho foi processado por jobTraker e taskTraker; no
hadoop 2.0, a função de computação distribuída de big data foi focada

2. O mecanismo de MapReduce
distribui as funções a serem executadas para cada nó na forma de um pacote jar, e cada nó executa a função do pacote jar.
A computação distribuída tradicional consiste em concentrar os dados do nó no nó de computação, e o nó de computação irá executá-lo uniformemente.

3. A
fase de mapa do fluxo de trabalho MapReduce : aceitar tarefas, fragmentos de texto correspondentes, dividir em linhas, formar pares de valores-chave <deslocamento, conteúdo de uma linha>, entrar na fase de Mapa, carregar arquivos de cache na configuração e ler no mapa Pegue uma linha de conteúdo para processamento de negócios, escreva-a por meio de pares de valores-chave e entre no buffer de anel até que exceda 80% e comece a estourar.
Estágio de embaralhamento: do início da gravação de estouro para o estágio de embaralhamento, partição (ou seja, o resultado de tomar o restante do número de nós após o hash da saída da chave pelo mapa) e classificação dos resultados da partição (classificação rápida ) para garantir que as partições de arquivos pequenos sejam ordenadas e mescladas. Para arquivos grandes, certifique-se de que a partição esteja ordenada. De acordo com os resultados da partição, o conteúdo da partição é distribuído aos nós correspondentes e um nó é mesclado em um arquivo grande para garantir a ordem na partição. De acordo com o agrupamento de chaves, o grupo correspondente a cada chave entra na fase de redução. A
fase de redução: Após a conclusão do processo de negócios, cada nó tem um arquivo e cada redutor grava os dados por sua vez
Insira a descrição da imagem aqui

4 、 API Java

TestMapper extends Mapper<LongWritable,Text,...,...>{
	Map(LongWritable key,Text value,Context context){
	对value做处理
	context.write(...,...);
	}
}

TestReducer extends Reducer<...,...,...,...>{
	Map(... key,Iterable<...> value,Context context){
	...
	}
}
TestDriver{
	Main{
		Configuration conf;   //模拟一个hadoop配置实例
		Job job=Job.getInstance(conf);  //模拟向这个hadoop发送job请求
		对driver、mapper和reducer等的配置
		对输出格式的映射
		对输入输出文件地址的映射
		运行
	}
}

Acho que você gosta

Origin blog.csdn.net/giantleech/article/details/115196679
Recomendado
Clasificación