简体   繁体   English

无法执行基本的Hadoop Mapreduce Wordcount示例

[英]Can't execute the basic Hadoop Mapreduce Wordcount example

I am trying to run the WordCount example . 我正在尝试运行WordCount示例 But I am facing issues with compiling the program. 但是我在编译程序时遇到了问题。

I get the error: 我得到错误:

error: package org.apache.hadoop.mapred does not exist 错误:软件包org.apache.hadoop.mapred不存在

after executing: 执行后:

javac -classpath /usr/local/hadoop/share/hadoop/common/hadoop-common-2.7.3.jar -d wordcount_classes WordCount.java

I set up hadoop using this tutorial . 我使用本教程设置了hadoop。 I also looked this up on stackoverflow : question and executed the bin/hadoop classpath command in /usr/local/hadoop . 我还在stackoverflow问题 上进行了查找,并在/usr/local/hadoop执行了bin/hadoop classpath命令。 This is the output I obtained: 这是我获得的输出:

/usr/local/hadoop/etc/hadoop:/usr/local/hadoop/share/hadoop/common/lib/* :/usr/local/hadoop/share/hadoop/common/* :/usr/local/hadoop/share/hadoop/hdfs:/usr/local/hadoop/share/hadoop/hdfs/lib/* :/usr/local/hadoop/share/hadoop/hdfs/* :/usr/local/hadoop/share/hadoop/yarn/lib/* :/usr/local/hadoop/share/hadoop/yarn/* :/usr/local/hadoop/share/hadoop/mapreduce/lib/* :/usr/local/hadoop/share/hadoop/mapreduce/* :/contrib/capacity-scheduler/*.jar / usr / local / hadoop / etc / hadoop:/ usr / local / hadoop / share / hadoop / common / lib / *:/ usr / local / hadoop / share / hadoop / common / *:/ usr / local / hadoop /共享/ hadoop / hdfs:/ usr / local / hadoop / share / hadoop / hdfs / lib / *:/ usr / local / hadoop / share / hadoop / hdfs / *:/ usr / local / hadoop / share / hadoop / yarn / lib / *:/ usr / local / hadoop / share / hadoop / yarn / *:/ usr / local / hadoop / share / hadoop / mapreduce / lib / *:/ usr / local / hadoop / share / hadoop / mapreduce / *:/ contrib / capacity-scheduler / *。jar

But I don't know what to make of it or what my next step should be! 但是我不知道该怎么做,或者下一步该怎么做! Please help! 请帮忙!

You're trying to compile the source code using one of the many hadoop dependency jars (hadoop-common-xxxjar). 您正在尝试使用许多hadoop依赖罐(hadoop-common-xxxjar)之一来编译源代码。 The jar that contains the mapred package noted in the error message is the hadoop-mapreduce-client-core jar. 包含错误消息中指出的mapred包的jar是hadoop-mapreduce-client-core jar。

I suggest you use a build tool such as Maven or Gradle to build your source code as it will manage transitive dependencies for you. 我建议您使用Maven或Gradle之类的构建工具来构建源代码,因为它将为您管理传递性依赖项。

Alternatively to proceed with your manual invocation of javac, try something like this (untested): 或者,继续进行Javac的手动调用,请尝试以下操作(未经测试):

javac -cp '/usr/local/hadoop/share/hadoop/common/*' \
  -cp '/usr/local/hadoop/share/hadoop/hdfs/lib/*' \
  -cp '/usr/local/hadoop/share/hadoop/hdfs/*' \
  -cp '/usr/local/hadoop/share/hadoop/yarn/lib/*' \
  -cp '/usr/local/hadoop/share/hadoop/yarn/*' \
  -cp '/usr/local/hadoop/share/hadoop/mapreduce/lib/*' \ 
  -cp '/usr/local/hadoop/share/hadoop/mapreduce/*' \
  -d wordcount_classes WordCount.java

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

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