-
Falando um pouco
da instalação do Hadoop,
-
nós temos alguns
modos de execução,
-
dentre eles, o local
ou pseudodistribuído,
-
que são ambientes onde nós
não colocamos em produção,
-
utilizamos apenas para estudo
ou teste de alguma coisa.
-
Nós temos o ambiente produtivo,
que geralmente é um cluster,
-
e esse cluster pode ser local
ou você pode simplesmente
-
instalar na nuvem
também, é permitido.
-
Mas vamos trabalhar
no sistema local, on-premise,
-
e nós também temos a opção
de trabalhar com o Hadoop
-
em modo Docker, e aí nós temos
um gerenciador de Docker,
-
um Kubernetes,
por exemplo,
-
que faz toda a parte
de simulação de máquina,
-
de gerenciamento de máquinas
em ambiente Docker.
-
Falando um pouco mais do cluster,
o cluster é o nosso ambiente produtivo.
-
Então, nós temos várias máquinas,
duas, três, dez, vinte, mil máquinas.
-
Existem clusters
de dez mil máquinas.
-
Então, quando eu falo
de dez mil máquinas,
-
eu estou falando
de máquinas físicas,
-
máquinas onde eu
tenho um hardware
-
e vários discos
dentro dessa máquina,
-
que compõe os nossos
famosos DataNodes.
-
A arquitetura do Hadoop,
ou, do HDFS, mais especificamente,
-
é uma arquitetura
master/worker,
-
onde eu tenho um controlador
e nós que obedecem a esse controlador.
-
No caso do HDFS, o nó
master é o NameNode.
-
O NameNode
simplesmente regula acesso
-
e sabe aonde os registros
estão em cada DataNode.
-
Ele tem um catálogo de metadados
que permite identificar
-
todos os blocos armazenados
em todos os DataNodes.
-
Falando um pouco
dos DataNodes,
-
eles realmente são
as máquinas físicas.
-
Então, nós temos as máquinas
locais, com os discos locais,
-
e o NameNode pode ser
simplesmente uma VM
-
porque ele não precisa dessa
configuração, os muitos discos.
-
Falando um pouco
da instalação do Hadoop,
-
nós temos alguns
modos de execução.
-
O modo mais simples é o modo
local, ou, pseudo distribuído,
-
onde eu tenho o Hadoop instalado
em um único servidor.
-
Esse tipo de execução,
local e pseudo distribuído,
-
não é utilizada
em ambiente produtivo.
-
Ela é simplesmente instalada
numa máquina para teste ou estudo.
-
Em ambiente produtivo, nós temos
o Hadoop instalado em cluster.
-
Então, nós temos vários
nós ligados por rede
-
que compartilham
recursos.
-
Nós temos uma rede complexa,
bem grande de computadores,
-
com cinco, dez, vinte, mil, dez mil
computadores ligados em rede
-
que compartilham recursos,
memória, disco e CPU.
-
E também temos a opção
de instalar com Docker.
-
Que aí, já é
uma outra tecnologia,
-
que funciona basicamente
igual a um cluster,
-
porém, ele cria um cluster lógico
e não cria um cluster local,
-
com máquinas
físicas.
-
Então, nós temos
um gerenciador de containers,
-
um Kubernetes, por exemplo,
que faz todo esse gerenciamento.
-
Falando um pouco mais
do Hadoop produção,
-
que tem
um cluster Hadoop,
-
nós falamos
de um cluster Hadoop,
-
temos aí uma arquitetura
master/worker
-
tanto para o HDFS
quanto para o YARN.
-
O HDFS tem os dois
componentes principais
-
que controlam
e armazenam os dados.
-
Na arquitetura
master/worker do HDFS,
-
quem faz o papel do master
é o NameNode.
-
O NameNode regula todo
o acesso que você faz no HDFS
-
e ele tem um catálogo
de metadados
-
de todos os dados armazenados
nos DataNodes.
-
Então, o NameNode sabe
exatamente aonde os dados estão.
-
O DataNode, por sua vez,
simplesmente armazena o dado
-
e recebe requisições de acesso,
ou criação ou exclusão de dados,
-
vindas
do NameNode.
-
Na arquitetura
do YARN,
-
quem faz o papel de master
é o Resourcing Manager.
-
O Resourcing Manager
tem o controle,
-
ou, ele visualiza todos
os recursos do cluster.
-
Se eu tiver dez máquinas com dez
CPUs e dez gigas de memória,
-
o YARN simplesmente vai enxergar
cem gigas de memória e cem cores
-
onde ele pode processar os dados
dos jobs que nós estamos executando.
-
Então, o YARN simplesmente lança
os jobs que serão executados no cluster
-
e o Node Manager é onde
esse job, especificamente,
-
vai ser executado em pequenos
pedacinhos dentro do nosso cluster,
-
em cima de cada
DataNode.
-
Quando nós falamos de instalação
e configuração do Hadoop,
-
eu posso simplesmente
entrar no site do Hadoop,
-
no apachehadoop.org,
e fazer download do Hadoop.
-
E aí eu tenho toda a parte
de configuração, de como eu instalo,
-
se eu instalo de forma
pseudo ou local
-
ou se instalo
dentro de um cluster,
-
ou também se você tiver muitas
máquinas executando o Hadoop,
-
se tiver uns nós, um cluster
com dez, vinte, trinta mil nós,
-
fica muito complicado
você fazer a instalação manual.
-
E, para isso,
existem ferramentas
-
onde podemos
automatizar essa instalação
-
e deixá-la de forma
mais user framelly,
-
consegue utilizar muito
tempo de instalação
-
e configuração
do nosso cluster.
-
Dentro do ecossistema
Hadoop,
-
quem faz esse papel de automatizar
a instalação e configuração,
-
bem como o monitoramento,
é o OneBody.
-
O OneBody é um software
também open source,
-
que está dentro
da família Hadoop,
-
que faz esse trabalho de instalar
de forma automática,
-
e você conseguir
gerenciar todo o cluster
-
a partir
de uma interface web.
-
E aí tudo fica
mais fácil.
-
Aqui, eu tenho uma instalação
utilizando OneBody,
-
onde está numa máquina local,
eu não tenho cluster.
-
Então, por isso,
eu tenho um DataNode,
-
eu consigo visualizar
meu DataNode aqui,
-
e estamos rodando
numa Sandbox.
-
Então, eu tenho
uma única máquina
-
onde eu tenho
a instalação do Hadoop,
-
eu tenho um pseudo
distribuído.
-
Se eu fosse
executar um cluster,
-
eu teria aqui várias máquinas
trabalhando de forma conjunta
-
a compor o meu
cluster Hadoop.
-
E no OneBody aqui eu
tenho a instalação no HDFS.
-
Então, eu tenho aqui
o papel do NameNode,
-
do DataNode e também
outros componentes
-
que tem a sua participação
dentro desse componente.
-
Eu tenho algumas métricas
de quanto de disco
-
eu estou utilizando,
quanto de memória.
-
O Hadoop tem dois arquivos
principais de configuração,
-
que é o hdfs-site.xml
e o core-site.xml.
-
Esses arquivos compõem
todas as configurações
-
que o Hadoop vai utilizar
em sua execução.
-
Eles são compostos
de parâmetros,
-
onde configuramos, por exemplo,
tamanho de memória,
-
tamanho de bloco de arquivo,
qual vai ser o meu fator de replicação.
-
E todas essas configurações
também podem ser alteradas
-
na interface gráfica
do OneBody.
-
Aqui, por exemplo,
eu posso mudar
-
questões de permissão,
questões de memória.
-
Eu simplesmente mudo
a configuração aqui e salvo.
-
Na próxima execução, a hora
que eu reiniciar o meu Hadoop,
-
reiniciar o meu HDFS, ele vai respeitar
a configuração que eu colocar,
-
os parâmetros
especificados.
-
Eu também tenho a instalação
do YARN dentro do OneBody,
-
onde eu tenho o papel do master
pelo Resource Manager.
-
E eu também tenho o papel
do Node Manager, que é o nosso worker.
-
Então, eu tenho aqui a configuração
tanto de um quanto de outro.
-
E, aqui, eu tenho alguns KPIs
voltados a métricas de execução,
-
quantos jobs estão executando,
qual o tamanho da minha fila,
-
qual o tanto de memória
que eu tenho para executar.
-
E eu também posso mudar
configurações na instalação do meu YARN
-
do mesmo modo
que eu faço com o HDFS.
-
Então, eu consigo
mexer em memória,
-
o tanto de CPU alocada para ele,
se eu vou usar GPU ou não.
-
Enfim, tenho várias configurações
que eu posso parametrizar
-
ou customizar de acordo
com a minha necessidade.
-
O OneBody também possui
a instalação do MapReduce,
-
porém, diferentemente
do HDFS e do YARN,
-
eu não tenho aí tantas
configurações possíveis
-
já que ele tem um papel
mais simples.
-
Ele simplesmente vai
processar o nosso dado
-
utilizando o HDFS e a estrutura
de memória e CPU do YARN.
-
Então, nós temos aí
algumas configurações
-
que também são possíveis,
é lógico, configurações defaults,
-
porém, eu tenho
mais configurações
-
dentro do HDFS
e dentro do YARN.
-
Dentro do YARN, eu também
consigo aumentar o meu cluster,
-
eu consigo
adicionar mais nós.
-
Eu não preciso,
por exemplo,
-
já criar de imediato
um cluster com mil nós.
-
Eu posso começar pequeno
com dez, vinte máquinas, por exemplo,
-
e ir crescendo de acordo
com a minha demanda.
-
Com o passar
do tempo,
-
com mais dados
ou mais processamentos,
-
eu consigo adicionar
mais máquinas
-
e ter mais poder
de armazenamento
-
e processamento
de memória e CPU.
-
Então, nós temos a opção de ter
uma escalabilidade horizontal com o Hadoop,
-
e o OneBody é
quem faz essa gerência
-
de adicionar ou remover nós
dentro de um cluster.
-
Você pode fazer isso
de forma manual, lógico,
-
porém, com o YARN
é muito mais simples.
-
Eu simplesmente
venho em Hosts,
-
e eu tenho todas as máquinas
disponíveis aqui dentro do meu cluster.
-
Caso eu queira
adicionar mais máquinas,
-
eu posso vir
em Actions aqui
-
e adicionar
novos hosts,
-
onde eu coloco
o nome do meu host,
-
como por exemplo,
"maquina1",
-
e tenho mais algumas
configurações.
-
Então, todas as máquinas que executam
Hadoop são baseadas em Linux,
-
então eu tenho
uma chave SSH
-
que eu tenho
que compartilhar e tudo mais,
-
tenho usuário
e senha das máquinas,
-
a porta que eu
vou utilizar,
-
e, depois, eu
simplesmente escolho
-
quais serviços que eu quero
instalar na naquele host.
-
Eu quero instalar o HDFS?
Eu quero instalar o YARN?
-
Eu quero instalar
o Spark?
-
Então, nós temos aí a possibilidade
de customizar a instalação de um host
-
e adicionar
novas máquinas
-
de forma muito fácil, muito
dinâmica, com o OneBody.
-
Quando eu falo de gerenciamento
de recursos dentro do OneBody,
-
eu posso, por exemplo,
como eu já mostrei para vocês,
-
alterar
as configurações,
-
e eu simplesmente posso
pegar um serviço específico,
-
nesse caso,
o HDFS,
-
e iniciar, parar,
reiniciar esse serviço.
-
E se eu tiver um cluster
com dez, vinte, trinta máquinas,
-
eu consigo fazer isso
de forma automática
-
para todas as máquinas
de uma vez,
-
ou simplesmente
de determinado host.
-
Eu posso chegar na máquina
dez, por exemplo,
-
e quero reiniciar somente
o HDFS naquela máquina.
-
Eu também consigo
fazer isso.
-
Então, nós temos aí uma forma
muito fácil de controle de gerência
-
do nosso cluster
com o OneBody.
-
O OneBody otimiza muito o trabalho
de quem for administrar um cluster,
-
seja para configurar serviços,
adicionar novos hosts,
-
parar, reiniciar
aplicações.
-
Temos aí uma ferramenta
muito bacana
-
onde nós podemos ter
ganhos significativos
-
de tempo, de gerência,
e facilitar a nossa vida
-
na parte de configuração
e manutenção de todo o cluster.
-
Dentro do HDFS, nós temos
ainda uma interface web
-
conhecida como
Hadoop User Interface,
-
onde eu tenho todas
as configurações do meu cluster.
-
Então, dentro
do OneBody
-
eu tenho
o NameNode UI.
-
Eu tenho aqui, por exemplo,
quando ele foi iniciado,
-
qual é a versão
do meu Hadoop,
-
qual é a compilação,
o ID do meu cluster,
-
o nome
do meu cluster.
-
Eu tenho a opção de visualizar
se está em modo seguro ou não,
-
quanto de capacidade
de armazenamento eu tenho,
-
quanto eu já estou
utilizando,
-
quantos arquivos, por exemplo,
existem lá dentro do meu HDFS.
-
Aqui, ele tem 2907
arquivos e diretórios.
-
Eu tenho um total de blocos
armazenados dentro do meu HDFS,
-
e, nesse caso,
eu tenho 1840 blocos,
-
o total de objeto, quanto
de memória ele está utilizando.
-
Então, visualizamos todas
as configurações
-
que nós temos
dentro do Hadoop,
-
inclusive,
os DataNodes.
-
Nese caso, eu tenho
um DataNode só,
-
então vai aparecer
uma máquina só.
-
Porém, se eu tivesse
cem máquinas,
-
apareceria cem
máquinas aqui,
-
e eu conseguiria
ver uma lista
-
com as cem máquinas
separadamente.
-
E aí eu tenho qual a capacidade
de armazenamento,
-
quantos blocos existem
em cada máquina,
-
qual a porcentagem de utilização
que eu tenho dentro dela.
-
Eu posso saber, por exemplo,
se ele está em execução,
-
quanto tempo
ele está em execução.
-
Eu tenho aí um overview
de todo o meu ambiente
-
com o Hadoop
User Interface.
-
Falando um pouco
de gerenciamento
-
e acesso às aplicações
de forma web,
-
o YARN também possui
uma interface gráfica
-
que é o Research
Manager User Interface,
-
onde nós temos
uma visão de um todo,
-
de todas as aplicações que estão
sendo executadas no nosso cluster.
-
Então, eu tenho aqui
a capacidade total do meu cluster,
-
em memória,
por exemplo.
-
O meu, como é uma máquina
local, muito reduzida,
-
eu tenho aqui quatro
gigas de memória
-
e quatro cores onde eu posso
executar os meus jobs.
-
Quando nós temos
um ambiente de produção,
-
ele é muito
maior que isso.
-
Nós temos terabytes
de memória,
-
temos centenas,
milhares de cores,
-
de frações
de CPU,
-
onde eu posso
executar os meus jobs.
-
E aí eu tenho quantos por centos
ele está sendo utilizado.
-
Nesse caso aqui, ele
está 100% disponível.
-
Então, eu não estou executando
nenhuma aplicação.
-
Então, nós temos
uma opção de visualização
-
de todas as aplicações
rodando em cima do YARN.
-
Eu consigo,
por exemplo,
-
entrar no histórico de execução
de cada aplicação,
-
eu consigo ver o que está sendo
executado ou o que foi finalizado.
-
Por exemplo: esses jobs aqui
são os jobs do Hive
-
e eles já foram executados,
está com o status "Finished".
-
Se ele estivesse em execução,
eu teria o status como "Running".
-
Então, eu consigo
identificar cada um deles,
-
entrar em cada um deles e ver
quanto tempo está sendo executado,
-
ver log, enfim, ver quem é o usuário
responsável por aquele processo.
-
Então, eu consigo administrar
minha fila de recursos
-
de forma
muito eficiente.
-
E, para cada job executado,
eu tenho, por exemplo,
-
quais recursos que ele está
usando daquele cluster.
-
E isso é bacana, porque
se você tiver, por exemplo,
-
um job que está
consumindo muito recurso
-
e atrapalhando o andamento
das suas outras tarefas,
-
você pode simplesmente matar
esse job de forma muito fácil,
-
muito dinâmica, e liberar
recurso para as outras aplicações.
-
Então, as ferramentas web que nós
temos dentro de todo o ecossistema
-
nos permitem uma gerência
muito fácil não só para a configuração,
-
mas para a operação
do dia a dia,
-
seja ela
com o Hadoop UI
-
ou o NameNode
User Interface,
-
onde temos o controle
de todos os jobs,
-
de todas as execuções
existentes dentro do YARN.
-
Com isso, nós finalizamos
toda a parte de gerência do Hadoop,
-
tanto com o HDFS
ou com o YARN.
-
Então, nós vimos aí que o OneBody
é um componente muito importante
-
dentro do cluster porque ele
automatiza a instalação
-
e configuração de todo
o nosso ambiente.
-
Não só para o HDFS,
YARN ou MapReduce,
-
mas para todo software,
todo framework
-
que compõe o nosso
cluster Hadoop.