/ / C # Process cmd.exe - "hadoop" nie jest rozpoznawany jako wewnętrzne lub zewnętrzne polecenie, działający program lub plik wsadowy - c #, iis, cmd, konto lokalnego systemu

C # Process cmd.exe - "hadoop" nie jest rozpoznawany jako wewnętrzne lub zewnętrzne polecenie, działający program lub plik wsadowy - c #, iis, cmd, konto lokalnego systemu

Okej, najpierw podam ci kontekst.

  1. Mam witrynę wdrożoną w IIS 7.
  2. Na serwerze zainstalowałem Windows MapR Client. Daje mi to dostęp do klastrów hadoopów w systemie Windows. (Instalacja klienta MAPR systemu Windows)
  3. Zalogowałem się i sprawdziłem, czy klient hadoop działa poprawnie.

Teraz problem.

Używam C # Process i ProcessStartInfoklasy, aby otworzyć instancję cmd.exe, skąd otrzymuję plik z serwera hadoop i udostępnić go w interfejsie użytkownika. (hadoop fs -get .....). Ale z jakiegoś powodu błąd, który zebrałem z procesu.StandardError zwraca błąd poniżej:

"hadoop" nie jest rozpoznawany jako polecenie wewnętrzne lub zewnętrzne, program operacyjny lub plik wsadowy.

Sprawdziłem, że użytkownik, który uruchamia proces cmd, jest jednym z administratorów serwera.

Rzeczy do zapamiętania: Katalog roboczy wiersza poleceń to "C: WindowsSysWOW64inetsrv". Czy to oznacza 32-bitowy cmd? Czy może to być powodem, dla którego hadoop nie jest rozpoznawany? Pomyślałem o replikowaniu problemu. (otwarcie 32-bitowego polecenia cmd i wpisanie hadoop dla tego administratora, ale komenda hadoop działała poprawnie)

Nie rozumiem tutaj, dlaczego komenda hadoop nie jest rozpoznawana dla tego wysoko uprzywilejowanego użytkownika.

AKTUALIZACJA:

To wydaje się być podobny problem. Spróbuję i dam ci znać.

Process.Start cmd.exe nie uruchomi pliku cmd, który jest przekazywany jako argument podczas działania w IIS

OK, to nie jest ten sam problem. Ponieważ jestem w stanie otworzyć i uruchomić plik wsadowy. Ale cmd nie rozpoznaje poleceń, które zainstalowałem.

Nasuwa się więc pytanie, jaka wersja CMd faktycznie się zaczyna? Według wersji mam na myśli cmd, który nie ma niczego zainstalowanego w nim?

Odpowiedzi:

0 dla odpowiedzi № 1

Przeglądają się 32-bitowe procesy

  • c: windowssyswow64 pytając o c: windowsSystem32

  • c: windowssystem32 pytając o c: windowssysnative

i 64-bitowe procesy

  • c: windowssystem32 pytając o c: windowssystem32

  • c: windowssyswow64 pytając o c: windowssyswow64

  • generuje błąd przy pytaniu o c: windowssysnative