Tudo o que você precisa saber para uma entrevista com o desenvolvedor do Hadoop

Tudo o que você precisa saber para uma entrevista com o desenvolvedor do Hadoop
Author

Simplilearn

Last updated May 22, 2018


  • 10223 Views

O número de empresas que adotam iniciativas de Big Data está aumentando nos últimos anos e elas estão produzindo resultados tangíveis. Um recente estudo da Harvard Business Review revela que mais de 80% dos executivos caracterizam seus investimentos em Big Data como bem-sucedidos. Os desenvolvedores do Hadoop estão liderando o caminho para muitas dessas implantações de big data, tornando-os um ativo valioso - mas também criando uma concorrência acirrada para os trabalhos disponíveis.

Há vários perfis de trabalho diferentes relacionados e dentro do domínio do Hadoop . Neste artigo, discutiremos algumas das questões mais comuns da entrevista no nível de entrada tanto para os aspirantes experientes (mas novos no Hadoop) quanto para os novos, e fatos adicionais que você precisará saber para assumir a experiência da entrevista.

O que é o framework Hadoop?

O Hadoop é um framework de código aberto escrito em Java e desenvolvido pela fundação de software Apache. Essa estrutura é usada para gravar aplicativos de software que processam grandes quantidades de dados. O framework funciona paralelamente em grandes clusters que podem ter milhares de computadores em um único nó e vários nós por cluster. Também processa dados de maneira confiável e tolerante a falhas. O modelo de programação base do Hadoop é baseado no MapReduce do Google.

O Hadoop é uma plataforma que oferece armazenamento distribuído e recursos computacionais. Ele foi inicialmente concebido para corrigir um problema de escalabilidade que existia no Nutch, um rastreador de código aberto e mecanismo de pesquisa. Na época, o Google publicou documentos que descreviam seu novo sistema de arquivos do Google (GFS) e Map-Reduce, uma estrutura computacional para processamento paralelo. A implementação bem-sucedida dos conceitos desses papéis no Nutch resultou na divisão em dois projetos separados, o segundo dos quais se tornou o Hadoop.

O que é o HDFS?

Os sistemas de arquivos que gerenciam o armazenamento em uma rede de máquinas são chamados de sistemas de arquivos distribuídos. O Hadoop vem com um sistema de arquivos baseado em Java chamado HDFS, que fornece armazenamento de dados escalável e confiável, projetado para abranger grandes clusters de servidores comuns. O HDFS tem muitas semelhanças com outros sistemas de arquivos distribuídos, mas é diferente em vários aspectos. Uma diferença notável é o modelo write-once-read-multiple times do HDFS que relaxa os requisitos de controle de concorrência, simplifica a coerência dos dados e permite o acesso de alto throughput.

Outro atributo exclusivo do HDFS é que geralmente é melhor localizar a lógica de processamento próxima aos dados em vez de mover os dados para o espaço do aplicativo. No HDFS, os blocos de dados são distribuídos pelas unidades locais de todas as máquinas de um cluster. O HDFS foi projetado para funcionar com o sistema MapReduce, no qual a computação é movida para os dados. O HDFS é executado em um cluster de máquinas e fornece redundância usando o protocolo de replicação.


Hadoop vs. Sistema Tradicional

O Hadoop foi projetado para processamento de dados grandes e distribuídos que trata de todos os arquivos no banco de dados, que é um tipo de processamento que leva tempo. Para tarefas em que o desempenho não é crítico, como a execução de relatórios do final do dia para revisar transações diárias, a varredura de dados históricos e a execução de análises em que um tempo de insight mais lento é aceitável, o Hadoop é ideal.

Por outro lado, nos casos em que as organizações confiam na análise de dados sensíveis ao tempo, um banco de dados tradicional é o melhor ajuste. Isso porque menos tempo para insight não é sobre a análise de grandes conjuntos de dados não estruturados, o que o Hadoop faz tão bem. Trata-se de analisar conjuntos de dados menores em tempo real ou quase em tempo real, que é o que os bancos de dados tradicionais estão bem equipados para fazer.

Os RDBMSs só funcionam melhor quando um modelo de relacionamento de entidade (modelo ER) é definido perfeitamente, uma vez que segue a regra 12 do Codd e, portanto, o esquema ou a estrutura do banco de dados pode crescer. A ênfase está na consistência forte, integridade referencial, abstração da camada física e consultas complexas por meio do SQL, enquanto a estrutura do Hadoop funciona muito bem com dados estruturados e não estruturados. Isso também suporta uma variedade de formatos de dados em tempo real, como XML, JSON e formatos de arquivo simples baseados em texto.


O que é o MapReduce?

MapReduce é um modelo de programação e uma implementação associada

MapReduce é um modelo de programação e uma implementação associada para processar e gerar grandes conjuntos de dados com um algoritmo distribuído paralelo em um cluster. Os jobs MapReduce geralmente dividem o conjunto de dados de entrada em partes independentes, enquanto uma tarefa Map processará esses fragmentos de maneira completamente paralela em diferentes nós. O trabalho do framework é classificar as saídas dos mapas. O redutor produz o resultado final com a ajuda da saída da etapa anterior.

Nervoso sobre sua entrevista? Inscreva-se no nosso curso Big Data Hadoop e entre na sua próxima entrevista com confiança.

Como funcionam as operações de leitura no Hadoop?

As operações de leitura / gravação no HDFS consistem em uma única arquitetura master + multiple slaves, onde o Namenode atua como mestre e os Datanodes como escravos. Todas as informações de metadados estão com o Namenode e os dados reais são armazenados nos Datanodes.

Leia a operação: DataFlair

1. O usuário solicita que o cliente HDFS leia um arquivo> O cliente abre o arquivo que deseja ler chamando open () no objeto FileSystem que, para o HDFS, é uma instância do DistributedFileSystem.

2. DistributedFileSystem chama o namenode,
2. DistributedFileSystem chama o namenode, usando chamadas de procedimento remoto (RPCs) e o cliente move a solicitação para NameNode.

3. O NameNode fornece informações sobre o bloco no qual o nó de dados tem o arquivo, e o cliente continua a ler os dados dos datanodes.

4. O DistributedFileSystem retorna um FSDataInputStream (um fluxo de entrada que suporta pesquisas de arquivos) para o cliente para que ele possa ler dados. O FSDataInputStream, por sua vez, envolve um DFSInputStream, que gerencia o E / S do datanode e do namenode.

5. O Cliente lê os dados de todos os datanodes em paralelo (para acessar rapidamente os dados em caso de qualquer falha de qualquer datanode, e é por isso que o Hadoop lê os dados em paralelo).

6. Após a conclusão da leitura, a conexão com o cluster do datanode é fechada. Durante a leitura, se o DFSInputStream encontrar um erro durante a comunicação com um datanode, ele tentará o próximo mais próximo para esse bloco. Também se lembrará de datanodes que falharam para que não sejam desnecessariamente repetidos para blocos posteriores.

Como funciona a operação de gravação no Hadoop?

Operação de gravação: autofei.wordpress.com

1. O usuário solicita que o cliente HDFS grave um arquivo. O cliente cria o arquivo chamando create () no DistributedFileSystem. DistributedFileSystem faz uma chamada RPC para o namenode para criar um novo arquivo no namespace do sistema de arquivos

2. O namenode executa vários
2. O namenode executa várias verificações para garantir que o arquivo ainda não exista e que o cliente tenha as permissões corretas para criar o arquivo.

3. Se estas verificações passarem, o namenode faz um registro do novo arquivo; caso contrário, a criação de arquivos falhará e o cliente receberá uma exceção IOException.

4. O DistributedFileSystem retorna um FSDataOutputStream para o cliente para começar a gravar dados.

5. Conforme o cliente grava dados, o DFSOutputStream o divide em pacotes, que são gravados em uma fila interna chamada fila de dados.

6. A fila de dados é consumida pelo DataStreamer, que é responsável por pedir ao namenode para alocar novos blocos, escolhendo uma lista de datanodes adequados para armazenar as réplicas.

7. A lista de datanodes forma um pipeline e, aqui, vamos supor que o nível de replicação é três, portanto, há três nós no pipeline. O DataStreamer faz o streaming dos pacotes para o primeiro datanode no pipeline, que armazena cada pacote e o encaminha para o segundo datanode no pipeline.

8. Da mesma forma, o segundo datanode armazena o pacote e o encaminha para o terceiro datanode no pipeline.

9. O DFSOutputStream também mantém uma fila interna de pacotes que estão aguardando para serem reconhecidos pelos datanodes, chamada de fila ack.

10. Um pacote é removido da fila de confirmação somente quando foi reconhecido por todos os datanodes no pipeline.

Quais são os nós de borda ou gateway?

Os nós de borda são a interface entre o cluster do Hadoop e a rede externa. Por esse motivo, eles são às vezes chamados de nós de gateway. Mais comumente, os nós de borda são usados ​​para executar aplicativos clientes e ferramentas de administração de cluster. Tipicamente Os nós de borda são mantidos separados dos nós que contêm serviços do Hadoop, como HDFS, MapReduce, etc, principalmente para manter os recursos de computação separados. Os nós de borda em execução no cluster permitem o gerenciamento centralizado de todas as entradas de configuração do Hadoop nos nós do cluster, o que ajuda a reduzir a quantidade de administração necessária para atualizar os arquivos de configuração.

O fato é que, considerando a segurança limitada do próprio Hadoop, mesmo que o cluster do Hadoop opere em uma rede local ou remota atrás de um firewall corporativo, convém considerar um firewall específico do cluster para proteger mais completamente os dados não públicos. que podem residir no cluster. Neste modelo de implantação, pense no cluster do Hadoop como uma ilha dentro de sua infraestrutura de TI - para cada ponte para essa ilha, você deve considerar um nó de borda para segurança.

O que é o fio Apache?

O Apache YARN (Yet Another Business Negotiator) é o sistema de gerenciamento de recursos do cluster do Hadoop. Originalmente descrito pelo Apache como um gerenciador de recursos redesenhado, o YARN é a estrutura de computação e gerenciamento de recursos de última geração do Apache Hadoop e foi introduzido no Hadoop 2 para melhorar a implementação do MapReduce, permitindo que o Hadoop suporte abordagens de processamento mais variadas e uma matriz mais ampla aplicações.

Diferença entre Mapr1 e

Diferença entre Mapr1 e Mapr2 (Yarn)?

No MapReduce 1, existem dois tipos de daemons que controlam o processo de execução da tarefa: um jobtracker e um ou mais tasktrackers.

O jobtracker coordena todas as tarefas executadas no sistema, agendando tarefas para serem executadas em tasktrackers.

Os Tasktrackers executam tarefas e enviam relatórios de progresso para o jobtracker, que mantém um registro do progresso geral de cada trabalho. Se uma tarefa falhar, o jobtracker poderá reagendar novamente em um tasktracker diferente. No MapReduce 1, o jobtracker cuida do agendamento do job (tarefas correspondentes aos tasktrackers) e do monitoramento do andamento da tarefa (acompanhamento de tarefas, reinicialização de tarefas com falha ou lentidão e agendamento de tarefas, como manter totais de contadores).

Em contraste, no YARN, essas responsabilidades são tratadas por entidades separadas - o gerenciador de recursos e um mestre de aplicativos (uma para cada tarefa MapReduce). O jobtracker também é responsável por armazenar o histórico de tarefas concluídas; no YARN, a função equivalente é a do servidor de linha de tempo, que armazena o histórico de aplicativos.

Como o Secondary NameNode Complement NameNode?

O namenode gerencia o namespace do sistema de arquivos. Ele mantém a árvore do sistema de arquivos e os metadados para todos os arquivos e diretórios na árvore.

Essas informações são armazenadas de forma persistente no disco local no formato de dois arquivos: a imagem do namespace e o log de edição. O namenode também conhece os datanodes nos quais todos os blocos de um determinado arquivo estão localizados; no entanto, ele não armazena os locais dos blocos de forma persistente, porque essas informações são reconstruídas dos datanodes quando o sistema é iniciado.

Também é possível executar um namenode secundário, que, apesar de seu nome, não atua como um namenode. Sua função principal é mesclar periodicamente o namespace imagem com o log de edição para evitar que o log de edição fique muito grande. O namenode secundário geralmente é executado em uma máquina física separada porque requer bastante CPU e tanto

memória como o namenode para realizar a mesclagem. Ele mantém uma cópia da imagem do namespace mesclado, que pode ser usada no caso de falha no namenode. No entanto, o estado do namenode secundário fica atrás do primário, portanto, no caso de falha total do primário, a perda de dados é quase certa.

O que é o gerenciador de recursos?

O rastreador de trabalho serve como um gerenciador de recursos e um servidor de histórico no MRv1, o que limita a escalabilidade. No YARN, a função do rastreador de tarefas é dividida entre um gerenciador de recursos separado e um servidor de histórico para melhorar a escalabilidade. ResourceManager (RM) é o principal que arbitra todos os recursos de cluster disponíveis e, assim, ajuda a gerenciar os aplicativos distribuídos em execução no sistema YARN. Ele funciona com os NodeManagers ( NMs ) por nó e os ApplicationMasters ( AMs ) por aplicativo. As responsabilidades do jobtracker são divididas entre o gerenciador de recursos e o mestre de aplicativos no YARN, tornando o serviço altamente acessível. A abordagem de divisão e conquista manipula o gerenciamento de recursos e o planejamento de tarefas nos sistemas Hadoop e suporta a análise e a condensação de conjuntos de dados em paralelo. Assim, o ResourceManager é basicamente limitado ao agendamento - ou seja, apenas arbitrando os recursos disponíveis no sistema entre os aplicativos concorrentes e não se preocupando com o gerenciamento de estado por aplicativo.

Fonte: HORTONWORKS

O que é o gerenciador de nó?

O equivalente YARN de um tasktracker é um gerenciador de nó. Os NodeManagers recebem instruções do ResourceManager e gerenciam recursos disponíveis em um único nó e, portanto, são chamados de agentes por nó. O NodeManager é o agente de estrutura por máquina / por nó que é responsável pelos contêineres, monitorando o uso de recursos e relatando o mesmo ao ResourceManager. Em contraste com um número fixo de slots para mapear e reduzir tarefas no MRV1, o NodeManager do MRV2 possui vários contêineres de recursos criados dinamicamente. Todos os processos contêineres executados em um nó escravo são inicialmente provisionados, monitorados e rastreados pelo daemon desse nó escravo.


O que é o Gerenciador de aplicativos?

ApplicationMasters são responsáveis ​​por negociar recursos com o ResourceManager e por trabalhar com NodeManagers para iniciar os contêineres. O ApplicationMaster se comunica com um cluster YARN e lida com a execução de aplicativos. As principais tarefas do ApplicationMaster estão se comunicando com o ResourceManager para negociar e alocar recursos para contêineres futuros e, após a alocação de contêiner, se comunicar com os NodeManagers para iniciar contêineres de aplicativos neles. O Gerenciador de aplicativos é o proprietário real do trabalho. Como o Application Manager é lançado em um contêiner que pode compartilhar um host físico com outros contêineres, devido à natureza de multilocação, entre outros problemas, ele não pode fazer nenhuma suposição de coisas como portas pré-configuradas que podem ser ouvidas.

O que é um contêiner?

Um contêiner é uma coleção de todos os recursos necessários para executar um aplicativo: núcleos de CPU, memória, largura de banda de rede e espaço em disco. Um contêiner implementado é executado como um processo individual em um nó escravo em um cluster do Hadoop. Um contêiner representa um recurso alocado no cluster. O ResourceManager é a única autoridade para alocar qualquer Container aos aplicativos. O Contêiner alocado está sempre em um único nó e possui um ContainerId exclusivo e tem uma quantidade específica de Recursos alocados.

O que é o WritableComparable?

WritableComparator é uma implementação de propósito geral do RawComparator para classes WritableComparable. O IntWritable implementa a interface WritableComparable, que é apenas uma subinterface das interfaces Writable e java.lang.Comparable: package org.apache.hadoop.io; interface pública WritableComparableextends Gravável, Comparável {}

O que é o NullWritable?

NullWritable é um tipo especial de gravável, pois tem uma serialização de comprimento zero. Nenhum byte é gravado ou lido no fluxo. É usado como um espaço reservado; Qualquer coisa escrita ou lendo NullWritables saberá de antemão que ele estará lidando com esse tipo. Por exemplo, no MapReduce, uma chave ou um valor pode ser declarado como NullWritable quando você não precisa usar essa posição, armazenando efetivamente um valor vazio constante. O NullWritable também pode ser útil como uma chave em um SequenceFile quando você deseja armazenar uma lista de valores, ao contrário dos pares de valores-chave.

Qual é o uso de

Qual é o uso do objeto de contexto?

O objeto Contexto permite que o mapeador interaja com o restante do ecossistema do Hadoop. Inclui dados de configuração para o trabalho, bem como interfaces que permitem a entrega da saída. Os objetos de contexto são usados ​​para emitir pares de valores-chave. A nova API faz uso extensivo de objetos de contexto que permitem que o código do usuário se comunique com o sistema MapReduce. O novo contexto, por exemplo, essencialmente unifica a função do JobConf, o OutputCollector e o Reporter da API antiga.

O que é um mapeador?

Mapas são as tarefas individuais que transformam registros de entrada em registros intermediários. Os registros intermediários transformados não precisam ser do mesmo tipo que os registros de entrada. Um determinado par de entrada pode mapear para zero ou para muitos pares de saída. A estrutura Hadoop MapReduce gera uma tarefa de mapa para cada InputSplit gerado pelo InputFormat para a tarefa.

Explique o Shuffle

O MapReduce garante que a entrada para cada redutor seja classificada por chave. O processo pelo qual o sistema realiza a ordenação - e transfere as saídas do mapa para os redutores como entradas - é conhecido como shuffle. Input to the Reducer é a saída ordenada dos mapeadores. Nesta fase, o framework busca a partição relevante da saída de todos os mapeadores, via HTTP.

Quais são os principais métodos e técnicas que o redutor usa?

O Redutor reduz e encolhe um conjunto de valores intermediários que compartilham uma chave com um conjunto menor de valores. A API do Reducer é muito semelhante à do Mapper: há um método run () que recebe um Contexto contendo a configuração da tarefa, bem como métodos de interface que retornam dados do próprio redutor para a estrutura. O método run () chama setup () uma vez e reduza () uma vez para cada tecla associada à tarefa de redução e limpeza () uma vez no final. Cada um desses métodos pode acessar os dados de configuração do trabalho usando Context.getConfiguration (). Assim como no Mapper, qualquer um ou todos esses métodos podem ser substituídos por implementações customizadas. Se nenhum desses métodos for substituído, a operação padrão do redutor é a função de identidade; os valores são passados ​​sem processamento adicional.

O coração do redutor é o método reduce (). Isso é chamado de uma vez por chave; o segundo argumento é um Iterable que retorna todos os valores associados a essa chave.

Qual é o uso do Combiner?

Muitas tarefas do MapReduce são limitadas pela largura de banda disponível no cluster, por isso, vale a pena minimizar os dados transferidos entre o mapa e reduzir as tarefas. A combinação funcionará como um Redutor, mas apenas no subconjunto da saída Chave / Valores de cada Mapeador. Combinadores são basicamente mini-redutores que diminuem a carga de trabalho, que é repassada para os redutores. Seu mapeador pode estar emitindo mais de um registro por chave e, em última instância, seria agregado e passado como uma única chamada no método redutor.

Portanto, se esses registros por chave puderem ser combinados antes mesmo de passá-los para os redutores, a quantidade de dados arrastados pela rede para obtê-los no redutor correto será reduzida, melhorando, em última análise, o desempenho do trabalho. É um componente ou classe opcional e pode ser especificado via Job.setCombinerClass (Class Name) para realizar a agregação local das saídas intermediárias, o que ajuda a reduzir a quantidade de dados transferidos do Mapeador para o Redutor. A função do combinador não substitui a função de redução, mas pode ajudar a reduzir a quantidade de dados embaralhados entre os mapeadores e os redutores, e por esse motivo, vale sempre a pena considerar se você pode usar uma função combinada em sua tarefa MapReduce.

O que é a Federação HDFS?

Vários namenodes independentes farão parte do cluster introduzido na série de versões 2.x, permitindo que um cluster seja dimensionado adicionando namenodes, cada um gerenciando uma parte do namespace do sistema de arquivos. Por exemplo, um namenode pode gerenciar todos os arquivos com raiz em / account, por exemplo, e um segundo namenode pode manipular arquivos em / finance.

O que é o cérebro dividido?

A mudança do Hadoop 1 para o Hadoop 2 complicou a parte NameNode. Um dos problemas comuns que não é exclusivo do cluster do Hadoop, mas afeta qualquer sistema distribuído, é um cenário de "divisão cerebral". Cérebro dividido é uma situação em que dois NameNodes decidem que ambos desempenham um papel ativo e começam a gravar alterações no log de edição. Para evitar que esse problema ocorra, a configuração de HA mantém um marcador no ZooKeeper, indicando claramente qual é o NameNode ativo e o JournalNodes aceita gravações apenas desse nó.

O que é esgrima?

A esgrima é uma técnica que aborda efetivamente o problema Split-Brain no Hadoop 2. Para ter certeza absoluta de que os dois NameNodes não se tornam ativos ao mesmo tempo, uma técnica chamada fence é usada durante o failover. A idéia é forçar o desligamento do NameNode ativo antes de transferir o estado ativo para um standby para evitar confusão, para fazer o que ele espera por algum tempo para garantir que o namenode ativo esteja inativo.

Como último recurso, o nó de nome previamente ativo pode ser cercado por uma técnica bastante conhecida graficamente como STONITH, ou "atire no outro nó na cabeça", que usa uma unidade de distribuição de energia especializada. forçar desligar a máquina host.

O que são contêineres?

Um contêiner executa um processo específico do aplicativo com um conjunto restrito de recursos (memória, CPU e assim por diante). Contêiner representa um recurso alocado no cluster. O ResourceManager é a única autoridade para alocar qualquer Container aos aplicativos. O contêiner alocado está sempre em um único nó e possui um ContainerId exclusivo. Tem uma quantidade específica de recursos alocados. Normalmente, um ApplicationMaster recebe o Container do ResourceManager durante a negociação de recursos e, em seguida, conversa com o NodManager para iniciar / parar contêineres.

O que é significado por instância de tarefa?

Instâncias de tarefas são as tarefas MapReduce reais que são executadas em cada nó escravo. O Rastreador de Tarefas inicia processos de JVM separados para realizar o trabalho real (conhecido como Instância de Tarefa) para garantir que a falha do processo não interrompa todo o rastreador de tarefas. Cada Instância da Tarefa é executada em seu próprio processo da JVM. Pode haver vários processos de instância de tarefa em execução em um nó escravo. Isso é baseado no número de slots configurados no rastreador de tarefas. Por padrão, um novo processo de instância da tarefa JVM é gerado para uma tarefa.

O que é Checksum?

A maneira usual de detectar dados corrompidos é computar uma soma de verificação para os dados quando eles entram no sistema pela primeira vez e, novamente, sempre que são transmitidos através de um canal que não é confiável e, portanto, capaz de corromper o sistema. dados. Datanodes são responsáveis ​​por verificar os dados que recebem antes de armazenar os dados e sua soma de verificação.

Isso se aplica a dados que eles recebem de clientes e de outros datanodes durante a replicação. Quando os clientes leem dados de datanodes, eles também verificam somas de verificação, comparando-as com as armazenadas nos datanodes. Cada datanode mantém um log persistente de verificações de soma de verificação, para que ele saiba a última vez que cada um de seus blocos foi verificado. Quando um cliente verifica com sucesso um bloco, ele informa ao datanode, que atualiza seu log. Manter estatísticas como essas é inestimável na detecção de discos defeituosos.

O que é serialização / desserialização?

Serialização é o processo de transformar objetos estruturados em um fluxo de bytes para transmissão em uma rede ou para gravação em armazenamento persistente. O objetivo é duplo: um, transmissão em uma rede (comunicação entre processos) e dois, para gravação em armazenamento persistente.

A desserialização é o processo inverso de transformar um fluxo de bytes em uma série de objetos estruturados. A serialização é usada em duas áreas bem distintas de processamento de dados distribuídos: para comunicação entre processos e para armazenamento persistente.

O que são chamadas de procedimento remoto (RPCs)?

No Hadoop, a comunicação entre processos entre nós em um sistema é realizada usando chamadas de procedimento remoto, ou seja, RPCs. O protocolo RPC usa serialização para transformar a mensagem em um fluxo binário a ser enviado para o nó remoto, que recebe e desserializa o fluxo binário para a mensagem original.

Espera-se que o formato de serialização de RPC seja:
1. Compact: Para utilizar eficientemente a largura de banda da rede.
2. Rápido: Muito pouca sobrecarga de desempenho é esperada para os processos de serialização e desserialização.
3. Extensível: Adaptar-se a novas mudanças e requisitos.
4. Interoperável: O formato precisa ser projetado para suportar clientes que estão escritos em diferentes idiomas para o servidor.

Como o cliente se comunica com o HDFS?

A comunicação do cliente com o HDFS é via API do Hadoop HDFS. Os aplicativos cliente conversam com o nó de nome sempre que desejam localizar um arquivo ou quando desejam adicionar / copiar / mover / excluir um arquivo no HDFS. O Nó de Nome responde a solicitações bem-sucedidas retornando uma lista de servidores Data Node relevantes onde os dados residem. Aplicativos clientes podem falar diretamente com um nó de dados, uma vez que o nó de nome forneceu a localização dos dados.

Quais são as restrições para a classe Key e Value?

As classes key e value precisam ser serializadas pelo framework. Para torná-los serializáveis, o Hadoop fornece uma interface gravável. Como você sabe do próprio Java, a chave do mapa deve ser comparável, então seria necessário implementar mais uma interface para se tornar comparável gravável.

O que é o SSH?

O SSH (Secure Shell) é um shell seguro que geralmente é executado sobre SSL e possui um esquema de autenticação de nome de usuário / senha integrado que pode ser usado para acesso seguro a um host remoto. Para funcionar perfeitamente, o SSH precisa ser configurado para permitir login sem senha para usuários HDFS e YARN de máquinas no cluster. A maneira mais simples de conseguir isso é gerar um serviço público / privado. um par de chaves e colocá-lo em um local do NFS compartilhado no cluster.

Esperamos que esta visão geral aprofundada ajude-o a obter os seus patos seguidos à medida que persegue a sua posição ideal para desenvolvedores de Big Data Hadoop. Você também pode querer examinar nosso curso abrangente de Big Data e Hadoop Developer Training para um mergulho ainda mais profundo. Espero que você encontre tudo isso benéfico!

[Planejando a Certificação Big Data Hadoop? Aqui estão 45 perguntas do Big Data Hadoop. Faça este teste prático gratuito para saber onde você está !]

About the Author

Simplilearn is one of the world’s leading providers of online training for Digital Marketing, Cloud Computing, Project Management, Data Science, IT, Software Development, and many other emerging technologies. Based in San Francisco, California, and Bangalore, India, Simplilearn has helped more than 500,000 students, professionals and companies across 200 countries get trained, upskilled, and acquire certifications.

Recommended articles for you

Power BI Interview Questions and Answers

Article

Top Linux Interview Questions and Answers

Article

Top Informatica Interview Questions and Answers

Article

{{detail.h1_tag}}

{{detail.display_name}}
{{author.author_name}} {{author.author_name}}

{{author.author_name}}

{{detail.full_name}}

Published on {{detail.created_at| date}} {{detail.duration}}

  • {{detail.date}}
  • Views {{detail.downloads}}
  • {{detail.time}} {{detail.time_zone_code}}

Registrants:{{detail.downloads}}

Downloaded:{{detail.downloads}}

About the {{detail.about_title && detail.about_title != null ? detail.about_title : 'On-Demand Webinar'}}

About the {{detail.about_title && detail.about_title != null ? detail.about_title : 'Webinar'}}

Hosted By

Profile

{{author.author_name}}

{{author.author_name}}

{{author.about_author}}

About the {{detail.about_title && detail.about_title != null ? detail.about_title : 'Ebook' }}

About the {{detail.about_title && detail.about_title != null ? detail.about_title : 'Ebook' }}

View {{detail.about_title && detail.about_title != null ? detail.about_title : 'On-Demand Webinar'}}

Webcast

Register Now!

Download the {{detail.about_title && detail.about_title != null ? detail.about_title : 'Ebook'}}!

First Name*
Last Name*
Email*
Company*
Phone Number*

View {{detail.about_title && detail.about_title != null ? detail.about_title : 'On-Demand Webinar'}}

Webcast

Register Now!

{{detail.about_title && detail.about_title != null ? detail.about_title : 'Webinar'}} Expired

Download the {{detail.about_title && detail.about_title != null ? detail.about_title : 'Ebook'}}

Email
{{ queryPhoneCode }}
Phone Number

Show full article video

Name Date Place
{{classRoomData.Date}} {{classRoomData.Place}} View Details

About the Author

{{detail.author_biography}}

About the Author

{{author.about_author}}

Recommended articles for you

{{ article.title }}

Article