您好,登錄后才能下訂單哦!
本篇內容主要講解“Hadoop開發過程中的坑有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Hadoop開發過程中的坑有哪些”吧!
1、防火墻原因:檢查各個節點的防火墻是否關閉成功。(重點是檢查NameNode)
2、檢查IP地址與主機名的映射關系是否綁定成功
3、檢查NameNode是否處于安全模式
4、檢查NameNode是否已經進行了格式化處理
5、檢查配置文件的配置是否成功
6、檢查NameNode節點和DataNode節點中存放的namespaceID的版本號是否相同
好的,當我們查看完上述6點之后如果還沒有解決問題,那我們再去查看相關的日志文件即可。
OK,到現在為止我在給大家介紹一下在開發過程中經常遇到的幾個異常問題:
1、啟動hadoop時沒有NameNode的可能原因
這個問題對于Hadoop的初學者是經常遇到的,之所以出現這個問題,可能有3點原因:
1)、NameNode沒有進行格式化處理(6個檢查以包括)
先刪除hadoop.tmp.dir所對應的目錄(即logs和tmp),然后對NameNode進行格式化處理
2)、檢查IP地址與主機名的映射關系是否綁定成功(6個檢查以包括)
3)、檢查配置文件的配置是否成功(6個檢查以包括),重點是hadoop-env.sh、core-site.xml、hdfs-site.xml、mapred-site.xml和slaves。
2、Name node is in safe mode.
例如:
原因:NameNode在剛開始啟動的時候會進入到安全模式,倒計時30s后退出,在安全模式下會不能進行增、刪、改操作,只能進行查看操作。但是如果數據節點DataNode丟失的block塊達到一定比例的話則系統一直處于安全模式,即只讀狀態。
解決方法:
1)、在HDFS的配置文件hdfs-site.xml中,修改dfs.safemode.threshold.pct所對應的數值,將其數值改成一個較小的數值,默認的數值是0.999f。
2)、執行命令 hadoop dfsadmin -safemode leave 強制NameNode離開安全模式。(6個檢查以包括)
3)、could only be replicatied to 0 nodes, instead of 1.
例如:
這個異常可能出現的現象:執行命令jps顯示的進程都很正常,但是用web界面查看的話,顯示的live nodes為0,這說明數據節點DataNode沒有正常啟動,但是數據節點DataNode又正常啟動了。
這個問題可能出現的原因:
1)、防火墻原因,檢查所有節點的防火墻是否關閉成功。(6個檢查以包括)
2)、磁盤空間原因:執行命令df -al 查看磁盤空間的使用情況,如果是磁盤空間不足的話,則調整磁盤空間。
如果是磁盤空間不足的話,具體進行下面的步驟在進行查看:
3、如果上述方法都不行的話,可用以下方法進行處理(但是該方法會造成數據的丟失,所以慎用!)
先刪除hadoop.tmp.dir所對應的目錄,然后對NameNode重新進行格式化處理。(6個檢查以包括)
4、啟動時報錯 java.net.UnknownHostException
原因:集群中的主機名沒有映射到相應的IP地址(6個檢查以包括)
解決方法:在/etc/hosts文件中添加所有節點的主機名與IP地址的映射關系。
5、TaskTracker進程啟動了,但是DataNode進程沒有啟動
解決方法:先刪除hadoop.tmp.dir所對應的文件夾,然后對NameNode重新進行格式化處理。
6、java.lang.OutOfMemoryError
原因分析:出現這個異常,明顯是JVM內存不足的原因,要修改所有數據節點DataNode所對應的JVM內存大小。
方法:在MapReduce的配置文件mapred-site.xml中,修改mapred.child.java.opts所對應的數值。
注意:一般JVM的***內存使用應該為總內存大小的一半,例如我們的服務器的內存大小為4G,則設置為2048m,但是這個值可能依舊不是***的數值。其中
-Xms 表示內存初始化的大小,-Xmx表示能夠使用的***內存。
在linux 下查看服務器內存的硬件信息:
7、Incompatible namespaceIDs in
原因分析:每次對NameNode格式化之后都會產生一個新的namespaceID,如果多次對NameNode格式化的話可能導致NameNode節點和DataNode節點中存放的版本號不一致。
解決方法:
1)、在NameNode節點和DataNode節點中檢查namespaceID的版本號是否相同,如果不相同的話,修改為相同的值后然后重新啟動該節點。(6個檢查以包括)
2)、先刪除hadoop.tmp.dir所對應的目錄,然后對NameNode重新進行格式化處理。(6個檢查以包括)
到此,相信大家對“Hadoop開發過程中的坑有哪些”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。