Hadoop Error Log

1. 《Hadoop實戰》書中錯誤,運行WordCount例程的代碼應爲:

javac -classpath hadoop-core-1.2.1.jar:lib/commons-cli-1.2.jar -d FirstJar WordCount.java


2. 

bin/hadoop jar WordCount.jar WordCount input output

    Exception in thread "main" java.lang.ClassNotFoundException: WordCount

WordCount類的包沒有找到,在類前面加上包的名字即可。

bin/hadoop jar WordCount.jar org.apache.hadoop.examples.WordCount input output


3. Error launching job , Output path already exists : Output directory hdfs://localhost:9000/user/dark_linux/output already exists

output的文件夾已經存在。換一個output的位置或者刪除原文件夾


4. start-all 的時候,遇到權限問題。


5. start-all 之後,所有的值都是0. 容量大小爲0

再注意一下配置文件,配置不正確。


6. 重啓後,start-all, namenode啓動不了,需要再次格式化之後才能啓動

這是因爲,默認hadoop的數據塊是放在/tmp下的。而每次重啓後,/tmp下的數據被清空。所以namenode就啓動不起來了(應該是這樣的)

所以要繼續修改配置,編輯conf/core-site.xml

增加:

<property>
	<name>hadoop.tmp.dir</name>
	<value>/home/hadoop/hadoop-1.2.1/tmp</value>
</property>

7. hosts

hosts文件包含了ip地址與主機名之間的映射,還包括主機的別名。在沒有域名解析服務器的情況下,系統上的所有網絡程序都通過查詢該文件來解析對應於某個主機名的ip地址。

優先級 : dns緩存 > hosts > dns服務

ip地址   主機名/域名   (主機別名) 

http://soft.zdnet.com.cn/software_zone/2007/0831/481970.shtml


8. nutch 在hadoop上進行抓取時,injector map 100%之後,reduce一直處於0%
網上的說法是,可能是reduce去找map的結果找不到,要check一下/etc/hosts的設置是否正確。

然後我之前是集羣環境,所以hosts裏面都改掉了。這次運行是在僞分佈式下運行,此時,hosts及hostname要改回來。


9. safe mode is on 

hadoop 的安全模式主要是在啓動hadoop會進入,主要是系統檢查每個datanode,保證數據塊的有效性,並根據預定的策略進行必要的操作,例如備份。此時系統中的數據我們無法進行操作。

這種情況下,要不等一會,要不就輸入如下指令直接離開安全模式

hadoop dfsadmin -safemode leave

10. 在格式化namenode時,報錯,The directory is already locked.

說明還有hadoop服務未關閉就進行format了,所以解決辦法就是先stop-all.sh關閉所有hadoop服務先。(或者直接註銷吧...)


11. 配置master爲namenode的同時,也成爲datanode

只要在hadoop的conf/slaves中,加入master的主機名即可。(記得同步到其他slave的機器中)


!12. 啓動hadoop之後,查看hdfs,發現datanode沒有啓動起來。

查看datanode上的log,說是no route to host。

網上的說法都是關防火牆,但是我們的機子們都沒有裝防火牆。

後來發現是配置/etc/hosts的問題,其中127.0.1.1 master 這行應該刪掉,就好了。

(但是還是不知道爲什麼會造成這樣的錯誤)





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章