繁体   English   中英

Hadoop WordCount 示例中的“找不到符号”错误

[英]“Cannot find symbol” error in Hadoop WordCount Example

我正在尝试完成Data Analytics with Hadoop一书中给出的 Hadoop MapReduce Word Count 示例,该示例让我设置了一个 Hadoop 伪分布式开发环境。 所以现在我正在尝试运行一个字数统计示例。 我从Hadoop Fundamentals下载了 .java 文件 WordCount 文件夹。 书中给出的启动这个过程的代码是:

hostname $ hadoop com.sun.tools.javac.Main WordCount.java

我运行它并收到以下错误:

hadoop@gh0st-VirtualBox:/home/gh0st$ hadoop com.sun.tools.javac.Main Downloads/WordCount/WordCount.java
Downloads/WordCount/WordCount.java:32: error: cannot find symbol
        job.setMapperClass(WordMapper.class);
                           ^
  symbol:   class WordMapper
  location: class WordCount
Downloads/WordCount/WordCount.java:33: error: cannot find symbol
        job.setReducerClass(SumReducer.class);
                            ^
  symbol:   class SumReducer
  location: class WordCount
Note: Downloads/WordCount/WordCount.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
2 errors

WordMapper.java 和 SumReducer.java 文件位于我运行 WordCount.java 文件的同一个 WordCount 文件夹中。 考虑到我读到的关于此的所有内容,我不确定从哪里开始。 我的$JAVA_HOME/usr/lib/jvm/java-7-openjdk-amd64/ 我的$CLASS_PATH$HADOOP_HOME/share/hadoop/common/hadoop-common-2.7.3.jar 我不确定解决这个问题还需要什么其他信息——我会添加任何其他需要的信息。 以下链接是我查看并尝试过的:

Hadoop 问题

编译问题

我在 VirtualBox 中使用 Ubuntu 14.04。

所以经过一番深入挖掘,我找到了答案。 答案在以下链接的评论中: Driver Class Compilation Error

我必须将所有文件编译在一起。 新代码如下所示:

hadoop com.sun.tools.javac.Main Downloads/WordCount/WordCount.java Downloads/WordCount/WordMapper.java Downloads/WordCount/SumReducer.java

希望这可以帮助某人!

这对我有用:

  1. 导出Hadoop classpath
export CLASSPATH=`hadoop classpath`
  1. 检查路径是否存在:
echo $CLASSPATH
  1. 同时运行所有这些:
javac -d . WC_Runner.java WC_Mapper.java WC_Reducer.java

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM