繁体   English   中英

C#进程cmd.exe-无法将“ hadoop”识别为内部或外部命令,可操作程序或批处理文件

[英]C# Process cmd.exe - 'hadoop' is not recognized as an internal or external command, operable program or batch file

好的,我先给您介绍一下情况。

  1. 我在IIS 7中部署了一个网站。
  2. 在服务器上,我安装了Windows Mapr Client。 这使我可以访问Windows系统上的hadoop群集。 Windows MAPR客户端安装
  3. 我已登录并检查hadoop客户端是否正常运行。

所以现在的问题。

我正在使用C#Process和ProcessStartInfo类打开cmd.exe的实例,该实例是从hadoop服务器获取文件并使其在UI上可访问的。 (hadoop fs -get .....)。 但是由于某种原因,我从process.StandardError收集的错误返回以下错误:

“ hadoop”未被识别为内部或外部命令,可操作程序或批处理文件。

我检查了运行cmd进程的用户是服务器的管理员之一。

注意事项:命令提示符工作目录为“ C:\\ Windows \\ SysWOW64 \\ inetsrv”。 这是否意味着它是32位cmd? 也许这就是hadoop无法识别的原因? 我想到要复制这个问题。 (打开32位cmd提示符并为该管理员用户键入hadoop。但是hadoop命令成功运行)

我在这里不明白为什么这个高特权用户无法识别hadoop命令。

更新:

这似乎是一个类似的问题。 我会尝试的,并让您知道。

在IIS中运行时,Process.Start cmd.exe不会运行作为参数传递的cmd文件

好的,这不是同一个问题。 因为我能够打开并运行批处理文件。 但是cmd无法识别我已安装的命令。

所以问题来了,它实际上是从哪个版本的cmd开始的? 按版本,我的意思是其中未安装任何内容的cmd?

查看32位进程

  • 询问c:\\ windows \\ System32时c:\\ windows \\ syswow64

  • 要求c:\\ windows \\ sysnative时为c:\\ windows \\ system32

和64位进程

  • 询问c:\\ windows \\ system32时,c:\\ windows \\ system32

  • 询问c:\\ windows \\ syswow64时,c:\\ windows \\ syswow64

  • 要求c:\\ windows \\ sysnative时产生错误

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM