Arquivo escravos Hadoop necessário?

3

Estou trabalhando em uma equipe que está tentando criar um sistema para criar clusters do Hadoop no EC2 com o mínimo de esforço por parte do usuário. Idealmente, gostaríamos que instâncias escravas exigissem apenas o nome do host da instância do mestre como dados do usuário na inicialização. Os escravos então rsync suas configurações da instância mestre e iniciar seus daemons TaskTracker e DataNode automaticamente.

Minha pergunta é a seguinte: é necessário que os nomes de host das instâncias de escravo sejam listados no arquivo conf/slaves da instância do mestre? A única vez que vi esse arquivo usado no código para o Hadoop é pelos scripts start-{dfs,mapred}.sh , que são o SSH em todas as máquinas listadas e iniciam os daemons. Se os daemons nos nós escravos começarem automaticamente, e se eles souberem a localização do JobTracker e do NameNode (através da configuração), eles podem se conectar ao JobTracker / NameNode sozinhos e serem tratados como escravos "normais"?

Suponho que a melhor maneira de descobrir é tentar, mas estamos nos perguntando sobre o tempo de investimento / complexidade em tal sistema, então pensei em ver se alguém aqui tem experiência com esse problema. Vou editar se eu encontrar uma resposta eu mesmo.

EDIT: Eu testei isso, e todo o sistema parece funcionar bem sem escravos listados na configuração. JobTracker mostra o TaskTracker escravo sob sua lista de nós, e eu executei um teste com sucesso.

OUTRA EDIÇÃO: Vale a pena observar que isso não funcionará se você usar a lista de desbloqueio do host do DFS ( conf/dfs.hosts ), que é um recurso pelo menos na distribuição do Cloudera.

    
por Tim Yates 21.02.2010 / 19:11

1 resposta

1

O arquivo escravos é usado apenas pelos scripts bin / start e stop. Se você está rodando no EC2, você deve verificar os scripts do EC2, por exemplo "hadoop-ec2 update-slaves-file"

    
por 24.02.2010 / 06:37