シェルスクリプトの実行とは別に、Windowsでhadoopがcygwinを必要とする理由を理解しようとしています。Hadoop のさまざまな部分に POSIX 固有の実装があることは知っていますが、Linux 固有の Hadoop の部分を正確に知りたかっただけです。
ありがとう
一部のHadoop内部では、Javaによって提供されないシステムに関する詳細情報または操作が必要です。
IIRCでは、Java6でファイルの所有者を変更することはできません。
ただし、Hadoopにはこのタイプの操作が必要です。このような場合、Hadoopは別のプロセスでUnixコマンドを実行します。ユーティリティクラスShellには、これらのサブプロセス呼び出しが多数含まれています。
リストには次のものが含まれます
同様の理由で、クラスProcessTreeはsetsidとkillを使用します。
Hadoopはアプリケーションを使用するため、親システムで使用可能である必要があります。Cygwinがこれを提供します。
[編集:]実際、lib/nativeのネイティブコードはオプションです。一致するライブラリバージョンが存在する場合にのみ(パフォーマンス上の理由で)使用されます。
Hadoopは、シェルスクリプトを使用して、特にマスタープロセスとスレーブプロセスを開始および停止します。また、openssh(パスワードなし)も必要です。cygwinのインストールは、これに対処する最も簡単な方法です。