1

我刚刚在本地机器上成功设置了 Hadoop。我正在关注我刚买的一本流行书中的一个例子。我正在尝试获取安装随附的所有 hadoop 示例的列表。为此,我键入以下命令:

bin/hadoop jar hadoop-*-examples.jar

一旦我输入这个,我应该得到一个 Hadoop 示例列表,对吗?但是我看到的只是这个错误消息:

Not a valid JAR: /home/user/hadoop/hadoop-*-examples.jar

我该如何解决这个问题?这只是一个简单的权限问题吗?

4

4 回答 4

0

这很可能是配置问题或使用了无效文件路径。

hadoop-*-examples.jar 的名称很可能不正确,因为在我的 Hadoop (1.0.0) 版本中,文件名是 hadoop-examples-1.0.0.jar。

所以我运行了以下命令来列出所有示例,它就像魅力一样工作:

bin/hadoop jar hadoop-examples-*.jar 

An example program must be given as the first argument.
Valid program names are:
  aggregatewordcount: An Aggregate based map/reduce program that counts the words in the input files.
  aggregatewordhist: An Aggregate based map/reduce program that computes the histogram of the words in the input files.
  dbcount: An example job that count the pageview counts from a database.
  grep: A map/reduce program that counts the matches of a regex in the input.
  join: A job that effects a join over sorted, equally partitioned datasets
  multifilewc: A job that counts words from several files.
  pentomino: A map/reduce tile laying program to find solutions to pentomino problems.
  pi: A map/reduce program that estimates Pi using monte-carlo method.
  randomtextwriter: A map/reduce program that writes 10GB of random textual data per node.
  randomwriter: A map/reduce program that writes 10GB of random data per node.
  secondarysort: An example defining a secondary sort to the reduce.
  sleep: A job that sleeps at each map and reduce task.
  sort: A map/reduce program that sorts the data written by the random writer.
  sudoku: A sudoku solver.
  teragen: Generate data for the terasort
  terasort: Run the terasort
  teravalidate: Checking results of terasort
  wordcount: A map/reduce program that counts the words in the input files.

另外,如果我使用与您相同的文件名模式,则会出现错误:

bin/hadoop jar hadoop-*examples.jar 

Exception in thread "main" java.io.IOException: Error opening job jar: hadoop-*examples.jar

高温高压

于 2013-09-15T10:57:19.190 回答
0

您必须指定要使用的 jar 文件的类名:

hadoop jar pathtojarfile classname arg1 arg2 ..

例子:

hadoop jar example.jar wordcount inputPath outputPath
于 2013-09-16T09:40:44.583 回答
0

@阿努普。需要 jar 文件的完整/相对路径。

在您的情况下,它可能是 /home/user/hadoop/share/hadoop-*-examples.jar

hadoop 目录中的完整命令可能是

/home/user/hadoop/bin/hadoop /home/user/hadoop/share/hadoop-*-examples.jar

(我在那里使用了绝对完整路径,但您可以使用相对路径)。

于 2015-05-18T23:27:08.280 回答
0

你会在里面找到罐子$HADOOP_HOME/share/hadoop/mapreduce/hadoop-*-examples*.jar

于 2017-06-28T18:25:53.627 回答