Aprenda a criar um "supercomputador" com vários Raspberry PI Date : 6 de Abril de 2016 O Apache Hadoop é uma Framework/Plataforma desenvolvida em Java, para computação distribuída, usada para processamento de grandes quantidades de informação (usando modelos de programação simples). Depois de termos apresentado a parte 1 e 2 da instalação do Apache Hadoop no Raspberry PI hoje deixamos o tutorial completo, passo a passo. Pré-Requisitos Para este tutorial vamos considerar 3 Raspberry PI. Um dos equipamentos vai funcionar como master e os outros dois como slave (mas no futuro podem adicionar mais máquinas a funcionar como slave). Em termos de configuração de rede vamos considerar o seguinte: master: 10.10.10.1 slave1: 10.10.10.2 slave2: 10.10.10.3 http://www.pplware.com | Pplware 1 / 12 Devem ainda ter instalado em todas as máquinas o JAVA. Nota: A configuração do slave2 é semelhante à do slave1, por isso basta replicar e ajustar. Configuração Master Façam login como root e procedam à seguinte configuração Passo 1) Instalar o Java apt-get install openjdk-7-jdk Passo 2) Criar o user/group “hadoop” adduser hadoop Para adicionar o user hadoop ao grupo sudo sudo adduser hadoop sudo Passo 3) Gerar chaves SSH e activar acesso su hadoop cd ~ ssh-keygen –t rsa –P “” http://www.pplware.com | Pplware 2 / 12 Para activar o acesso use o seguinte comando cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys Verificação: (pode experimentar ligar-se ao localhost sem autenticação) http://www.pplware.com | Pplware 3 / 12 Vamos agora definir permissões de leitura e escrita para o user hadoop, para o ficheiro autorized_keys chmod 600 $HOME/.ssh/authorized_keys Passo 4) Definir hostname para Raspberry PI master nano –w /etc/hostname Passo 5) Definir nós do cluster no ficheiro hosts nano –w /etc/hosts Passo 6) Copiar chave SSH para slave Para copiar a chave SSH para o slave1 basta que execute o seguinte comando: ssh-copy-id --i ~/.ssh/id_rsa.pub slave1 http://www.pplware.com | Pplware 4 / 12 Nota 4: Para saber se o ficheiro foi copiado pode, através do master, ligar-se ao slave usando o comando ssh slave1. Passo 7) Instalar e Configurar serviços do Hadoop wget https://www.apache.org/dist/hadoop/core/hadoop-2.7.0/hadoop-2.7.0 .tar.gz tar xzf hadoop-2.7.0.tar.gz cp -rv hadoop-2.7.0 /usr/local/ hadoop Definir permissões sudo chown -R hadoop /usr/local/hadoop/ Passo 8) Definir variáveis de ambiente Abrir o ficheiro ~/.bashrc usando o comando nano -w ~/.bashrc e acrescentar as seguintes variáveis: export HADOOP_PREFIX=/usr/local/hadoop IX/bin export PATH=$PATH:$HADOOP_PREF Passo 9) Definir JAVA_HOME Vamos agora editar o ficheiro $HADOOP_PREFIX/etc/hadoop/hadoop-env.sh e definir a variável de ambiente JAVA_HOME. Para editar o ficheiro basta que usem o comando nano -w $HADOOP_PREFIX/etc/hadoop/hadoop-env.sh http://www.pplware.com | Pplware 5 / 12 Nota: Quando executarem o cluster e caso tenham um erro no JAVA_HOME, definam esta variável também no ~/.bashrc. Ou simplesmente executem o comando export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-amd64. No caso de sistemas a 32 bits, devem mudar amd64 por i386. O Apache Hadoop tem muitos ficheiros de configuração. Este ficheiros permitem as mais diversas configurações, de acordo com as necessidades de cada utilizador. Hoje vamos configurar um simples nó de um cluster para isso devem aceder a $HADOOP_HOME/etc/hadoop e alterar os seguintes ficheiros. core-site.xml fs.default.name hdfs://localhost:9000 hdfs-site.xml dfs.replication http://www.pplware.com | Pplware 1 dfs.name.dir file:///home/hadoop/hadoopda 6 / 12 ta/hdfs/namenode s/datanode dfs.data.dir file:///home/hadoop/hadoopdata/hdf mapred-site.xml Nota: Caso não tenham este ficheiro, verifiquem se existe o ficheiro mapred-site.xml.template. Neste caso devem mudar o nome mapred-site.xml.template para mapred-site.xml. mapreduce.framework.name yarn yarn-site.xml yarn.nodemanager.aux-services mapreduce_shuffle Feitas as configurações nos ficheiros anteriores, vamos formatar o namenode usando o seguinte comando: hdfs namenode –format Por fim vamos agora iniciar todos os serviços (com privilégios root) associados ao hadoop. Para tal basta que executem os seguintes comandos: cd $HADOOP_PREFIX/sbin/ ./start-dfs.sh ./start-yarn.sh Para verificar se todos os serviços iniciaram correctamente, devem usar o comando jps e visualizar um output do tipo: 5536 DataNode 5693 SecondaryNameNode 5408 NameNode 6026 NodeManager 5899 ResourceManager 6494 Jps Aceder ao Apache Hadoop Para aceder à interface de gestão do Apache Hadoop basta que abram um browser e http://www.pplware.com | Pplware 7 / 12 introduzam o endereço http://localhost:8088 Para visualizar informações sobre o cluster basta que abram um browser e introduzam o endereço http://localhost:50070 http://www.pplware.com | Pplware 8 / 12 Configuração slave Passo 1) Download e instalação do Apache Hadoop sudo su wget https://www.apache.org/dist/hadoop/core/hadoop-2.7.0/had oop-2.7.0.tar.gz tar xzf hadoop-2.7.0.tar.gz cp -rv hadoop-2.7.0 /u sr/local/hadoop Definir permissões sudo chown -R hadoop /usr/local/hadoop/ Passo 2) Criar o user/group “hadoop” adduser hadoop Para que este utilizador possa recorrer ao sudo, deverá executar o seguinte comando: http://www.pplware.com | Pplware 9 / 12 sudo adduser hadoop sudo Passo 3) Copiar estrutura do master para slave Nota 5: Os próximos passos são realizados no master Por fim, devem voltar a ligar-se ao master e copiar parte da estrutura do hadoop para os slave. Para isso devem posicionar-se na pasta /usr/local/hadoop/etc/hadoop e copiar todos os ficheiros *.site.xml para o slave. Para simplificar a tarefa podemos usar o comando scp. scp *-site.xml [email protected]:/usr/local/hadoop/etc/hadoop E está feito. Agora, a partir do master, vamos arranjar o serviço associado ao cluster. Para isso devem ir para o directório /usr/local/hadoop/sbin e executar o comando ./start.all.sh Para verem se está a correr podem usar o comando jps http://www.pplware.com | Pplware 10 / 12 No slave1 podem também usar o comando jps para ver se o NodeManager e o DataNode estão activos. Através do master podem ainda aceder à interface gráfica de gestão para verificar a informação sobre os slaves. http://www.pplware.com | Pplware 11 / 12 E está tudo operacional. Não se esqueçam de agora replicar as configurações do slave1 para o slave2. De referir ainda que nesta fase podem adicionar quantos slaves pretenderem… o que significa que, quantos mais Raspberry Pi tiverem mais poder computacional terá o cluster. http://www.pplware.com | Pplware Powered by TCPDF (www.tcpdf.org) 12 / 12