我已经安装了hadoop3.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的java8,因为ubuntu18.08lts的apt-get没有给我安装openjdk8的选项。我已经更新和升级了ubuntu。
我读过很多不同的帖子和可能的解决方法,但我不能解决它。
1条答案
按热度按时间33qvvth11#
这是一个可行的解决办法,我发现在https://janzhou.org/2014/how-to-compile-hadoop.html
设置hadoop\u类路径:
编译: