我安装了hadoop 2.2.0并尝试运行示例wordcount程序。为此,首先我使用以下方法将数据导入hdfs:
bin/hadoop fs -copyFromLocal /home/prassanna/Desktop/input /input
之后,我尝试使用:
运行word count jar文件root@prassanna-Studio-1558:/usr/local/hadoop# bin/hadoop jar hadoop*examples*.jar wordcount /input -output
但它显示:Not a valid JAR: /usr/local/hadoop/hadoop*examples*.jar
我检查了usr/local/hadoop/bin/hadoop
目录,没有hadoop示例jar。
答案 0 :(得分:3)
您要查找的Jar
文件位于以下目录中:
hadoop_root/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar
并且应该使用如下命令运行:
$ yarn jar hadoop_root/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar wordcount /input /output
答案 1 :(得分:1)
Hadoop示例jar在这里不再存在。
usr/local/hadoop/bin/hadoop
从hadoop 2.x开始,正如SAM在他的回答中正确指出的那样,你正在寻找的罐子是
$HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar
您可以像
一样运行它hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar wordcount /input /output
确保/input
文件夹中有一个要在hdfs中计算的输入文件。另请注意,/output
应该不存在。这是为了创建hadoop框架。
另请参阅此文档以使用Hadoop2.2.0 Shell命令。不使用已弃用的版本始终是一个好习惯。
http://hadoop.apache.org/docs/r2.2.0/hadoop-project-dist/hadoop-common/FileSystemShell.html
答案 2 :(得分:1)
在我的hadoop中,我在2.4.1工作,所以命令是
hadoop jar $ HADOOP_HOME / share / hadoop / mapreduce / hadoop-mapreduce-examples-2.4.1.jar wordcount / input / output
答案 3 :(得分:0)
您必须编译WordCount.java,然后按如下方式对JAR进行编译。我不得不四处寻找lib路径,但最后我能够用它来编译示例Class
[apesa@localhost ~]$ javac -classpath $HADOOP_HOME/apesa/hadoop/common/hadoop-common-2.2.0.jar:$HADOOP_HOME/apesa/hadoop/mapreduce/hadoop-mapreduce-client-core-2.2.0.jar:$HADOOP_HOME/apesa/hadoop/common/lib/commons-cli-1.2.jar -d wordcount_classes WordCount.java
然后JAR如下
[apesa@localhost ~]$ jar -cvf wordcount.jar -C wordcount_classes/ .
我暂时没有运行它,但如果出现错误,您可能必须验证lib文件在同一个地方