2015-03-23 4 views
1

Bon, je vais d'abord vous donner le contexte.C# Processus cmd.exe - 'hadoop' n'est pas reconnu comme une commande interne ou externe, un programme utilisable ou un fichier batch

  1. J'ai un site Web déployé dans IIS 7.
  2. Sur le serveur, je Windows Mapr client installé. Cela me donne un accès aux grappes hadoop sur le système Windows. (Windows MAPR client installation)
  3. J'ai ouvert une session et vérifié que le client hadoop fonctionne correctement.

Alors maintenant le problème.

J'utilise les classes C# Process et ProcessStartInfo pour ouvrir une instance de cmd.exe où j'obtiens le fichier du serveur hadoop et le rend accessible sur l'interface utilisateur. (hadoop fs -get .....). Mais pour une raison quelconque, l'erreur que je collectionnais de process.StandardError renvoie l'erreur ci-dessous:

« Hadoop » est pas reconnu comme une commande interne ou externe, un programme ou un fichier batch.

J'ai vérifié que l'utilisateur qui exécute le processus cmd est l'un des administrateurs du serveur. Choses à noter: Le répertoire de travail de l'invite de commande est 'C: \ Windows \ SysWOW64 \ inetsrv'. Cela signifie-t-il un cmd 32 bits? Peut-être que c'est une raison Hadoop n'est pas reconnu? J'ai pensé reproduire le problème. (ouverture d'une invite cmd 32 bits et en tapant hadoop pour cet utilisateur admin.Mais la commande hadoop a fonctionné avec succès)

Je ne comprends pas pourquoi la commande hadoop n'est pas reconnue pour cet utilisateur privilégié.

MISE À JOUR:

Cela semble être un problème similaire. Je vais essayer et vous le faire savoir.

Process.Start cmd.exe won't run cmd file that is passed as agument when running in IIS

OK ce n'est pas le même problème. Comme je suis capable d'ouvrir et d'exécuter le fichier batch. Mais le cmd ne reconnaît pas les commandes que j'ai installées. Donc, la question serait, quelle version de cmd il commence réellement? Par version, je veux dire le cmd qui n'a rien installé dedans?

Répondre

0

32 processus de Bit regardent dans

  • c: \ windows \ syswow64 lorsque vous demandez c: \ windows \ System32

  • c: \ windows \ system32 lorsque vous demandez c: \ windows \ Sysnative

et 64 bits processus regardent dans

  • c: \ Windows \ System32 lorsque demandant c: \ Windows \ system32

  • c: \ Windows \ syswow64 en demandant pour c: \ Windows \ syswow64

  • générer une erreur en demandant c : \ windows \ sysnative

+0

Je ne suis même pas sûr si c'est un problème de 32 bits ou 64 bits. – UnitedSince88