*ps: Este tutorial foi testado com o sistema operacional Ubuntu 16.04 e 14.04. Caso deseje configurar em uma versão mais antiga, recente ou em outro SO, pequenas mudanças podem ocorrer nos procedimentos apresentados.
O projeto Apache Hadoop é um software de código aberto mantido pela Apache Foundation que tem como propósito fornecer uma implementação de código aberto do modelo de programação MapReduce de forma confiável e escalável. O Hadoop é projetado para ampliar o processamento de um único servidor em milhares de máquinas, onde cada uma das máquinas oferecem poder de processamento e armazenamento local. Esta ferramenta é utilizada para processamento em batch de grandes volumes de dados (Big Data). Atualmente, o Apache Hadoop é uma das ferramentas mais conhecidas para processamento distribuído, mas existem outras ferramentas similares que se integram ao Hadoop, como o Apache Spark, Apache Storm e dentre outros.
*para mais informações a respeito do Apache Hadoop acessem o site http://hadoop.apache.org/
Neste tutorial você irá aprender a configurar o Apache Hadoop no modo Single Node. Montando um ambiente capaz de executar seus primeiros scripts em MapReduce.
Instale o Java 8 com o seguinte comando:
Verifique a instalação do Java:
Adicionar o JAVA_HOME na variável PATH:
Adicionar ao final do arquivo a variável JAVA_HOME:
Atualize os índices da variável de ambiente:
Verifique se o Path está correto:
Caso não tenha instalado o ssh, instale o servidor ssh com o seguinte comando:
Verifique se a máquina tem acesso a ssh sem senha no localhost:
Caso seja solicitado uma senha, faça o seguinte procedimento:
Gere uma chave pública de acesso ao ssh
Agora com a chave gerada e adicione ela ao diretório de chaves autorizadas:
Faça o download do Apache Hadoop, neste caso a versão 2.8.1:
Descompacte o Apache Hadoop no diretório /opt:
Agora configure as variáveis de ambiente:
ou
Adicione ao final do arquivo os seguintes variáveis de ambiente:
OBS: Substitua caminho_para_o_java_home e caminho_para_o_hadoop pelos seus respectivos paths ;)
Atualize os índices das variáveis de ambiente:
ou
Agora edite o arquivo de variáveis de ambiente do Hadoop:
Edite a variável de ambiente JAVA_HOME:
Crie o diretório onde será o ponto de montagem do sistemas de arquivos do Hadoop o HDFS:
Configure o arquivo hdfs-site.xml com o caminho das pastas criadas:
Adicione as seguintes propriedades:
*ps: a tag </property>
deve ficar dentro de uma tag <configuration></configuration>
Crie um diretório temporário na pasta de instalação do Hadoop:
Configure o arquivo core-site.xml
Adicione as seguintes propriedades
*ps: a tag </property>
deve ficar dentro de uma tag <configuration></configuration>
Configure o arquivo mapred-site.xml:
Adicione a seguinte propriedade:
*ps: a tag </property>
deve ficar dentro de uma tag <configuration></configuration>
Configure o arquivo o arquivo yarn-site.xml:
Adicione as seguintes propriedades:
*ps: a tag </property>
deve ficar dentro de uma tag <configuration></configuration>
Formate o sistema de arquivos HDFS:
Inicie os serviços do Hadoop:
Verifique os processos do Hadoop:
O console deve aparecer uma saída semelhante a essa:
Importante que apareça os processos *DataNode, SecondaryNameNode, NodeManager, NameNode e ResourceManager.
Caso enfrente algum problema com relação ao tamanho do heap de memória da JVM
1ª Etapa:
Adicione esta linha no arquivo /etc/profile:
Esta mudança muda o heap de memória do Java para 1024 mb. Por padrão é 128 mb.
Atualize os índices do arquivo /etc/profile:
2ª Etapa:
Adicione ou edite a seguinte variável de ambiente:
3ª Etapa:
Adicione a seguinte propriedade ao arquivo mapred-site.xml:
*ps: a tag </property>
deve ficar dentro de uma tag <configuration></configuration>
Se tudo estiver ok, pronto temos o Apache Hadoop configurado em modo Single Node ;)
O artigo Configuração do Apache Hadoop em Multi Node está disponível no seguinte link.
Material desenvolvido durante o meu Mestrado no Instituto de Ciências Matemáticas e de Computação da Universidade de São Paulo (ICMC-USP). Além disso, faço um agradecimento em especial ao Laboratório de Sistemas Distribuídos e Programação Concorrente (LaSDPC), o qual faço parte que me permitiu a criação deste material. Por fim, informo que é permitido livremente a reprodução integral deste material desde que sejam feitas as devidas referências ao autor ;)
[1] Apache Foundation. Hadoop: Setting up a Single Node Cluster. Acessado em Agosto de 2016. Disponível em: http://hadoop.apache.org/docs/r2.7.2/hadoop-project-dist/hadoop-common/SingleCluster.html
[2] Rajesh N. “Java Heap space Out Of Memory Error” while running a mapreduce program. Acessado em Agosto de 2016. Disponível em: http://stackoverflow.com/questions/30295606/java-heap-space-out-of-memory-error-while-running-a-mapreduce-program