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.