2012-05-14 283 views
1

我下面这个指令来执行Hadoop:Hadoop的工作不工作

http://wiki.apache.org/hadoop/Running_Hadoop_On_OS_X_10.5_64-bit_(Single-Node_Cluster)

但是,我不能让这个命令来工作:

hadoop-*/bin/hadoop jar hadoop-*-examples.jar grep input output 'dfs[a-z.]+'

所有我得到的是:

Exception in thread "main" java.io.IOException: Error opening job jar: /Users/hadoop/hadoop-1.0.1/hadoop-examples-1.0.1.jargrep 
    at org.apache.hadoop.util.RunJar.main(RunJar.java:90) 
Caused by: java.util.zip.ZipException: error in opening zip file 
    at java.util.zip.ZipFile.open(Native Method) 
    at java.util.zip.ZipFile.<init>(ZipFile.java:127) 
    at java.util.jar.JarFile.<init>(JarFile.java:135) 
    at java.util.jar.JarFile.<init>(JarFile.java:72) 
    at org.apache.hadoop.util.RunJar.main(RunJar.java:88) 

我将此添加到m y hadoop-env.sh

export HADOOP_OPTS="-Djava.security.krb5.realm=OX.AC.UK -Djava.security.krb5.kdc=kdc0.ox.ac.uk:kdc1.ox.ac.uk" 

但仍然是相同的错误。 任何线索?

+1

这是一个错字:'错误打开工作的jar:/Users/hadoop/hadoop-1.0.1/hadoop-examples-1.0 .1.jargrep' - 看起来像你的命令行,jar名称和示例作业'grep'之间没有空格 –

+0

Oh oh silly :)现在输出结果是:'Grep [] 支持的通用选项是... '和命令列表! – Ansd

回答

3

当运行下面的命令:

hadoop- /bin中/罐的hadoop hadoop- -examples.jar grep的输入输出 'DFS [AZ。] +'

  • grep是作为示例的一部分的hadoop程序
  • input是您的源数据所在的文件夹,并且希望您在HDFS中创建它
  • 输出是将作为结果创建的文件夹。
  • “DFS [A = -z。] +”是使用grep程序

使用的正则的选择,因为输出是“的grep ......。”在我看来,实际的样品当Hadoop命令运行时,应用程序类不可用或缺少一些信息。您需要首先检查它,并查找适用于输入数据的正则表达式。

+0

你能多解释一下吗? –

2

我知道这是旧的,但如果其他人有同样的问题,看到这个问题,我想提出我做了什么来解决这个问题,因为它非常简单。

它看起来像是示例指令中的拼写错误。如果您查看Hadoop分发目录,您会注意到被引用的示例文件被称为hadoop-examples-1.0.4.jar或您正在使用的任何版本。

所以不是:

hadoop-*/bin/hadoop jar hadoop-*-examples.jar grep input output 'dfs[a-z.]+' 

尝试:

bin/hadoop jar hadoop-examples-*.jar grep input output 'dfs[a-z.]+' 
+0

谢谢你的回答! – Andrew