Objetivo desse projeto estudo é levantar 4 maquinas virtuais em cluster rodando Apache Hadoop pre-instalado.
Algumas informações foram retiradas do site. http://cscarioni.blogspot.co.uk/2012/09/setting-up-hadoop-virtual-cluster-with.html
Primeiramente precisaremos duas ferramentar para a execução da virtualização. Mas atenção, esse tutorial somente vai funcionar em ambiente *UNIX.
Com seu *UNIX já configurado e rodando tudo 100%. Instale.
Todas as informações de como instalar estão nas faqs e docs dos próprios sites.
Feito todo o processo de instalação das duas ferramentas, clone o projeto, e faça o download dos Boxes que irão instalar como base. A meu gosto, utilizei o ubuntu, apesar de não ser o melhor, me facilitou muito na hora das instalações.
Executando o Vagrant para subir o iso e startando a VM:
$ vagrant box add ubuntu64 http://files.vagrantup.com/precise64.box
$ vagrant up
O script vai levantar 4 máquinas de 512mb de memoria - master
, hadoop1
, hadoop2
e hadoop3
. Ajustes edite Vagrantfile
.
As máquinas utilizam o Puppet para instalar e configura todos aplicativos necessários utilizados no cluster.
Diretório padrão de instalação é /opt/xxxxxxx-0.0.0
e todos estão em PATH
.
A maquina master
executa o namenode and jobtracker, o restante é data
nodes e trackers.
Depois de rodar o Vagrant, vamos formatar o Apache Hadoop na master.
$ vagrant ssh master
$ (master) sudo /opt/hadoop-1.2.1/bin/hadoop namenode -format -force
$ (master) sudo /opt/hadoop-1.2.1/bin/start-all.sh
$ (master) sudo /opt/hbase-0.94.11/bin/start-hbase.sh
Incluindo a porta do HBase tanto de entrada como saida.
$ (master) sudo su
$ ssh hadoop1
$ sudo iptables -A PREROUTING -t nat -i eth1 -p tcp --dport 60020 -j DNAT --to 10.0.1.111:60020
$ exit
$ ssh hadoop2
$ sudo iptables -A PREROUTING -t nat -i eth1 -p tcp --dport 60020 -j DNAT --to 10.0.1.112:60020
$ exit
$ ssh hadoop3
$ sudo iptables -A PREROUTING -t nat -i eth1 -p tcp --dport 60020 -j DNAT --to 10.0.1.113:60020
$ exit
$ vagrant ssh master
$ (master) sudo stop-all.sh
$ exit or Ctrl-D
$ vagrant halt
utilizando de novo o cluster:
$ vagrant up
$ vagrant ssh master
$ (master) sudo start-all.sh
$ vagrant destroy
Isso irá excluir no modo HARD, os arquivos salvos não serão possíveis restauração.
Inserindo o mesmo range de ips que foi utilizado para gerar o cluster, será necessário colocar eles dentro do seu /etc/hosts.
namenode : http://master.local:50070/dfshealth.jsp jobtracker : http://master.local:50030/jobtracker.jsp
master : http://master.local:60010/master-status
Logar na maquina master.
$ vagrant ssh master
$ (master) hadoop fs -ls /
$ ...
namenode : `/srv/hadoop/namenode`
datanodes : `/srv/hadoop/datanode`
Caso alguma alteração no Vagrantfile, e precise testa-lo ou replica-lo, utilize :
$ vagrant provision
- patchs, atualizações e dicas são bem-vindas neste projeto. =)