我试图了解为什么hadoop除了运行shell脚本外,还需要在windows中使用cygwin。我知道hadoop的各个部分都有特定于posix的实现,我只是想知道hadoop的哪些部分是linux特定的?谢谢
eqoofvh91#
一些hadoop内部需要java没有提供的关于系统的详细信息或操作。因为在Java6中,iirc不可能更改文件的所有者。但是,hadoop需要这种类型的操作。在这些情况下,hadoop在单独的进程中执行unix命令。实用程序类shell包含许多这样的子进程调用。清单包括文件描述符奇莫德哇长征以及其他出于类似的原因,类processtree使用setsid和kill。由于hadoop使用这些应用程序,它们必须在父系统上可用。cygwin提供了这个。[编辑:]实际上,lib/native中的本机代码是可选的。只有在存在匹配的库版本时才使用它(出于性能原因)。
r8xiu3jd2#
hadoop使用shell脚本来启动和停止主进程和从进程等。它还需要openssh(无密码)。安装cygwin是解决这个问题的最简单方法。
2条答案
按热度按时间eqoofvh91#
一些hadoop内部需要java没有提供的关于系统的详细信息或操作。
因为在Java6中,iirc不可能更改文件的所有者。
但是,hadoop需要这种类型的操作。在这些情况下,hadoop在单独的进程中执行unix命令。实用程序类shell包含许多这样的子进程调用。
清单包括
文件描述符
奇莫德
哇
长征
以及其他
出于类似的原因,类processtree使用setsid和kill。
由于hadoop使用这些应用程序,它们必须在父系统上可用。cygwin提供了这个。
[编辑:]实际上,lib/native中的本机代码是可选的。只有在存在匹配的库版本时才使用它(出于性能原因)。
r8xiu3jd2#
hadoop使用shell脚本来启动和停止主进程和从进程等。它还需要openssh(无密码)。安装cygwin是解决这个问题的最简单方法。