Hadoop:错误执行编译WordCount

时间:2018-10-11 13:33:51

标签: hadoop java-8 ubuntu-18.04 hadoop3

我已经安装了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。

我已经阅读了很多不同的帖子和可能的解决方案,但是我无法解决。

1 个答案:

答案 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