我有一些由 Oracle JDK 7 编译的 map-reduce 程序。我正在尝试使用 whirr 0.8.1 来设置 EC2 集群来运行它们。但是 whirr 0.8.1 安装的默认 JDK 似乎是 Open JDK 6,我在运行它们时遇到了以下错误:
不支持的 major.minor 版本 51.0
因此,我尝试通过设置来指定 whirr 的 JDK 版本:
whirr.java.install-function = install_oracle_jdk7
但这会导致安装过程失败,尝试修改如下脚本似乎没什么用:
whirr-0.8.1\core\src\main\resources\functions\install_oracle_jdk7.sh
有谁知道如何通过 whirr 在 EC2 集群上安装 JDK 7?
非常感谢拉维。您页面中提到的以下信息是我错过的关键部分:
...我发现可以在 whirr 安装目录中创建一个函数目录,并将所有修改后的 shell 脚本放在那里...
我尝试将修改后的 install_oracle_jdk7.sh 放到 whirr-0.8.1\functions 中,这确实有效。以下是我在 install_oracle_jdk7.sh 中的修改:
(delete)
url=http://download.oracle.com/otn-pub/java/jdk/7/jdk-7-linux-i586.tar.gz
if [ "x86_64" == "$arch" ]; then
url=http://download.oracle.com/otn-pub/java/jdk/7/jdk-7-linux-x64.tar.gz
fi
(add)
url=http://download.oracle.com/otn-pub/java/jdk/7u9-b05/jdk-7u9-linux-i586.tar.gz
if [ "x86_64" == "$arch" ]; then
url=http://download.oracle.com/otn-pub/java/jdk/7u9-b05/jdk-7u9-linux-x64.tar.gz
fi
(delete)
curl $url -L --silent --show-error --fail --connect-timeout 60 --max-time 600 --retry 5 -o $tmpdir/`basename $url`
(add)
wget -c --no-cookies --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F" $url --output-document=$tmpdir/`basename $url`