我已经安装了Hadoop 3.1.1,并且可以正常工作。但是,当我尝试编译WordCount示例时,我收到此错误:
// Loop though shipping packages
foreach ( WC()->shipping->get_packages() as $key => $package ) {
// Loop through Shipping rates
foreach($package['rates'] as $rate_id => $rate ){
echo $rate->get_label(). '<br>';
// Or:
echo $rate->label. '<br>';
}
}
要编译,我使用了下一行:
/usr/local/hadoop/libexec/hadoop-functions.sh: line 2358: HADOOP_COM.SUN.TOOLS.JAVAC.MAIN_USER: bad substitution
/usr/local/hadoop/libexec/hadoop-functions.sh: line 2453: HADOOP_COM.SUN.TOOLS.JAVAC.MAIN_OPTS: bad substitution
.bashrc中有下一个变量:
hadoop com.sun.tools.javac.Main WordCount.java
这次,我使用Oracle的Java 8,因为Ubuntu 18.08 LTS的apt-get无法让我选择安装OpenJDK8。我已经更新并升级了Ubuntu。
我已经阅读了很多不同的帖子和可能的解决方案,但是我无法解决。
答案 0 :(得分:0)
这是我在https://janzhou.org/2014/how-to-compile-hadoop.html中找到的可行解决方案
设置HADOOP_CLASSPATH:
export HADOOP_CLASSPATH=$(bin/hadoop classpath)
编译:
javac -classpath ${HADOOP_CLASSPATH} -d WordCount/ WordCount.java