A correr o Amazon EMR com um AMI personalizado?
Eu preciso executar uma tarefa personalizada de C++ como uma redução de mapa na Amazon, e estava planejando usar o streaming Hadoop para isso. O executável mapper c++ baseia-se emdezenas de bibliotecas personalizadas , Algumas das quais são demoradas a construir.
esperava que o EMR suportasse o amis personalizado (já tem um construído). No entanto, após uma cuidadosa análise da documentação, parece que só é possível executar EMR em imagens predefinidas: http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/emr-cli-commands.html.
Está a escapar-me alguma coisa? Se, de facto, só forem suportados AMIs pré-definidos, Qual é a melhor opção para pôr isto a funcionar? O executável, obviamente, está no s3, mas posso realmente empacotá-lo para que não dependa de nenhuma libs compartilhada? Obrigado.3 answers
Você está correto, por causa das muitas ferramentas de software e configurações necessárias em um nó de cluster Hadoop, apenas Amazon desde que o AMI seja permitido em EMR. http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/emr-plan-ami.html
Pode utilizar técnicas padrão de inicialização para instalar qualquer software adicional que necessite para executar no seu cluster. Ver http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/emr-plan-bootstrap.html to saiba mais sobre as ações bootstrap.
De volta à sua mala de uso : Por que está a demorar tanto tempo a iniciar o seu caso de uso ? Porque há muitos pacotes ? Porque estás a compilá-los a partir da fonte ?
Neste último caso, pode valer a pena construir o teu .deb pacotes e para instalá-los a partir de um repositório personalizado para acelerar o processo bootstrap.Se é só porque você tem muitos pacotes para instalar, receio que não haja nenhuma solução óbvia hoje. Posso pensar no EBS. instantâneos e volumes sendo criados e anexados durante o bootstrap-mas a viabilidade disso realmente depende do seu caso de uso.
O amis personalizado é de facto um caso de uso muito interessante. Uma opção para você seria usar o Qubole que oferece suporte inbuilt para amis personalizados construídos, onde, em seu caso, instalar todas as suas bibliotecas necessárias, juntamente com todas as características legais do Qubole, como suporte para a autoscalagem, spot instâncias e muito mais!
Aviso: eu trabalho para a Qubole.
Http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/emr-plan-bootstrap.html
No entanto, para nós, serão precisos 15-20 minutos para executar o script personalizado. Eu estou esperando que haja uma maneira de personalizar o AMI e adicionar software necessário em AMI em vez de instalá-lo em cada nó quando eles estão vindo para cima.