Comment demander des bibliothèques externes lors de l'exécution de travaux de diffusion en continu Amazon EMR écrits en Ruby?Utilisation de bibliothèques externes dans les scripts de diffusion en continu Ruby pour Amazon EMR
J'ai défini mon cartographe, et je reçois cette sortie dans mes journaux:
/mnt/var/lib/hadoop/mapred/taskTracker/jobcache/job_201008110139_0001/attempt_201008110139_0001_m_000000_0/work/./mapper_stage1 .rb: ligne 1: require: command not found
Ma première réaction est que ce soit le pot de streaming ne réalise pas que son exécution d'un script Ruby (j'ai une déclaration de tralala en haut de la script pointant vers/usr/bin/ruby) ou qu'il y a quelque chose de funky dans la façon dont l'API de streaming traite du référencement des bibliothèques externes.
Merci d'avance!
Isaac
semble ne pas être exécuté par ruby. Vous pourriez essayer d'ajouter quelque chose comme RUBY_VERSION en haut ... – rogerdpack
C'est exactement ce que le problème était - il exécutait mon script ruby à travers sh. Résoudre ce problème particulier en déclarant explicitement un interpréteur ruby lors de l'exécution du travail à partir de l'outil de ligne cms (ie: --mapper 'ruby s3: //mybucket/mymapper.rb Je vais le mettre à jour quand je le ferai fonctionner avec succès - – isparling
Si vous utilisez '#!/usr/bin/env ruby', le script s'exécutera en utilisant le premier interpréteur ruby trouvé sur le PATH. –