作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在尝试了解为什么 hadoop 除了运行 shell 脚本之外还需要在 Windows 中使用 cygwin。我知道 hadoop 的各个部分都有 POSIX 特定的实现,我只是想知道 hadoop 的哪些部分是特定于 Linux 的?
谢谢
最佳答案
某些 Hadoop 内部构件需要有关系统的详细信息或操作,而 Java 未提供这些信息或操作。
因为 IIRC 无法在 Java 6 中更改文件的所有者。
但是,Hadoop 需要这种类型的操作。在这些情况下,Hadoop 在单独的进程中执行 Unix 命令。实用类 Shell包含很多这样的子流程调用。
列表包括
出于类似的原因,类 ProcessTree使用 setsid 和 kill。
由于 Hadoop 使用应用程序,因此它们必须在父系统上可用。 Cygwin 提供了这个。
[编辑:]实际上,lib/native 中的 native 代码是可选的。仅当存在匹配的库版本时才使用(出于性能原因)。
关于linux - 哪些是特定于 Linux 的 Hadoop 内部结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12343715/
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 4 年前。
正如您在 this travis.yml 中看到的那样文件,我的代码依赖于一些第三方库,我在构建项目之前将它们安装在远程系统上。 Travis 每次推送提交时都会下载并构建这些库,这可以避免吗?我的意
我是一名优秀的程序员,十分优秀!