今天嘗試了一下Hadoop,沒想到按照教程來,第一個例子就報錯了……
錯誤如下:
$ bin/hadoop jar hadoop-mapred-examples-0.21.0.jar grep input output 'dfs[a-z.]+'
Exception in thread "main" java.io.IOException: Error opening job jar: hadoop-mapred-examples-0.21.0.jar
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)
仔細一看, java.util.zip.ZipException是文件找不到的異常。主要原因是hadoop-mapred-examples-0.21.0.jar 無法定位。所以叻,辦法很簡單
1)把環境變量先配了(如果是在hadoop的home目錄下操作的話,大可不必配,大家可以去嘗試)
$vim /etc/profile
添加這兩行
export HADOOP_HOME=/home/linrui/programfiles/dev/hadoop-0.20.203.0
export HADOOP_CONF_DIR=$HADOOP_HOME/conf
2)去hadoop_home目錄下看看這個jar包(這個包存在的,只不過名字可能不太一樣),然後把名字寫準就好了。
然後運行~一切OK!
2011-08-09
Allen