INF550 - Computação em Nuvem I
Experimento com HDFS e MapReduce
Instalação do Hadoop
Para este experimento, utilizaremos a versão 2.8.0 do
Hadoop. As versões 3.0.0-alpha têm novas funcionalidades,
mas são mais instáveis. O experimento consiste em uma
parte fixa, em que você seguirá uma sequência bem definida de passos
para executar a versão MapReduce do grep. Em seguida, você deverá
explorar na web outras possibilidades de teste do ambiente MapReduce.
Instanciação de uma máquina virtual
Vamos fazer a instalação em uma máquina virtual
do ambiente OpenStack
fornecido pelo IC. Os principais passos para a configuração de uma
instância para este experimento são:
- Encerrar a execução de outras intâncias que estejam rodando (o número de IPs externos é limitado).
- Clicar em Access & Security (no menu lateral esquerdo)
- Clicar em Images (também no menu lateral esquerdo) e
escolher a imagem Ubuntu-trusty-server-amd64-14.04-LTS.
- Disparar uma instância desta imagem, com as seguintes características:
- Details:
- Instance name: ubuntu1
- Flavor: m1.medium-cpu-shared
- Access & Security
- Verificar que cloud está sendo usado como par de chaves
- Escolher e confirmar senha do administrador
- Selecionar grupo de segurança default
- Networking
Após a configuração, vamos testar o acesso via ssh com:
$ ssh -i cloud.key ubuntu@<ip da instância>
Configuração básica da máquina virtual
Para que a configuração sugerida na página do Hadoop funcione, você irá precisar destes passos adicionais:
- Atualizar a imagem
ubuntu@ubuntu1:~$ sudo apt-get update
- Instalar o java
ubuntu@ubuntu1:~$ apt-get install openjdk-7-jre
- Incluir, como root, uma linha no arquivo /etc/hosts
<ip> ubuntu1
- Criar um arquivo .ssh/id_rsa contendo o conteúdo de cloud.key e proteção 0600.
- Testar se você consegue fazer ssh localhost sem senha:
ubuntu@ubuntu1:~$ ssh localhost
Download e testes
Existem três modos para teste e instalação:
Sugiro o modo Pseudo-Distributed, também chamado de Single Node Cluster. Neste modo, você precisará de apenas um computador e poderá verificar o funcionamento dos componentes
do Hadoop (HDFS e MapReduce). Você deve seguir estes passos:
Escrevendo seu próprio MapReduce
É bastante simples rodar o WordCount a partir de um código fonte.
A partir deste passo, você poderá alterar este teste,
para implementar o seu próprio código mapreduce. Por exemplo,
você pode escrever uma variação que conta as
palavras de mesmo tamanho ou as palavras que começam com uma
dada letra.
Se você gosta de JAVA...
Execute o código do WordCount v1.0, seguindo
o
MapReduce Tutorial.
Se você prefere Python...
Siga as intruções em Writing an Hadoop MapReduce Program in Python. Para executar, utilize um comando similar a:
$ bin/hadoop jar share/hadoop/tools/lib/hadoop-*streaming*.jar -mapper mapper.py -reducer reducer.py -input /input -output /output
Entrega do relatório
O experimento pode ser feito em duplas; apenas uma pessoa precisa
entregá-lo via Moodle. Em caso de fraude, poderá ser atribuída nota
zero à disciplina.
Data final para entrega: 01 de julho