2016-04-08 1 views
0

Nous utilisons Azure Batch Apps qui va créer plusieurs machines virtuelles qui peuvent être utilisées pour exécuter nos tâches parallèlement. Nous utilisons Python pour les tâches de récupération de données.Azure Batch Apps installe des paquets python au démarrage

Nous avons mentionné dans les applications de traitement par lots pour installer anaconda sur les machines virtuelles quand ils démarrent. Anaconda est installé correctement. Nous avons listé les paquets (requirements.txt) que nous devons installer pour exécuter les tâches.

pip install -r requirements.txt 

Certains paquets sont installées correclty, mais certains paquets entraînent l'erreur suivante,

Error [Error 6] The handle is invalid while executing command python setup.py egg_info 
Exception: 
Traceback (most recent call last): 
    File "C:\user\tasks\shared\anaconda2\lib\site-packages\pip\basecommand.py", line 209, in main 
    status = self.run(options, args) 
    File "C:\user\tasks\shared\anaconda2\lib\site-packages\pip\commands\install.py", line 310, in run 
    wb.build(autobuilding=True) 
    File "C:\user\tasks\shared\anaconda2\lib\site-packages\pip\wheel.py", line 748, in build 
    self.requirement_set.prepare_files(self.finder) 
    File "C:\user\tasks\shared\anaconda2\lib\site-packages\pip\req\req_set.py", line 360, in prepare_files 
    ignore_dependencies=self.ignore_dependencies)) 
    File "C:\user\tasks\shared\anaconda2\lib\site-packages\pip\req\req_set.py", line 591, in _prepare_file 
    abstract_dist.prep_for_dist() 
    File "C:\user\tasks\shared\anaconda2\lib\site-packages\pip\req\req_set.py", line 127, in prep_for_dist 
    self.req_to_install.run_egg_info() 
    File "C:\user\tasks\shared\anaconda2\lib\site-packages\pip\req\req_install.py", line 430, in run_egg_info 
    command_desc='python setup.py egg_info') 
    File "C:\user\tasks\shared\anaconda2\lib\site-packages\pip\utils\__init__.py", line 678, in call_subprocess 
    cwd=cwd, env=env) 
    File "C:\user\tasks\shared\anaconda2\lib\subprocess.py", line 702, in __init__ 
    errread, errwrite), to_close = self._get_handles(stdin, stdout, stderr) 
    File "C:\user\tasks\shared\anaconda2\lib\subprocess.py", line 823, in _get_handles 
    p2cread = _subprocess.GetStdHandle(_subprocess.STD_INPUT_HANDLE) 
WindowsError: [Error 6] The handle is invalid 

Lorsque nous ouvrons la machine virtuelle et donner la même commande, tous les paquets sont installées correctement.

Je me demande juste où est le problème.

+0

Pourriez-vous partager votre requirements.txt? –

+0

J'ai rencontré le même problème lors de l'installation: - cryptographie - azure-batch - azure-storage – hula100

Répondre

0

Il semble que le problème a été causé par certaines limites du service Azure Batch, vous pouvez voir ces limites here. Selon les informations d'erreur, il semble que le processus d'installation doive traiter le sous-processus, mais le nombre maximum de tâches par nœud d'ordinateur est de 4, voir ci-dessous.

enter image description here

+0

Cette limite est uniquement dans le contexte des tâches planifiées via l'API Batch (ie, AddTask) et non le nombre de processus pouvant être forkés/créé sur le noeud. Ce qui signifie que la tâche planifiée elle-même peut générer un nombre quelconque de sous-processus. – fpark