hadoop:编译wordcount时执行错误

rt4zxlrg  于 2021-06-01  发布在  Hadoop
关注(0)|答案(1)|浏览(561)

我已经安装了hadoop3.1.1,它正在工作。但是,当我尝试编译wordcount示例时,收到以下错误:

  1. /usr/local/hadoop/libexec/hadoop-functions.sh: line 2358: HADOOP_COM.SUN.TOOLS.JAVAC.MAIN_USER: bad substitution
  2. /usr/local/hadoop/libexec/hadoop-functions.sh: line 2453: HADOOP_COM.SUN.TOOLS.JAVAC.MAIN_OPTS: bad substitution

为了编译,我使用了下一行:

  1. hadoop com.sun.tools.javac.Main WordCount.java

我在.bashrc中有下一个变量:

  1. # Hadoop variables
  2. export HADOOP_HOME=/usr/local/hadoop
  3. export CONF=$HADOOP_HOME/etc/hadoop
  4. export PATH=$PATH:$HADOOP_HOME/bin
  5. export PATH=$PATH:$HADOOP_HOME/sbin
  6. # Java home
  7. export JAVA_HOME=${JAVA_HOME}/java-8-oracle
  8. # Path Java Tools
  9. export HADOOP_CLASSPATH=$JAVA_HOME/lib/tools.jar

这次我使用的是oracle的java8,因为ubuntu18.08lts的apt-get没有给我安装openjdk8的选项。我已经更新和升级了ubuntu。
我读过很多不同的帖子和可能的解决方法,但我不能解决它。

33qvvth1

33qvvth11#

这是一个可行的解决办法,我发现在https://janzhou.org/2014/how-to-compile-hadoop.html
设置hadoop\u类路径:

  1. export HADOOP_CLASSPATH=$(bin/hadoop classpath)

编译:

  1. javac -classpath ${HADOOP_CLASSPATH} -d WordCount/ WordCount.java

相关问题