我已经安装了 Hadoop 3.1.1,它正在工作。但是,当我尝试编译 WordCount 示例时,我收到此错误:
/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
为了编译,我使用了下一行:
hadoop com.sun.tools.javac.Main WordCount.java
我在 .bashrc 中有下一个变量:
#Hadoop variables
export HADOOP_HOME=/usr/local/hadoop
export CONF=$HADOOP_HOME/etc/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
#Java home
export JAVA_HOME=${JAVA_HOME}/java-8-oracle
#Path Java Tools
export HADOOP_CLASSPATH=$JAVA_HOME/lib/tools.jar
这次我使用的是 Oracle 的 Java 8,因为 Ubuntu 18.08 LTS 的 apt-get 没有给我安装 OpenJDK8 的选项。我已经更新和升级了 Ubuntu。
我已经阅读了很多不同的帖子和可能的解决方案,但我无法解决它。