1. Configure o ssh
Instale pacotes de software relacionados ao ssh:
Copie o código da seguinte forma: sudo apt-get install openssh-client openssh-server
Em seguida, inicie/encerre o sshd usando um dos dois comandos a seguir:
Copie o código da seguinte forma: sudo /etc/init.d/ssh start|stop
sudo serviço ssh iniciar | parar
Se o sshd for iniciado com sucesso, podemos ver resultados semelhantes aos seguintes:
Copie o código da seguinte forma: $ ps -e |
2766 ? 00:00:00 agente ssh
10558? 00:00:00
Neste momento, se você executar o seguinte comando ssh para fazer login na máquina, será solicitado que você insira uma senha:
Copie o código da seguinte forma: ssh localhost
Agora tudo o que precisamos fazer é não exigir senha:
Copie o código da seguinte forma: $ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa #Uma chave SSH de senha vazia
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
É isso. Se ainda assim não funcionar, as permissões no arquivo de chave podem estar definidas incorretamente.
2. Configurar o hadoop
Descompacte hadoop-1.2.1 em ~/ e crie o diretório hadoop-env em ~/. Continue a criar a seguinte estrutura de diretório em hadoop-env:
├── dfs
│ ├── ponto de verificação1
│ ├── dados1
│ ├── dados2
│ └── nome1
└── teste
└── entrada
Arquivo de configuração hadoop-1.2.1/conf/core-site.xml:
Copie o código do código da seguinte forma:
<?xml versão="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Coloque substituições de propriedades específicas do site neste arquivo -->.
<configuração>
<propriedade>
<nome>fs.default.nome</nome>
<valor>hdfs://localhost:9000</valor>
<final>verdadeiro</final>
</propriedade>
</configuração>
fs.default.name especifica o uri do HDFS. Se nenhuma porta for fornecida no valor, o padrão será 8020.
Arquivo de configuração hadoop-1.2.1/conf/hdfs-site.xml:
Copie o código do código da seguinte forma:
<?xml versão="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Coloque substituições de propriedades específicas do site neste arquivo -->.
<configuração>
<propriedade>
<name>dfs.name.dir</name>
<valor>~/hadoop-env/dfs/name1</valor>
<final>verdadeiro</final>
</propriedade>
<propriedade>
<nome>dfs.data.dir</nome>
<valor>~/hadoop-env/dfs/data1,~/hadoop-env/dfs/data2</valor>
<final>verdadeiro</final>
</propriedade>
<propriedade>
<nome>fs.checkpoint.dir</nome>
<valor>~/hadoop-env/dfs/checkpoint1</valor>
<final>verdadeiro</final>
</propriedade>
</configuração>
dfs.name.dir especifica o diretório onde o namenode armazena metadados. Vários diretórios devem ser separados por vírgulas; checkpoint.dir especifica o diretório onde o namenode auxiliar armazena pontos de verificação.
Arquivo de configuração hadoop-1.2.1/conf/mapred-site.xml:
Copie o código do código da seguinte forma:
<?xml versão="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Coloque substituições de propriedades específicas do site neste arquivo -->.
<configuração>
<propriedade>
<nome>mapred.job.tracker</nome>
<valor>localhost:9001</valor>
<final>verdadeiro</final>
</propriedade>
</configuração>
3. Teste
Primeiro formato HDFS:
Copie o código da seguinte forma: ./hadoop-1.2.1/bin/hadoop namenode -format
Inicie os processos HDFS e MapReduce:
Copie o código do código da seguinte forma:
$ ./hadoop-1.2.1/bin/start-dfs.sh
$ ./hadoop-1.2.1/bin/start-mapred.sh
Se um erro for relatado durante a inicialização, como localhost: Error: JAVA_HOME is not set., você precisará exportar JAVA_HOME no arquivo ./hadoop-1.2.1/conf/hadoop-env.sh, por exemplo:
exportar JAVA_HOME=~/jdk1.7.0_25
Como verificar se foi iniciado com sucesso: O primeiro método é usar o comando jps (Java Virtual Machine Process Status Tool. Deve haver uma saída semelhante à seguinte:
Copie o código do código da seguinte forma:
$ jps
13592 DataNode
13728 NomeSecundárioNode
13837 JobTracker
12864 NomeNode
13955 Rastreador de Tarefas
16069Jps
O segundo método é fazer login no navegador em http://localhost:50030 para visualizar o jobtracker e http://localhost:50070 para visualizar o namenode. Se você estiver usando software de evasão, poderá receber um erro ao acessar. A solução mais simples é desligar o software de evasão. Outra maneira é visualizar o arquivo de log.
Agora criamos dois arquivos no diretório ~/hadoop-env/test/input:
Copie o código do código da seguinte forma:
$ echo "olá mundo" > test1.txt
$ echo "oi, mundo" > test2.txt
Importe estes dois arquivos para o HDFS:
Copie o código do código da seguinte forma:
./hadoop-1.2.1/bin/hadoop dfs -put hadoop-env/test/input/output/
Verificar:
Copie o código do código da seguinte forma:
$ ./hadoop-1.2.1/bin/hadoop dfs -ls /
Foram encontrados 2 itens
drwxr-xr-x - supergrupo de usuários 0 22/10/2013 22:07 /test
drwxr-xr-x - supergrupo de usuários 0 22/10/2013 21:58 /tmp
$ ./hadoop-1.2.1/bin/hadoop dfs -ls /teste
Foram encontrados 2 itens
-rw-r--r-- supergrupo de 3 usuários 12 22/10/2013 22:07 /test/test1.txt
-rw-r--r-- 3 supergrupo de usuários 9 22/10/2013 22:07 /test/test2.txt
OK, a configuração está concluída.
Nota: O sistema usado neste artigo é o linux mint 15 64 bits e o hadoop usa a versão 1.2.1.