溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Hadoop開發(fā)過程中的坑有哪些

發(fā)布時間:2021-12-04 15:35:38 來源:億速云 閱讀:175 作者:iii 欄目:大數(shù)據(jù)

本篇內(nèi)容主要講解“Hadoop開發(fā)過程中的坑有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“Hadoop開發(fā)過程中的坑有哪些”吧!

1、防火墻原因:檢查各個節(jié)點的防火墻是否關(guān)閉成功。(重點是檢查NameNode)

Hadoop開發(fā)過程中的坑有哪些

2、檢查IP地址與主機(jī)名的映射關(guān)系是否綁定成功

Hadoop開發(fā)過程中的坑有哪些

3、檢查NameNode是否處于安全模式

Hadoop開發(fā)過程中的坑有哪些

4、檢查NameNode是否已經(jīng)進(jìn)行了格式化處理

Hadoop開發(fā)過程中的坑有哪些

5、檢查配置文件的配置是否成功

6、檢查NameNode節(jié)點和DataNode節(jié)點中存放的namespaceID的版本號是否相同

Hadoop開發(fā)過程中的坑有哪些

好的,當(dāng)我們查看完上述6點之后如果還沒有解決問題,那我們再去查看相關(guān)的日志文件即可。

OK,到現(xiàn)在為止我在給大家介紹一下在開發(fā)過程中經(jīng)常遇到的幾個異常問題:

1、啟動hadoop時沒有NameNode的可能原因

這個問題對于Hadoop的初學(xué)者是經(jīng)常遇到的,之所以出現(xiàn)這個問題,可能有3點原因:

1)、NameNode沒有進(jìn)行格式化處理(6個檢查以包括)

先刪除hadoop.tmp.dir所對應(yīng)的目錄(即logs和tmp),然后對NameNode進(jìn)行格式化處理

Hadoop開發(fā)過程中的坑有哪些

2)、檢查IP地址與主機(jī)名的映射關(guān)系是否綁定成功(6個檢查以包括)

3)、檢查配置文件的配置是否成功(6個檢查以包括),重點是hadoop-env.sh、core-site.xml、hdfs-site.xml、mapred-site.xml和slaves。

2、Name node is in safe mode.

例如:

Hadoop開發(fā)過程中的坑有哪些

原因:NameNode在剛開始啟動的時候會進(jìn)入到安全模式,倒計時30s后退出,在安全模式下會不能進(jìn)行增、刪、改操作,只能進(jìn)行查看操作。但是如果數(shù)據(jù)節(jié)點DataNode丟失的block塊達(dá)到一定比例的話則系統(tǒng)一直處于安全模式,即只讀狀態(tài)。

解決方法:

1)、在HDFS的配置文件hdfs-site.xml中,修改dfs.safemode.threshold.pct所對應(yīng)的數(shù)值,將其數(shù)值改成一個較小的數(shù)值,默認(rèn)的數(shù)值是0.999f。

Hadoop開發(fā)過程中的坑有哪些

2)、執(zhí)行命令 hadoop dfsadmin -safemode leave 強(qiáng)制NameNode離開安全模式。(6個檢查以包括)

Hadoop開發(fā)過程中的坑有哪些

3)、could only be replicatied to 0 nodes, instead of 1.

例如:

Hadoop開發(fā)過程中的坑有哪些

Hadoop開發(fā)過程中的坑有哪些

這個異??赡艹霈F(xiàn)的現(xiàn)象:執(zhí)行命令jps顯示的進(jìn)程都很正常,但是用web界面查看的話,顯示的live  nodes為0,這說明數(shù)據(jù)節(jié)點DataNode沒有正常啟動,但是數(shù)據(jù)節(jié)點DataNode又正常啟動了。

這個問題可能出現(xiàn)的原因:

1)、防火墻原因,檢查所有節(jié)點的防火墻是否關(guān)閉成功。(6個檢查以包括)

2)、磁盤空間原因:執(zhí)行命令df -al 查看磁盤空間的使用情況,如果是磁盤空間不足的話,則調(diào)整磁盤空間。

Hadoop開發(fā)過程中的坑有哪些

如果是磁盤空間不足的話,具體進(jìn)行下面的步驟在進(jìn)行查看:

Hadoop開發(fā)過程中的坑有哪些

3、如果上述方法都不行的話,可用以下方法進(jìn)行處理(但是該方法會造成數(shù)據(jù)的丟失,所以慎用!)

先刪除hadoop.tmp.dir所對應(yīng)的目錄,然后對NameNode重新進(jìn)行格式化處理。(6個檢查以包括)

4、啟動時報錯 java.net.UnknownHostException

原因:集群中的主機(jī)名沒有映射到相應(yīng)的IP地址(6個檢查以包括)

解決方法:在/etc/hosts文件中添加所有節(jié)點的主機(jī)名與IP地址的映射關(guān)系。

Hadoop開發(fā)過程中的坑有哪些

5、TaskTracker進(jìn)程啟動了,但是DataNode進(jìn)程沒有啟動

解決方法:先刪除hadoop.tmp.dir所對應(yīng)的文件夾,然后對NameNode重新進(jìn)行格式化處理。

Hadoop開發(fā)過程中的坑有哪些

6、java.lang.OutOfMemoryError

原因分析:出現(xiàn)這個異常,明顯是JVM內(nèi)存不足的原因,要修改所有數(shù)據(jù)節(jié)點DataNode所對應(yīng)的JVM內(nèi)存大小。

方法:在MapReduce的配置文件mapred-site.xml中,修改mapred.child.java.opts所對應(yīng)的數(shù)值。

Hadoop開發(fā)過程中的坑有哪些

注意:一般JVM的***內(nèi)存使用應(yīng)該為總內(nèi)存大小的一半,例如我們的服務(wù)器的內(nèi)存大小為4G,則設(shè)置為2048m,但是這個值可能依舊不是***的數(shù)值。其中

-Xms 表示內(nèi)存初始化的大小,-Xmx表示能夠使用的***內(nèi)存。

在linux 下查看服務(wù)器內(nèi)存的硬件信息:

Hadoop開發(fā)過程中的坑有哪些

7、Incompatible namespaceIDs in

原因分析:每次對NameNode格式化之后都會產(chǎn)生一個新的namespaceID,如果多次對NameNode格式化的話可能導(dǎo)致NameNode節(jié)點和DataNode節(jié)點中存放的版本號不一致。

解決方法:

1)、在NameNode節(jié)點和DataNode節(jié)點中檢查namespaceID的版本號是否相同,如果不相同的話,修改為相同的值后然后重新啟動該節(jié)點。(6個檢查以包括)

2)、先刪除hadoop.tmp.dir所對應(yīng)的目錄,然后對NameNode重新進(jìn)行格式化處理。(6個檢查以包括)

到此,相信大家對“Hadoop開發(fā)過程中的坑有哪些”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI