Você está na página 1de 27

Configurar Hadoop em Cluster com 3 VMs no

VirtualBox
Índice

1. Introdução
2. Requisitos
3. Preparar Virtual Machine
3.1 Criação de VM e instalação de sistema operacional convidado
3.2 Instalando Adicionais para Convidado
4. Criação de cluster de máquinas virtuais
4.1 Configurações de Rede VM
4.2 Clonagem do Virtual Machine
4.3 Testando os IPs de rede atribuídos para VMs
4.4 Convertendo para estático IPs para VMs
5. configurações de pré-requisitos do Hadoop
5.1 Criação do usuário
5.2 ipv6 Disable
5.3 Ligar as máquinas (SSH Access)
6. Configuração do Hadoop
6.1 Baixar Hadoop
6.2 Atualização bashrc
6.3 Configurando o Hadoop
6.4 Formatando o NameNode
6.5 Iniciar o sistema de formatação Distribuído
6.6 Teste de MapReduce Job
6.7 Parando o Sistema Formato Distribuído
7. Conclusão
8. arquivos de configuração de download

1. Introdução
Apache Hadoop é projetado para uma instalação de cluster multi-máquina. Embora
seja possível para rodar em uma única máquina também para fins de teste, mas a
implementação real é para clusters multi-máquina. Mesmo se quisermos experimentar
uma configuração multi-máquina teremos vários sistemas que estão ligados uns aos
outros através da rede que não é possível sempre; E se você não tem múltiplos sistemas
para experimentar o Hadoop Cluster?

As máquinas virtuais vem para solucionar esse problema. Usando várias máquinas
virtuais você pode configurar o Hadoop Cluster usando um único sistema. Neste exemplo,
vamos discutir como configurar o Apache Hadoop Cluster usando máquinas virtuais.

2. Requisitos
 VirtualBox (ou qualquer outro ambiente VM)
 Lubuntu 15,04 (ou qualquer outro sabor linux de sua preferência)
 VBox Adições Clientes arquivo de imagem (VBoxGuestAdditions.iso)
Eu pessoalmente prefiro Lubuntu, é leve e tem o LXDE e desktop GUI, ele retira todos
os componentes adicionais que estão presentes no Ubuntu e é uma boa opção para
máquinas virtuais.

3. Preparar Virtual Machine


Nesta seção vamos passar por etapas para preparar as máquinas virtuais que iremos
usar para agrupar mais tarde no exemplo.

3.1 Criação de VM e instalação de sistema operacional convidado

1. Criar uma máquina virtual (VM) no VirtualBox e atribuir mínimo 2 GB de


memória e 15 GB de armazenamento para a máquina virtual. Nomear o primeiro
VM como Hadoop1 .

Criação de máquina virtual no VirtualBox

2. Uma vez que a VM é criado, instale Lubuntu na VM e conclui a instalação,


agora vamos máquina virtual.
Instalando Lubuntu na VM criada.

3. A instalação do sistema operacional pode levar algum tempo.


Instalação Lubuntu em andamento.

3.2 Instalando Adicionais para Convidado.

O passo seguinte é instalar adições convidado na VM. Adições de Clientes são a


instalação adicional necessária para a VM obter um bom desempenho. É composto de
drivers e de dispositivos e aplicações de sistemas que otimizam o sistema operacional
convidado para um melhor desempenho e usabilidade. Este é um dos passos importantes
e necessários, sempre que criar uma máquina virtual, no que permite que o sistema
operacional do cliente detecta o tamanho da tela (o que ajuda na gestão da tela cheia VM)
e também permitindo sistema operacional convidado ter uma pasta compartilhada com o
sistema operacional do host, se necessário. A seguir estão as etapas que precisam ser
executadas para instalar adições de convidado no sistema operacional do cliente:

1. Primeiro de tudo, preparar o sistema para a construção de módulos externos do


kernel que pode ser feito executando o seguinte comando no terminal e instalar
DKMS (DKMS fornece suporte para instalar versões complementares de módulos
do kernel):
1 sudo apt-get install dkms

2. Insira VBoxGuestAdditions.iso arquivo CD na unidade de CD-ROM virtual de


convidado do Linux.
3. Agora, abra o terminal e altere o diretório para a unidade de CD-ROM e, em
seguida, execute o seguinte comando:

1 sh ./VBoxLinuxAdditions.run

Nota: Neste ponto precisa reiniciar o sistema e passar para a próxima etapa, onde
vamos definir as configurações de rede para a máquina virtual.

4. Criação de cluster de máquinas virtuais


Nesta seção, vamos ver como configurar a rede para as máquinas virtuais atuar como
máquinas de cluster individuais, como clonar a primeira máquina para outras VMs que
irá poupar o tempo de uma nova criação, já que não precisa executar etapas anteriores em
toda a máquina individualmente.

4.1 Configurações de Rede VM

1. Ir para Virtualbox no menu de preferências e selecione “Preferências” no menu


suspenso.
VirtualBox Menu Preferências.

2. Em “Preferências” menu, selecione “Rede”. Em preferências de rede, selecione


“Redes somente Host ‘ e clique em ‘ Adicionar Driver ‘ . O driver será adicionado
à lista. Clique duas vezes ele vai abrir um pop-up de configurações do servidor
DHCP, insira as configurações do servidor DHCP, como mostrado na imagem
abaixo.
Configurações do servidor DHCP

Vamos definir o limite inferior e limite superior da rede a ser ‘192.168.56.101’ e


‘192.168.56.254’ , todas as máquinas terão os IPs atribuídos a partir de apenas
desta faixa. Não se esqueça da verificação ‘Ativar Servidor’

3. Uma vez que as configurações de rede são feitas e servidor DHCP pronto, no
VirtualBox Manager, botão direito do mouse na máquina virtual e a partir da lista
e selecione “Configurações” no menu suspenso. A partir do configurações de
pop-up, selecione “Rede” e depois “Adapter2 ‘ check ‘ Ativar adaptador de
rede” e, em seguida, em ‘Anexado ao ‘dropdown’ escolher ‘adaptador só-Host’.
Na segunda lista suspensa, nomes de todos os adaptadores estarão disponíveis,
incluindo o que criamos na etapa anterior. Selecione desde o ‘dropwdown’, no
nosso exemplo é nomes como ‘vboxnet0’ . Isto irá anexar a máquina virtual para
esta rede particualr.
Definições da Máquina Virtual.

4.2 Clonagem do Virtual Machine

Agora temos uma máquina virtual pronta, clonar esta máquina virtual para criar
máquinas idênticas, isso nos salva do incômodo de todas as etapas anteriores e podemos
facilmente ter várias máquinas virtuais com a mesma configuração. Segue abaixo:

1. Clique com o botão direito do mouse sobre a máquina virtual e no menu suspenso
selecione ‘Clone’ .
2. No pop-up clone, mudar o nome da VM para ‘Hadoop2’ e selecione ‘reinicializar
o endereço MAC de todas as placas de rede “ e clique em Continuar.
Clonagem do Virtual Machine

Nota: Reinitializing o endereço MAC se certificar de que a nova máquina virtual


terá um endereço MAC diferente para a placa de rede.

3. Na próxima tela, selecione ‘Full Clone “ opção e clique em ‘ Clone ‘ .


Clone completo do Virtual Machine.

4.3 Testando os IPs de rede atribuídos para VMs.

Portanto, agora temos 2 máquinas na mesma rede. Temos para testar se tanto as
máquinas estão ligadas à configuração que adaptador de rede para o cluster. A seguir
estão os passos para fazer isso:

1. Comece ambas as máquinas virtuais e em terminais para usar o seguinte comando:

2.

1 ifconfig

3. Isto irá mostrar a configuração de rede da máquina. Notaremos que o IP atribuído


está na faixa de 192.168.56.101 e 192.168.56.254 (ou seja, entre o endereço limite
inferior e endereço superior ligou atribuído à rede DHCP)
4.
5. Configuração de IP da máquina virtual.

Nota: executar a mesma tarefa para ambas as máquinas e confirmar que está tudo
bem.

4.4 Convertendo para estático IPs para VMs

Haverá um problema com esta configuração embora. IPs são alocados aleatoriamente
para os sistemas e pode mudar no futuro reinicializações. Hadoop precisa IPs estáticos
para acessar as máquinas no cluster, por isso temos de corrigir os IPs das máquinas para
ser estático sempre e atribuir IPs específicos para ambas as máquinas. Os seguintes passos
devem ser realizados em ambas as máquinas.

1. Ir para /etc/networks no terminal e editar o arquivo de interfaces como uma


raiz.0

1 #Go Para o diretório redes


2 cd/etc/networks
3 #edit O arquivo 'interfaces' interfaces de sudo nano

2. Adicione as seguintes linhas no final do arquivo de interfaces.


auto eth1
1
iface eth1 inet static
2
#assign Um IP estático para a máquina virtual
3
endereço 192.168.56.101
4
netmast 255.255.255.0
5
rede 192.168.56.0
6
#Mention O endereço de transmissão, obter este endereço usando ifconfig
7
commmand
8
#in neste caso, é 192.168.56.255
9
transmissão 192.168.56.255

Arquivo de interfaces.

3. Em cada máquina, edite o arquivo /etc/hosts como root e adicione os


anfitriões. Por exemplo:

1 #editar usando editor nano


2 sudo nano /etc/hosts

Adicionar seguintes hosts:


1 192.168.56.101 hadoop1
2 192.168.56.102 hadoop2

Nota: IPs deve ser o mesmo que atribuído no passo anterior.

Hosts na máquina virtual.

4. Reinicie todas as máquinas.


5. Configurações de pré-requisitos do Hadoop.
A seguir estão as configurações pré-requisito para a instalação do Hadoop. Lembre-se
de todos os ajustes precisam ser feitos em todas as máquinas que serão adicionados ao
cluster (2 máquinas neste exemplo)

5.1 Criação do usuário

Criar usuários Hadoop em todas as máquinas. Para isso abra o terminal e digite os
seguintes comandos:
1 #create um grupo de usuários para Hadoop
2 sudo addgroup hadoop
3 #create hduser de usuário e adicioná-lo ao grupo de usuários hadoop
4 sudo adduser --ingroup hduser hadoop

5.2 ipv6 Disable

O passo seguinte é desativar o IPv6 em todas as máquinas. Hadoop é configurado para


usar IPv4 e é por isso que temos de desativar o IPv6 antes de criar um cluster Hadoop.
Abra /etc/sysctl.conf como root usando nano.

1 sudo /etc/sysctl.conf nano

Agora adicione as seguintes linhas no final do arquivo.

1 #commands para desativar o IPv6


2 net.ipv6.conf.all.disable-ipv6 = 1
3 net.ipv6.conf.default.disable-ipv6 = 1
4 net.ipv6.conf.lo.disable-ipv6 = 1

Depois disso, para verificar se o IPv6 é propriamente desativar, use o seguinte


comando.

1 cat/proc/sys/net/ipv6/conf/all/desativar-ipv6

O comando irá retornar 0 ou 1 como uma saída e nós queremos que seja uma vez que
simboliza que o IPv6 está desativado.

5.3 Ligar as máquinas (SSH Access)

Agora, nós temos que certificar-se de que as máquinas são capazes de alcançar um ao
outro através da rede utilizando endereços IP estáticos e SSH. Para este exemplo, vamos
considerar hadoop1 máquina que o nó mestre e hadoop1 e hadoop2 tanto como os nós
escravos. Então nós temos que certificar-se de:
 hadoop1 (master) deve ser capaz de conectar-se a si próprio utilizando

1 hadoop1 ssh

 Ele deve ser capaz de se conectar a outros VM usando:

1 ssh hduser@hadoop2

Para conseguir isso, temos de gerar chaves SSH em cada máquina. Então, faça o login
para hadoop1 e seguindo as etapas mencionadas abaixo no terminal:

1. Alterne para o usuário hduser e gerar as chaves públicas SSH:

1 #change para hduser usuário


2 - hduser
3 chave ssh #generate
4 ssh-keygen -t rsa -P ""
SSH Keygenration.

O segundo comando irá criar um par de chaves RSA para a máquina. A senha
para essa chave estará vazia como mencionado no comando. Ele vai pedir para o
caminho para armazenar a chave com caminho padrão ser $HOME/.ssh/id-
rsa.pub , apenas pressione Enter quando for solicitado a manter o mesmo
caminho. Se você pretende mudar o caminho, em seguida, lembre-se que, uma
vez que serão necessários na próxima etapa.

2. Ative o acesso SSH para a máquina com a chave criada na etapa anterior. Para
isso, temos de acrescentar a chave para a lista de chaves autorizadas da máquina.

1 $HOME/ .ssh/ id-rsa.pub >> $HOME/ .ssh/ authorized_keys

3. Agora temos que adicionar o hduser@hadoop1 chave SSH pública’s (nó mestre)
para o arquivo de chaves autorizadas da hadoop2 hduser@máquina. Isso pode
ser feito usando os seguintes comandos no terminal de hadoop1 :
1 ssh-copy-id -i $ HOME/ .ssh/ id-ras.pub hduser@hadoop2

Isto irá solicitar a senha para o usuário hduser@hadoop2

4. Teste as conexões SSH de hadoop1 para si e também para hadoop2 para se


certificar de que está tudo bem usando:

1 hadoop1 ssh

Isto irá ligar hadoop1 a si mesmo, se conectado com êxito, saia da conexão e
tentar conectar-se ao hadoop2 máquina

1 ssh hduser@hadoop2

Isso também deve se conectar com êxito.

6. Configuração do Hadoop
Então, estamos no passo em que nós completamos toda a configuração inicial e agora
estamos prontos para Hadoop instalação no Cluster.

6.1 Baixar Hadoop

1. Baixar Hadoop da Apache Espelhos


www.apache.prg/dyn/closer.cgi/hadoop/core
2. Depois de download terminar, extraia pasta Hadoop e movê-lo para
/usr/local/hadoop e, finalmente, alterar o proprietário da pasta para hduser e
hadoop grupo.

1 #Change Para o diretório


2 cd/usr/local
3
4 #arquivos Hadoop MOVE para o diretório
5 sudo mv/home/hadoop1/Downloads/hadoop-2.7.1 hadoop
6
7 #change as permissões para o usuário hduser.
8 sudo chown -R hduser: Hadoop Hadoop

Podemos verificar as permissões na definição da pasta para confirmar se eles


estão bem.

Configurações de pasta para verificar permissões.

6.2 Atualização bashrc

1. Atualize o arquivo bashrc para o hduser usuário.

1 su - hduser
2 nano $HOME/ .bashrc

2. No final do arquivo, adicione as linhas folloeing.


1 exportação HADOOP_HOME=/usr/local/hadoop
2 export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-i386
3
4 # Alguns apelido conveniente
5 unalias fs &> /dev/null
6 de alias fs="fs Hadoop"
7 unalias HLS &> /dev/null
8 Alias HLS = "fs-ls"
9 export PATH=$PATH:$HADOOP_HOME/bin

Atualizando arquivo bashrc de hduser usuário.

6.3 Configurando o Hadoop

Agora, é o momento de configurar a configuração do Hadoop. A seguir estão os passos


que devem ser seguidos:

1. Esta necessidade de ser realizado em todas as máquinas. Abrir hadoop-env.sh


em /usr/local/hadoop/etc/hadoop/ e definir o variável como mostrado abaixo:

1 export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-i386
2. Em seguida, vamos configurar o core-site.xml na pasta
/usr/local/hadoop/etc/hadoop/ e adicione a seguinte propriedade.

1 <Configuration>
2 <Property>
3 <Nome> fs.default.FS </ name>
4 <Valor> hdfs: // hadoop1: 54310 </ value>
5 </Property>
6 </Configuration>

Isso também terá de ser editado em todas as máquinas, mas todos os valores
campos deve apontar para o nó mestre única que é hadoop1 neste exemplo.
Assim, para ambas as máquinas, a mesma propriedade com o mesmo nome e o
valor precisa ser adicionado.

3. Em seguida, precisamos atualizar hdfs-site.xml em todos os nós mestre e


escravo

1 <Configuration>
2 <Property>
3 <Name> dfs.replication </ name>
4 <Valor> 2 </ value>
5 </Property>
6 <Property>
7 <Name> dfs.namenode.name.dir </ name>
8 <Value> /usr/local/hadoop/hdfs/namenode</ value>>
9 </ Property>
10 <Property>
11 <Name> dfs.datanode.data.dir </ name>
12 <Value> /usr/local/hadoop/hdfs/DataNode </ value>
13 </ Property>
14 </ Configuration>

4. Agora, vamos atualizar mapred-site.xml arquivo. Ele precisa ser editado


apenas no nó mestre
1 <Configuration>
2 <Property>
3 <Name> mapreduce.jobtracker.address </ name>
4 <Valor> hadoop1: 54311 </ value>
5 </ Property>
6 </ Configuration>

5. A última configuração estará nos arquivos escravos na pasta


/usr/local/hadoop/etc/hadoop Adicione os nomes de host ou endereços IP dos
nós escravos:

1 hadoop1
2 hadoop2

Como hadoop1 atua como mestre e escravo por isso vamos adicionar ambos os
nomes de host.

6.4 Formatando o NameNode

Estamos agora feito com toda a configuração, por isso antes de iniciar o cluster
precisamos formatar o namenode. Para fazer isso, use o comando a seguir no hadoop1
(master) terminal de nó

1 hdfs namenode -format

6.5 Iniciar o sistema de formatação Distribuído

Agora é hora de iniciar o sistema formato distribuído e iniciar a execução do cluster. A


seguir, o comando para fazer isso:
1 /usr/local/hadoop/sbin/start-dfs.sh

Uma vez que o dfs começa sem qualquer erro, podemos navegar na interface web para
o NameNode em http://localhost:50070 no nó principal

Hadoop interface Web da Master Node.

Se você notar na parte inferior da tela, há dois nós ao vivo no momento o que confirma
que nosso cluster tem dois nós que esteja funcionando corretamente.

Nós também pode acessar a interface web de qualquer um dos nós escravos, mas para
aqueles que temos de usar o nome do host mestre ou endereço IP. Por exemplo, de
hadoop2 (nó escravo), podemos usar o endereço http://hadoop1:50070 para acessar a
interface web.
Hadoop interface Web a partir do nó escravo.

6.6 Teste de MapReduce Job

1. Primeiro de tudo, vamos fazer os diretórios HDFS necessários e copiar alguns


dados de entrada para fins de teste.

1 #make Os diretórios necessários


2 bin /hdfs dfs -mkdir /user
3 bin /hdfs dfs -mkdir /use/hduser

Esses diretórios podem ser acessados a partir da interface web também. Para fazer
isso, vá até a interface web, a partir do menu, selecione ‘Utilities’ e de suspenso
selecione “Procurar o sistema de arquivos ‘
Acessando diretórios em HDFS usando a interface web.

2. Agora, podemos adicionar alguns arquivos manequim para o diretório, que serão
utilizados para a finalidade de teste.Deixa a bunda todos os arquivos da
etc/hadoop pasta

1 #Copy Os arquivos de entrada para o sistema de arquivos distribuídos


2 /usr/local/hadoop/bin/hdfs dfs -put /usr/local/hadoop/etc/hadoop input

Imagem seguinte mostra os arquivos adicionados à diretórios


/user/hduser/input
Navegando arquivos no HDFS

3. Execute o MapReduce incluído no pacote Hadoop usando o seguinte comando

/usr/local/hadoop/bin/hadoop jar share/hadoop/mapreduce/hadoop-


1
mapreduce-example-2.7.1.jar grep input output 'dfs[a-z.]+'

Nota: Para detalhes sobre como exemplo MapReduce funciona, consulte o


artigo “Hadoop Olá Exemplo World”

Imagem seguinte mostra o log de saída do exemplo de teste:


Saída do exemplo de teste MapReduce

4. agora podemos ver o arquivo de saída usando

1 /usr/local/hadoop/bin/hdfs dfs -cat output/*

6.7 Parando o Sistema Formato Distribuído

Podemos parar os dfs (sistema de formato distribuído) usando o seguinte comando:

1 /usr/local/hadoop/sbin/stop-dfs.sh

Isso nos leva ao fim da configuração e teste inicial.

7. Conclusão
Isso nos leva à conclusão deste exemplo. Espero que isso faz com que seja um pouco
mais clara sobre como configurar o cluster do Hadoop em várias máquinas. No caso, um
cluster precisa ser configurado em várias máquinas físicas em vez de máquinas virtuais,
as instruções são semelhantes, exceto passos contendo 4,1 configurações VM de Rede e
4,2 clonagem da máquina virtual. Para cluster de máquinas físicas, podemos realizar todos
os outros passos sobre as máquinas e tudo deve funcionar sem problemas.

8. arquivos de configuração de download


Os arquivos de configuração que são modificados e utilizados para este exemplo pode
ser baixado aqui. Tenha em mente que a modificação feita nesses arquivos de
configuração pode ser diferente com base na rede de usuário e outra configuração e pode
precisar de ser alterado de acordo. O pacote contém:

1. arquivo hosts
2. arquivo sysctl.conf
3. Hadoop 1 pasta (contém arquivos nó mestre)
o núcleo-site.xml
o hdfs-site.xml
o mapred-site.xml
o escravos
4. Hadoop 2 pasta (contém arquivos de notas de escravos)
o núcleo-site.xml
o hdfs-site.xml

Baixar: Você pode baixar todos os arquivos acima mencionados deste exemplo aqui:
HadoopClusterSetup
**Nota do editor: Este post foi publicado originalmente em 11 de Janeiro de 2016
por Raman Jhajj no site https://examples.javacodegeeks.com em inglês e foi atualizado
para aumentar a precisão e a abrangência.

Você também pode gostar