Hadoop - configuração do ambiente

O Hadoop é compatível com a plataforma GNU / Linux e seus sabores. Portanto, temos que instalar um sistema operacional Linux para configurar o ambiente Hadoop. Caso você tenha um SO diferente do Linux, você pode instalar um software Virtualbox nele e ter o Linux dentro do Virtualbox.

Configuração de pré-instalação

Antes de instalar o Hadoop no ambiente Linux, precisamos configurar o Linux usando ssh(Capsula segura). Siga as etapas fornecidas abaixo para configurar o ambiente Linux.

Criação de um usuário

No início, é recomendado criar um usuário separado para o Hadoop para isolar o sistema de arquivos Hadoop do sistema de arquivos Unix. Siga as etapas abaixo para criar um usuário -

  • Abra a raiz usando o comando “su”.

  • Crie um usuário a partir da conta root usando o comando “useradd username”.

  • Agora você pode abrir uma conta de usuário existente usando o comando “su username”.

Abra o terminal Linux e digite os seguintes comandos para criar um usuário.

$ su 
   password: 
# useradd hadoop 
# passwd hadoop 
   New passwd: 
   Retype new passwd

Configuração e geração de chave SSH

A configuração do SSH é necessária para fazer diferentes operações em um cluster, como iniciar, parar e operações de shell daemon distribuído. Para autenticar diferentes usuários do Hadoop, é necessário fornecer um par de chaves pública / privada para um usuário do Hadoop e compartilhá-lo com diferentes usuários.

Os comandos a seguir são usados ​​para gerar um par de valores-chave usando SSH. Copie o formulário de chaves públicas id_rsa.pub para authorized_keys e forneça ao proprietário as permissões de leitura e gravação para o arquivo authorized_keys respectivamente.

$ ssh-keygen -t rsa 
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 
$ chmod 0600 ~/.ssh/authorized_keys

Instalando Java

Java é o principal pré-requisito para o Hadoop. Em primeiro lugar, você deve verificar a existência de java em seu sistema usando o comando “java -version”. A sintaxe do comando da versão java é fornecida abaixo.

$ java -version

Se tudo estiver em ordem, você receberá a seguinte saída.

java version "1.7.0_71" 
Java(TM) SE Runtime Environment (build 1.7.0_71-b13) 
Java HotSpot(TM) Client VM (build 25.0-b02, mixed mode)

Se o java não estiver instalado em seu sistema, siga as etapas abaixo para instalar o java.

Passo 1

Faça download de java (JDK <versão mais recente> - X64.tar.gz) visitando o seguinte link www.oracle.com

Então jdk-7u71-linux-x64.tar.gz será baixado em seu sistema.

Passo 2

Geralmente, você encontrará o arquivo java baixado na pasta Downloads. Verifique e extraia ojdk-7u71-linux-x64.gz arquivo usando os seguintes comandos.

$ cd Downloads/ 
$ ls 
jdk-7u71-linux-x64.gz 

$ tar zxf jdk-7u71-linux-x64.gz 
$ ls 
jdk1.7.0_71   jdk-7u71-linux-x64.gz

etapa 3

Para disponibilizar o java a todos os usuários, você deve movê-lo para o local “/ usr / local /”. Abra o root e digite os seguintes comandos.

$ su 
password: 
# mv jdk1.7.0_71 /usr/local/ 
# exit

Passo 4

Para configurar PATH e JAVA_HOME variáveis, adicione os seguintes comandos para ~/.bashrc Arquivo.

export JAVA_HOME=/usr/local/jdk1.7.0_71 
export PATH=$PATH:$JAVA_HOME/bin

Agora aplique todas as alterações no sistema em execução atual.

$ source ~/.bashrc

Etapa 5

Use os seguintes comandos para configurar alternativas java -

# alternatives --install /usr/bin/java java usr/local/java/bin/java 2
# alternatives --install /usr/bin/javac javac usr/local/java/bin/javac 2
# alternatives --install /usr/bin/jar jar usr/local/java/bin/jar 2

# alternatives --set java usr/local/java/bin/java
# alternatives --set javac usr/local/java/bin/javac
# alternatives --set jar usr/local/java/bin/jar

Agora verifique o comando java -version do terminal conforme explicado acima.

Baixando Hadoop

Baixe e extraia o Hadoop 2.4.1 da base do software Apache usando os comandos a seguir.

$ su 
password: 
# cd /usr/local 
# wget http://apache.claz.org/hadoop/common/hadoop-2.4.1/ 
hadoop-2.4.1.tar.gz 
# tar xzf hadoop-2.4.1.tar.gz 
# mv hadoop-2.4.1/* to hadoop/ 
# exit

Modos de operação Hadoop

Depois de fazer download do Hadoop, você pode operar o cluster do Hadoop em um dos três modos suportados -

  • Local/Standalone Mode - Depois de baixar o Hadoop em seu sistema, por padrão, ele é configurado em um modo autônomo e pode ser executado como um único processo java.

  • Pseudo Distributed Mode- É uma simulação distribuída em uma única máquina. Cada daemon Hadoop, como hdfs, yarn, MapReduce etc., será executado como um processo java separado. Este modo é útil para desenvolvimento.

  • Fully Distributed Mode- Este modo é totalmente distribuído com no mínimo duas ou mais máquinas como um cluster. Veremos esse modo em detalhes nos próximos capítulos.

Instalando o Hadoop no modo autônomo

Aqui vamos discutir a instalação de Hadoop 2.4.1 no modo autônomo.

Não há daemons em execução e tudo é executado em uma única JVM. O modo autônomo é adequado para executar programas MapReduce durante o desenvolvimento, pois é fácil testá-los e depurá-los.

Configurando o Hadoop

Você pode definir variáveis ​​de ambiente Hadoop, anexando os seguintes comandos a ~/.bashrc Arquivo.

export HADOOP_HOME=/usr/local/hadoop

Antes de prosseguir, você precisa se certificar de que o Hadoop está funcionando bem. Basta emitir o seguinte comando -

$ hadoop version

Se tudo estiver bem com sua configuração, você deverá ver o seguinte resultado -

Hadoop 2.4.1 
Subversion https://svn.apache.org/repos/asf/hadoop/common -r 1529768 
Compiled by hortonmu on 2013-10-07T06:28Z 
Compiled with protoc 2.5.0
From source with checksum 79e53ce7994d1628b240f09af91e1af4

Isso significa que a configuração do modo autônomo do Hadoop está funcionando bem. Por padrão, o Hadoop é configurado para ser executado em um modo não distribuído em uma única máquina.

Exemplo

Vamos verificar um exemplo simples de Hadoop. A instalação do Hadoop oferece o seguinte exemplo de arquivo jar MapReduce, que fornece funcionalidade básica de MapReduce e pode ser usado para calcular, como valor de Pi, contagens de palavras em uma determinada lista de arquivos, etc.

$HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar

Vamos ter um diretório de entrada onde enviaremos alguns arquivos e nosso requisito é contar o número total de palavras nesses arquivos. Para calcular o número total de palavras, não precisamos escrever nosso MapReduce, desde que o arquivo .jar contenha a implementação para contagem de palavras. Você pode tentar outros exemplos usando o mesmo arquivo .jar; apenas emita os seguintes comandos para verificar os programas funcionais MapReduce suportados pelo arquivo hadoop-mapreduce-examples-2.2.0.jar.

$ hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduceexamples-2.2.0.jar

Passo 1

Crie arquivos de conteúdo temporários no diretório de entrada. Você pode criar este diretório de entrada em qualquer lugar onde gostaria de trabalhar.

$ mkdir input 
$ cp $HADOOP_HOME/*.txt input 
$ ls -l input

Ele fornecerá os seguintes arquivos em seu diretório de entrada -

total 24 
-rw-r--r-- 1 root root 15164 Feb 21 10:14 LICENSE.txt 
-rw-r--r-- 1 root root   101 Feb 21 10:14 NOTICE.txt
-rw-r--r-- 1 root root  1366 Feb 21 10:14 README.txt

Esses arquivos foram copiados do diretório inicial de instalação do Hadoop. Para sua experiência, você pode ter conjuntos de arquivos diferentes e grandes.

Passo 2

Vamos iniciar o processo Hadoop para contar o número total de palavras em todos os arquivos disponíveis no diretório de entrada, da seguinte maneira -

$ hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduceexamples-2.2.0.jar  wordcount input output

etapa 3

A etapa 2 fará o processamento necessário e salvará a saída no arquivo output / part-r00000, que você pode verificar usando -

$cat output/*

Ele listará todas as palavras junto com suas contagens totais disponíveis em todos os arquivos disponíveis no diretório de entrada.

"AS      4 
"Contribution" 1 
"Contributor" 1 
"Derivative 1
"Legal 1
"License"      1
"License");     1 
"Licensor"      1
"NOTICE”        1 
"Not      1 
"Object"        1 
"Source”        1 
"Work”    1 
"You"     1 
"Your")   1 
"[]"      1 
"control"       1 
"printed        1 
"submitted"     1 
(50%)     1 
(BIS),    1 
(C)       1 
(Don't)   1 
(ECCN)    1 
(INCLUDING      2 
(INCLUDING,     2 
.............

Instalando o Hadoop no modo pseudo-distribuído

Siga as etapas fornecidas abaixo para instalar o Hadoop 2.4.1 no modo pseudo distribuído.

Etapa 1 - Configurando o Hadoop

Você pode definir variáveis ​​de ambiente Hadoop, anexando os seguintes comandos a ~/.bashrc Arquivo.

export HADOOP_HOME=/usr/local/hadoop 
export HADOOP_MAPRED_HOME=$HADOOP_HOME 
export HADOOP_COMMON_HOME=$HADOOP_HOME 

export HADOOP_HDFS_HOME=$HADOOP_HOME 
export YARN_HOME=$HADOOP_HOME 
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native 
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin 
export HADOOP_INSTALL=$HADOOP_HOME

Agora aplique todas as alterações no sistema em execução atual.

$ source ~/.bashrc

Etapa 2 - Configuração do Hadoop

Você pode encontrar todos os arquivos de configuração do Hadoop no local “$ HADOOP_HOME / etc / hadoop”. É necessário fazer alterações nesses arquivos de configuração de acordo com sua infraestrutura Hadoop.

$ cd $HADOOP_HOME/etc/hadoop

Para desenvolver programas Hadoop em java, você deve redefinir as variáveis ​​de ambiente java em hadoop-env.sh arquivo substituindo JAVA_HOME valor com a localização de java em seu sistema.

export JAVA_HOME=/usr/local/jdk1.7.0_71

A seguir está a lista de arquivos que você deve editar para configurar o Hadoop.

core-site.xml

o core-site.xml arquivo contém informações como o número da porta usado para a instância do Hadoop, memória alocada para o sistema de arquivos, limite de memória para armazenar os dados e tamanho dos buffers de leitura / gravação.

Abra o core-site.xml e adicione as seguintes propriedades entre as tags <configuration>, </configuration>.

<configuration>
   <property>
      <name>fs.default.name</name>
      <value>hdfs://localhost:9000</value> 
   </property>
</configuration>

hdfs-site.xml

o hdfs-site.xmlarquivo contém informações como o valor dos dados de replicação, caminho do namenode e caminhos do datanode de seus sistemas de arquivos locais. Significa o local onde você deseja armazenar a infraestrutura do Hadoop.

Vamos supor os seguintes dados.

dfs.replication (data replication value) = 1 

(In the below given path /hadoop/ is the user name. 
hadoopinfra/hdfs/namenode is the directory created by hdfs file system.) 
namenode path = //home/hadoop/hadoopinfra/hdfs/namenode 

(hadoopinfra/hdfs/datanode is the directory created by hdfs file system.) 
datanode path = //home/hadoop/hadoopinfra/hdfs/datanode

Abra este arquivo e adicione as seguintes propriedades entre as marcas <configuration> </configuration> neste arquivo.

<configuration>
   <property>
      <name>dfs.replication</name>
      <value>1</value>
   </property>
    
   <property>
      <name>dfs.name.dir</name>
      <value>file:///home/hadoop/hadoopinfra/hdfs/namenode </value>
   </property>
    
   <property>
      <name>dfs.data.dir</name> 
      <value>file:///home/hadoop/hadoopinfra/hdfs/datanode </value> 
   </property>
</configuration>

Note - No arquivo acima, todos os valores de propriedade são definidos pelo usuário e você pode fazer alterações de acordo com sua infraestrutura Hadoop.

yarn-site.xml

Este arquivo é usado para configurar o yarn no Hadoop. Abra o arquivo yarn-site.xml e adicione as seguintes propriedades entre as marcas <configuration>, </configuration> neste arquivo.

<configuration>
   <property>
      <name>yarn.nodemanager.aux-services</name>
      <value>mapreduce_shuffle</value> 
   </property>
</configuration>

mapred-site.xml

Este arquivo é usado para especificar qual estrutura MapReduce estamos usando. Por padrão, o Hadoop contém um modelo de yarn-site.xml. Em primeiro lugar, é necessário copiar o arquivo demapred-site.xml.template para mapred-site.xml arquivo usando o seguinte comando.

$ cp mapred-site.xml.template mapred-site.xml

Abrir mapred-site.xml arquivo e adicione as seguintes propriedades entre as marcas <configuration>, </configuration> neste arquivo.

<configuration>
   <property> 
      <name>mapreduce.framework.name</name>
      <value>yarn</value>
   </property>
</configuration>

Verificando a instalação do Hadoop

As etapas a seguir são usadas para verificar a instalação do Hadoop.

Etapa 1 - Configuração do Nó de Nome

Configure o namenode usando o comando “hdfs namenode -format” como segue.

$ cd ~ 
$ hdfs namenode -format

O resultado esperado é o seguinte.

10/24/14 21:30:55 INFO namenode.NameNode: STARTUP_MSG: 
/************************************************************ 
STARTUP_MSG: Starting NameNode 
STARTUP_MSG:   host = localhost/192.168.1.11 
STARTUP_MSG:   args = [-format] 
STARTUP_MSG:   version = 2.4.1 
...
...
10/24/14 21:30:56 INFO common.Storage: Storage directory 
/home/hadoop/hadoopinfra/hdfs/namenode has been successfully formatted. 
10/24/14 21:30:56 INFO namenode.NNStorageRetentionManager: Going to 
retain 1 images with txid >= 0 
10/24/14 21:30:56 INFO util.ExitUtil: Exiting with status 0 
10/24/14 21:30:56 INFO namenode.NameNode: SHUTDOWN_MSG: 
/************************************************************ 
SHUTDOWN_MSG: Shutting down NameNode at localhost/192.168.1.11 
************************************************************/

Etapa 2 - Verificar Hadoop dfs

O seguinte comando é usado para iniciar o dfs. A execução desse comando iniciará seu sistema de arquivos Hadoop.

$ start-dfs.sh

A saída esperada é a seguinte -

10/24/14 21:37:56 
Starting namenodes on [localhost] 
localhost: starting namenode, logging to /home/hadoop/hadoop
2.4.1/logs/hadoop-hadoop-namenode-localhost.out 
localhost: starting datanode, logging to /home/hadoop/hadoop
2.4.1/logs/hadoop-hadoop-datanode-localhost.out 
Starting secondary namenodes [0.0.0.0]

Etapa 3 - Verificação do script do Yarn

O seguinte comando é usado para iniciar o script yarn. Executar este comando iniciará seus daemons de yarn.

$ start-yarn.sh

A saída esperada da seguinte forma -

starting yarn daemons 
starting resourcemanager, logging to /home/hadoop/hadoop
2.4.1/logs/yarn-hadoop-resourcemanager-localhost.out 
localhost: starting nodemanager, logging to /home/hadoop/hadoop
2.4.1/logs/yarn-hadoop-nodemanager-localhost.out

Etapa 4 - Acessando o Hadoop no navegador

O número da porta padrão para acessar o Hadoop é 50070. Use o seguinte url para obter os serviços do Hadoop no navegador.

http://localhost:50070/

Etapa 5 - Verificar todos os aplicativos do cluster

O número da porta padrão para acessar todos os aplicativos do cluster é 8088. Use o seguinte url para visitar este serviço.

http://localhost:8088/