hadoop-config.sh在bin /和libexec /

在设置hadoop时,我发现hadoop-config.sh脚本存在于两个目录bin /和libexec /中。 这两个文件是相同的。 在查看脚本时,我发现如果hadoop-config.sh存在于libexec中,那么它将被执行。 如果不是,那么bin /下的那个被调用。 在两个目录中保留相同文件的目的是什么?

感谢您指出这一点。我尝试在我的系统

[root@prashant bin]# hadoop version Hadoop 1.2.1 

而你是绝对正确的

20:39:57.038706 open(“/ usr / local / hadoop / libexec /../ conf / hadoop-env.sh”,O_RDONLY)= 3 <0.000253>

当我移动这个文件,然后将其引用到/ bin文件中

20:42:51.024234 open(“/ usr / local / hadoop / bin /../ conf / hadoop-env.sh”,O_RDONLY)= 3 <0.000332>

然后我configuration了最新版本的hadoop

 [root@hadoop libexec]# hadoop version Hadoop 2.4.1 [root@hadoop libexec]# pwd /usr/local/hadoop/libexec [root@hadoop libexec]# ls -l hadoop-config.sh -rwxr-xr-x 1 67974 users 9793 Jun 21 11:35 hadoop-config.sh [root@hadoop bin]# pwd /usr/local/hadoop/bin [root@hadoop bin]# ls -l hadoop-config.sh ls: cannot access hadoop-config.sh: No such file or directory 

所以目前为止,我看到大多数脚本都是从最新版本的bin中移出来的,但是我仍然没有回答你的问题

历史事故? 开发人员只是为了让他们工作而构build的东西? 过去,在确保用于启动所有Java程序的操作shell脚本经过深思熟虑和devise之后,并没有做出巨大的努力。

艾伦·维特诺尔(Allen Wittenauer)在HADOOP-9902中进行了一些巩固和修正这些问题的艰巨任务。 你可能希望看JIRA的问题。

如果您使用的是Apache的发行版,您可能会很快看到“即将”发生的更改。 如果你正在使用其中的一个商业版本,我希望他们能够稍后得到更改。 至less他们可能会等到艾伦的工作完全投入。