23 de nov. de 2018

Overview de comandos Hadoop HDFS


Olá meu caro,


Fico feliz em recebe-ló aqui. Este post irá abordar comandos utilizados no Hadoop HDFS . Meu ambiente hadoop de estudos foi baixado no site oficial da cloudera, vc pode baixa-ló clicando aqui.
Para quem não sabe eu sou estudante de Ciência de dados, e, durante o aprendizado na pós graduação neste ano de 2018, conheci muitas ferramentas, muitas tecnologias e com isso surge o interesse do mundo de Big data, esse tem me chamado bastante atenção e vontade de me aprofundar cada vez mais e mais  e buscar a entender em como esse grande volume de dados são organizados e o que está por trás de tudo isso. Eu disponibilizei leituras recomendadas sobre os conceitos que rodeiam o assunto abordado no final do post, leiam. 



  B  E L E Z A ! VAMOS LOGO COM ISSO!!  EU VIM AQUI VER OS COMANDOS!! 





Primeiro vou acrescentar um pequeno resumo sobre o que é HDFS. Os conceitos colocados aqui foram retirados do site do proprietário da ferramenta a APACHE.  




O que é e para serve HDFS? 



O Hadoop Distributed File System (HDFS) é um sistema de arquivos distribuído projetado para ser executado em hardware comum. Tem muitas semelhanças com sistemas de arquivos distribuídos existentes. No entanto, as diferenças de outros sistemas de arquivos distribuídos são significativas. O HDFS é altamente tolerante a falhas e foi projetado para ser implantado em hardware de baixo custo. O HDFS fornece acesso de alto rendimento aos dados do aplicativo e é adequado para aplicativos que possuem grandes conjuntos de dados. O HDFS relaxa alguns requisitos POSIX para ativar o acesso de streaming aos dados do sistema de arquivos. O HDFS foi originalmente criado como infraestrutura para o projeto do mecanismo de pesquisa da Web Apache Nutch. O HDFS faz parte do projeto Apache Hadoop Core. O URL do projeto é http://hadoop.apache.org/

Para uma abordagem mais apronfudada sobre o assunto leia links em leituras recomendadas ao final deste post! 



Visão geral dos comandos 


Você conhece o POSIX? Pois é,  os comandos do HDFS seguem  esta norma, que define a interface de programação de aplicações, juntamente com shells de linha de comando e interfaces utilitárias, para compatibilidade de software com variantes de Unix e outros sistemas operacionais.

Para quem está acostuma com Linux, não sentirá dificuldade em operar no terminal para manipular o sistemas de arquivos.



Todos os comandos do HDFS são chamados pelo script bin/hdfs. Executar o script hdfs sem nenhum argumento imprime a descrição de todos os comandos.
Usage: hdfs [SHELL_OPTIONS] COMMAND [GENERIC_OPTIONS] [COMMAND_OPTIONS]
Para chamar os comandos você pode utilizar: 
hadoop fs [COMMAND, OPTIONS]
OU
hdfs dfs [COMMAND, OPTIONS]

Sendo que o primeiro está sendo substituído pelo 2º (hdfs dfs). 

  • cat

Função: Concatenar arquivos e imprimir na saída padrão


Exemplo: 
hdfs dfs -cat /user/cloudera/file1 
  • ls 
Função: listar o conteúdo do diretório


Exemplo:
hdfs dfs -ls /user/cloudera/file1 

Opções:

-C: Exibe apenas os caminhos de arquivos e diretórios.
-d: Os diretórios são listados como arquivos simples.
-h: formata os tamanhos dos arquivos de forma legível (por exemplo, 64,0m em vez de 67108864).
-q: Imprimir? em vez de caracteres não imprimíveis.
-R: lista recursivamente subdiretórios encontrados.
-t: Classifica a saída por hora da modificação (mais recente primeiro).
-S: Ordena a saída por tamanho de arquivo.
-r: Inverte a ordem de classificação.
-u: Use o tempo de acesso em vez do tempo de modificação para exibição e classificação.

  • mkdir
Função: Criar diretório


Exemplo:
hdfs dfs -mkdir -p /user/cloudera/dir1/subdir1
O comportamento da opção -p é muito parecido com o do Unix mkdir -p, criando diretórios-pais ao longo do caminho.

  • mv
Função: Mover e renomear arquivos e diretórios

Exemplo:
hdfs dfs -mv /user/cloudera/file1 /user/cloudera/file2
Esse comando também permite várias origens e, nesse caso, o destino precisa ser um diretório. Mover arquivos entre sistemas de arquivos não é permitido.

  • put
Função:  Copia arquivos do sistema local para o sistema de destino. Também lê entrada de stdin e grava no sistema de arquivos de destino.

Exemplo:
hdfs dfs -put arquivolocal /user/cloudera/dir1/arquivolocal
Esse comando também permite várias origens e, nesse caso, o destino precisa ser um diretório. Mover arquivos entre sistemas de arquivos não é permitido.

Opções:

-p: Preserva tempos de acesso e modificação, propriedade e permissões. (supondo que as permissões possam ser propagadas nos sistemas de arquivos)
-f: Sobrescreve o destino, se já existir.
-l: Permitir que DataNode preguiçosamente persista o arquivo em disco, Força um fator de replicação de 1. Esse sinalizador resultará em durabilidade reduzida. Use com cuidado.
-d: Ignora a criação do arquivo temporário com o sufixo ._COPYING_.

  • rm
Função:  Deleta arquivos especificados como argumentos. (Não remove diretórios vazios). Se a lixeira estiver ativada, o sistema de arquivos moverá o arquivo excluído para um diretório de lixeira.

Exemplo:
hdfs dfs -rm /user/cloudera/dir1/arquivolocal

Opções:
-f não exibirá uma mensagem de diagnóstico ou modificará o status de saída para refletir um erro se o arquivo não existir.
 -R exclui o diretório e qualquer conteúdo sob ele recursivamente.
-r é equivalente a -R.
 -skipTrash ignorará a lixeira, se ativada, e excluirá o (s) arquivo (s) especificado (s) imediatamente. Isso pode ser útil quando é necessário excluir arquivos de um diretório de excesso de cotas.
-safly exigirá uma confirmação de segurança antes de excluir o diretório com um número total de arquivos maior que hadoop.shell.delete.limit.num.files (em core-site.xml, padrão: 100). Pode ser
-skipTrash para impedir a exclusão acidental de diretórios grandes. O atraso é esperado ao percorrer um grande diretório recursivamente para contar o número de arquivos a serem excluídos antes da confirmação.


  • rmdir
Função:  Deleta diretórios. 

Exemplo:
hdfs dfs -rm /user/cloudera/diretorio-vazio
  • find
Função:  Localiza todos os arquivos que correspondem à expressão especificada e aplica as ações selecionadas a eles. Se nenhum caminho for especificado, o padrão será o diretório de trabalho atual. 

Exemplo:
hdfs dfs -find /user/cloudera/ -name arquivolocal -print
  • get
Função:  Copie arquivos para o sistema de arquivos local.

Exemplo:
hdfs dfs -get /user/cloudera/dir1/arquivo arquivo-local
  • help
Função:  Retorna o exemplo de usos dos comandos.

Exemplo:
hdfs dfs -help


E É isso meu caro, agora vamos praticar. Até o proxímoo! 





Leituras recomendadas!

File System Shell Guide

Hadoop Shell Commands

HDFS Architecture Guide

Oracle, Big Data


Unboxing Hadoop Distributed File System (HDFS)

Nenhum comentário:

Postar um comentário