-
Quando falamos de HDFS,
estamos falando de armazenamento
-
de forma distribuída dentro de um cluster
onde possuem vários nós.
-
Esse sistema
de arquivo do HDFS
-
é muito similar ao sistema
de arquivo do Linux.
-
Então, alguns comandos
que nós temos no Linux,
-
como por exemplo, listar arquivo,
criar diretório, copiar, mover,
-
são muito
semelhantes.
-
Porém, no HDFS nós temos
alguns comandos específicos
-
onde nós chamamos o HDFS
por linha de comando, por exemplo.
-
Acessando o servidor Hadoop
via terminal, via console,
-
nós temos a opção de utilizar
alguns comandos
-
tanto de gerenciamento
quanto de manipulação de arquivos.
-
Os dois comandos que nós
podemos utilizar dentro do HDFS
-
para manipular arquivo
é o Hadoop FS.
-
Então, quando eu falo
de Hadoop FS,
-
eu estou falando
de Hadoop File System.
-
Então, aqui é
um "help" dele.
-
Se eu simplesmente
digitar "hadoop fs",
-
eu tenho o help e todos
os comandos que eu posso utilizar.
-
Por exemplo: ler
arquivo com "cat",
-
o "cp", eu
posso copiar.
-
Se eu quiser listar
um diretório, eu uso o "ls".
-
Então, nós temos aí um sistema
de manipulação de arquivos
-
muito semelhante
ao Linux.
-
Eu também tenho
o comando "hdfs dfs",
-
onde o hdfs é
o nosso HDFS,
-
então, é o software
que nós estamos utilizando.
-
E DFS significa
Distributed File System.
-
E qual é a diferença
do HDFS e do DFS?
-
Para quem vai utilizar,
nenhuma.
-
A única diferença é que o HDFS
funciona especificamente para o HDFS.
-
Já o comando Hadoop FS
funciona tanto para o HDFS
-
quanto para outros
sistemas de arquivo,
-
como o S3 da Amazon,
por exemplo.
-
Então nós vamos usar
o mais genérico possível,
-
que é
o Hadoop FS.
-
Fazendo uma manipulação de dados,
visualizando arquivos
-
ou até
criando diretórios,
-
as opções que eu tenho
dentro do Hadoop
-
com o Hadoop FS
são bem vastas.
-
Então, eu posso desde
copiar um arquivo
-
até subir arquivos
para o HDFS.
-
Um dos comandos
muito utilizado é o "ls",
-
onde eu listo os diretórios
que eu tenho dentro do meu HDFS.
-
Nesse exemplo aqui,
eu vou fazer uma listagem
-
da raiz do meu HDFS,
por exemplo.
-
Então, eu dou
uma barra.
-
O HDFS é baseado em Linux, então
ele tem os arquivos, os diretórios,
-
sempre começando com barra
e depois um outro nome,
-
barra outro
diretório.
-
Enfim, temos aí toda a hierarquia
de arquivos que nós temos dentro do Linux.
-
Nesse exemplo aqui, eu
tenho algumas pastas criadas
-
dentro do meu Hadoop,
dentro do meu HDFS.
-
Por exemplo:
a pasta warehouse,
-
a pasta user,
a pasta apps.
-
Então, nós vimos aí que podemos
listar todo o diretório,
-
todos os arquivos
que existem dentro do HDFS.
-
Mas eu também posso criar
diretórios novos, criar subdiretórios.
-
E, para isso, eu utilizo
o comando "hadoop fs".
-
Só que, ao invés do "ls",
onde eu listo,
-
eu vou utilizar
o "mkdir",
-
que é o comando para criar
diretórios lá dentro do HDFS,
-
sempre precedido
de hadoop fs,
-
porque eu estou falando
de Hadoop File System.
-
Se eu der um mkdir sem
o hadoop fs, por exemplo,
-
ele vai criar o diretório
dentro do meu Linux,
-
dentro do meu
sistema local,
-
não vai ser
dentro do HDFS.
-
E eu vou falar aqui
que eu vou criar na barra,
-
que é a minha raiz
do HDFS,
-
e vou criar um diretório
chamado "datalake".
-
O Hadoop, o HDFS, não dá retorno
falando que ele criou com sucesso.
-
Se ele der algum retorno, ou vai
ser de erro ou vai ser de worm.
-
Então, no nosso caso aqui,
como deu certo,
-
ele não vai
retornar nada.
-
E como nós ficamos sabendo
se deu certo ou não a criação?
-
Nós podemos simplesmente
dar um "hadoop fs - ls" novamente,
-
e aí eu tenho a listagem
de toda a minha barra,
-
raiz do meu
HDFS,
-
e a pasta
Data Lake está lá.
-
Se eu quiser criar uma pasta,
um subdiretório,
-
dentro do meu diretório
Data Lake, como eu faço?
-
Eu posso
ir lá
-
e dar
um "hadoop fs - mkdir /datalake/"...
-
Eu vou colocar aqui
dados brutos, por exemplo.
-
Dados brutos.
-
E aí eu tenho a opção
de criar um outro diretório.
-
Eu também posso criar
em outro diretório qualquer.
-
Eu posso criar um outro
diretório dentro dos dados brutos?
-
Também posso. E aí eu consigo
segregar cada entrada de dados
-
dentro do meu Data Lake,
dentro do meu HDFS.
-
E aí nós temos o Data Lake, a pasta
Data Lake com os dados brutos,
-
o diretório dados brutos
dentro da pasta Data Lake.
-
Porém, tudo que eu for
fazer dentro do HDFS,
-
diferentemente do sistema
de arquivos do Linux...
-
Eu não consigo,
por exemplo,
-
dar um "cd" e o nome
da pasta e entrar na pasta.
-
Eu sempre tenho que passar
o caminho absoluto.
-
Então, se eu quiser visualizar tudo
que tem dentro da pasta dados brutos,
-
eu tenho que vir
aqui e digitar
-
hadoop fs - ls /datalake/dadosbrutos.
-
Então, eu sempre passo
o diretório completo.
-
Se eu der, por exemplo,
só dados brutos...
-
O HDFS vai me
retornar falando
-
que não encontrou nenhum arquivo
nem diretório com esse nome.
-
Então, ele tem esse mecanismo
de controle de erro,
-
e aí sim ele retorna
o erro para nós.
-
Então, nós sempre temos
que passar o caminho absoluto
-
dentro do meu Data Lake,
dentro do meu HDFS.
-
Então, nós vimos como criar
o diretório Data Lake,
-
como criar um subdiretório
dentro do Data Lake,
-
chamado
dados brutos.
-
E o que nós
vamos fazer agora?
-
Nós vamos jogar arquivos
dentro dos dados brutos.
-
Não adianta nada só termos o diretório
e não termos os arquivos lá dentro, né?
-
Na máquina que eu estou aqui,
eu tenho dentro do meu diretório "tmp",
-
no Linux... Eu não estou
falando do HDFS.
-
Então, eu só vou dar
um "ls /tmp/teste.txt",
-
e eu tenho esse arquivo
dentro do meu Linux aqui.
-
Eu vou ler esse arquivo só
para vocês verem o que eu tenho nele.
-
Então, eu tenho aqui
esse arquivo teste.txt
-
onde eu tenho cinco
linhas escrito teste.
-
É um arquivo
texto.
-
Poderia ser um csv, poderia
ser um txt mais complexo,
-
poderia ser um JSON,
qualquer tipo de arquivo.
-
E como eu faço para jogar esse
arquivo lá dentro do Data Lake,
-
lá dentro do HDFS,
da pasta dados brutos?
-
Eu dou
um "hadoop fs -put".
-
O put copia o arquivo
que está localmente no Linux,
-
no caminho
que eu especificar,
-
e joga lá para o HDFS,
no caminho que eu especificar.
-
Então vamos lá.
Onde está o put?
-
Está no Linux, né,
no "/tmp/teste.txt",
-
e eu vou jogar para onde
dentro do meu Data Lake?
-
Vou jogar
no "/datalake/dadosbrutos".
-
Se não retornar nenhum erro,
significa que deu certo.
-
Como eu faço
para verificar?
-
"hadoop fs -ls /datalake/dadosbrutos".
-
Vocês vão ver
que o arquivo está lá,
-
teste.txt.
-
E se eu quiser ler esse arquivo
que está dento do HDFS?
-
Aqui, eu li
através do Linux.
-
Eu posso simplesmente
dar um "hadoop fs -cat".
-
Notem que é
o mesmo comando,
-
porém, eu dou
hadoop fs na frente
-
porque eu vou
executá-lo lá no HDFS,
-
e aí eu coloco
o caminho completo, né,
-
"/datalake/dadosbrutos/teste.txt"...
-
E eu consigo ler o arquivo
que está lá dentro do HDFS.
-
Então, nós vimos
que a manipulação de dados,
-
a manipulação de arquivos, de pastas,
de diretórios, dentro do HDFS,
-
é muito similar
ao Linux.
-
Porém, eu sempre uso
o comando "hadoop fs"
-
ou o comando
"hdfs dfs"
-
para especificar que eu
estou manipulando
-
os arquivos ou diretórios
lá dentro do HDFS.