NOME DA TRANSCRIÇÃO:
Laboratório – Prática com os comandos HDFS
PT-BR
1/3
Olá, meu nome é Bradley Steinfeld, e este laboratório é sobre o sistema de
arquivos distribuído do Hadoop ou HDFS. Eu irei realizar as tarefas com o
nosso
arquivo imagem VMware (máquina virtual) que também será utilizado nos
próximos laboratórios. Se você estiver usando uma Cloud image, ela deve ser
similar e eu apresentarei as diferenças dentro da documentação do
laboratório caso
haja alguma. Ok, primeiramente o que queremos é abrir o terminal de comando
e inicializar a nossa instalação do BigInsights. Para fazer isso, dê um
duplo clique no ícone do terminal em seu desktop e
depois dê o seguinte comando “start-all.sh”. Isso vai executar e inicializar
todos os componentes
necessários para a maioria dos laboratórios. Então, aguarde até que tudo
seja inicializado e volte depois
do script “start-all.sh” ter sido finalizado. Você perceberá se tudo se
sucedeu bem pela secção succeeded components. Os componentes: Hadoop, Derpy
e assim por diante deverão estar
listados aqui e a secção failed components deverá estar vazia. Se você ver
alguma coisa listada nesta secção, significa que houve algum bug ou um erro
e você precisará debuga lo. Seguindo adiante,
vamos falar com o nosso sistema distribuído de arquivos Hadoop. Como estamos
usando uma única image, todos os nossos arquivos estão nesta máquina ou
nesta imagem do VMware. Normalmente, você
terá muitas máquinas num cluster Hadoop, e a ponto fundamental do HDFS é
distribuir nosso arquivos entre estas máquinas ou entra cada uma das
máquinas que você selecionar para receber os
arquivos.Isto é apenas uma versão simulado disso mas funciona da mesma
forma. Limpe a tela, e vamos começar a trabalhar com os comandos do sistema
distribuído de arquivos Hadoop. Para fazer
isso, você precisa usar o comando “Hadoop fs” como forma de direcionar o
comando especificamente para o sistema de arquivos Hadoop e depois você deve
dar espaço, traço seguido pelo comando. Normalmente, para você listar
um diretório em sistemas UNIX você utiliza o comando ls. No HDFS é o mesmo
exceto que você usa hadoop fs –ls seguido pelo diretório. Então, se a você
inserir /, o comando deverá listar o nosso diretório raiz no HDFS.
Veja que isto é diferente do que se usar o comando ls / Ele irá listar um
sistema de arquivos Linux normal e estes são dois sistemas de arquivos
diferentes. Eu posso especificar outro
diretório com o seguinte comando hadoop fs –ls /user/root/ e isto ira nós
mostrar tudo o que estiver no diretório /user/root/
Outra coisa a se observar é que o diretório de origem padrão para o usuário
root e também aquele usado em nossa máquina virtual VMware é /home/root,
enquanto no sistema HDFS é /user/root. Perceba que
no HDFS o diretório “user” armazena todos os diretórios de origem e num
sistema Linux normal o diretório é “/home”.
NOME DA TRANSCRIÇÃO:
Laboratório – Prática com os comandos HDFS
PT-BR
2/3
Para criar um diretório no HDFS é a mesma coisa como se fosse em um sistema
Linux: hadoop fs –mkdir test. Quando eu não determino um caminho específico
para o arquivo ou diretório,
ele irá para o meu diretório de origem, /user/root
Se você der outro comando ls, você perceberá que não a nada o diretório
root, mas se der um ls em /user/root, você verá o arquivo test ou
o diretório test que foi recém criado. Outro jeito de fazer algo parecido
como o que vimos é utilizar o comando mkdir e um diretório específico
para criar uma pasta chamada “test2”. Agora veremos ambos os diretórios test
e test2 no nosso diretório de origem home.
Nós também podemos usar a similaridade do sistema de arquivos dos Hadoop
para passar outro comando UNIX. Podemos adicionar o comando pipe no fim. Por
exemplo, se você só quer listar os diretórios dentro
de user/root que tenham o nome de ‘test’. Você pode fazer isso com o
seguinte comando: hadoop fs –ls /user/root
Este é o comando padrão para listar todas as pastas e arquivos dentro do
diretório user/root. Entretanto, nos usaremos o pie (|)grep test no fim do
comando. Ele deverá selecionar apenas as linhas
que contém ‘test’. Você verá exatamente o que ele faz.
Agora para mover arquivos entre o nosso sistema de arquivos Linux e o nosso
sistema de arquivos distribuído, nós usaremos os comandos PUT e GET.
Especificamente o comando PUT pega o arquivo em nosso sistema de arquivos
normal e o coloca no sistema de arquivo distribuído. Já o comando GET pega o
arquivo do sistema de arquivos
distribuído e o coloca no sistema de arquivos normal. Então, vamos colocar
um a arquivo do nosso sistema de arquivos local Linux para o HDFS.
Novamente, usamos o comando hadoop fs, depois especificamos o comando PUT e
o arquivo README que está incluso em BigDataUniversity/README. Isto é a
origem do nosso arquivo e agora vamos
especificar onde queremos coloca-lo. Apenas, escreva README e isso irá criar
um arquivo chamado README no nosso diretório
origem user/root. Nós não especificamos um caminho então o diretório dever
conter todos os dados dentro de /BigDataUniversity/README.
Dê o comando e veja se o arquivo existe. Teste isso, listando “ls” o nosso
diretório user/root, então vemos que o arquivo existe. Para ver o conteúdo
do arquivo que
recém criamos, dê um comando CAT: hadoop fs –cat /user/root/README
/BigDataUniversity/README Esta é uma forma para saber se saber se existe
alguma diferença entre este dois arquivos. O comando diff é um comando Linux
para nós informa
NOME DA TRANSCRIÇÃO:
Laboratório – Prática com os comandos HDFS
PT-BR
3/3
que de fato os dois arquivos são o mesmo. Outra forma de fazer isso e dar um
comando CAT no arquivo README e assim você verá ambos dizer “I AM a README
file”.
Portanto, eles são o mesmo. Outro comando para se ter em mente é o comando
lsr.
Normalmente, seu usarmos o comando ls no diretório user, veremos apenas os
diretórios com arquivos dentro daqueles diretórios e não veremos subpastas.
Entretanto se eu usar o comando lsr, ele fará
uma listagem recursiva e assim poderemos ver tudo até mesmo arquivos e
pastas com sub diretórios do nosso diretório /user.
Se quisermos saber qual é o tamanho de um arquivo ou quanto espaço os
arquivos estão utilizando podemos usar o comando –du. Por exemplo, se
quiséssemos saber o tamanho do arquivo README, poderíamos usar o seguinte
comando hadoop fs –du README
e você poderá ver que ele têm apenas um item no tamanho 18, 18 bytes.
Podemos fazer a mesma coisa para saber o tamanho de um diretório:
hadoop fs –du /user/root e ele irá nos mostrar que temos 4 itens e todos os
arquivos serão listados. Porém se queremos
saber o tamanho total de uma pasta, devemos usar o comando dus. Este comando
é um du recursivo de tipos. Digite hadoop fs –dus /user/root
e veja pelo menos 18 (bytes), que é o tamanho total da pasta. Isso faz
sentindo porque há apenas um arquivo no diretório. Existem diferentes
comandos que
você pode usar dentro do sistema de arquivos do Hadoop. Muitos destes
comandos são parecidos com os comandos usados no Linux. Por exemplo: no
Linux existe um comando du que trabalha de forma similar ao
comando du dentro do sistema de arquivos do Hadoop. Se você quiser saber
mais sobre os comandos do hadoop faça uma busca na internet ou digite hadoo
fs –help.
Este comando lhe trará informações para todos os tipos de comando. Aqui você
verá os comandos cat, get e outros. Se deseja saber mais sobre um comando em
específico, digite hadoop fs –help seguindo pelo comando
que deseja saber. Por conveniência digite dus e perceba que para obter ajuda
sobre um comando não precisamos digitar traço antes do comando. Então, se eu
digitar
hadoop fs –help dus o sistema irá me informar o que o comando dus faz.
Parabéns, você concluiu o LAB #1.
Download

Olá, meu nome é Bradley Steinfeld, e este laboratório é sobre