99re热这里只有精品视频,7777色鬼xxxx欧美色妇,国产成人精品一区二三区在线观看,内射爽无广熟女亚洲,精品人妻av一区二区三区

故障排除和調(diào)試HBase:HBase和HDFS

2018-12-07 11:13 更新

HBase和HDFS

Apache HDFS的常規(guī)配置指南不在本文中進(jìn)行詳細(xì)的介紹。有關(guān)配置HDFS的詳細(xì)信息,請(qǐng)參閱https://hadoop.apache.org/上提供的文檔。本節(jié)以HBase的形式介紹HDFS。

在大多數(shù)情況下,HBase將其數(shù)據(jù)存儲(chǔ)在Apache HDFS中。這包括包含數(shù)據(jù)的HFile,以及在將數(shù)據(jù)寫入HFile之前存儲(chǔ)數(shù)據(jù)并預(yù)防RegionServer崩潰的預(yù)寫日志(WAL)。HDFS為HBase中的數(shù)據(jù)提供可靠性和保護(hù),因?yàn)樗欠植际降?。為了以最高效率運(yùn)行,HBase需要在本地提供數(shù)據(jù)。因此,在每個(gè)RegionServer上運(yùn)行HDFS DataNode是一種很好的做法。

HBase和HDFS的重要信息和指南

HBase是HDFS的客戶端

HBase是使用HDFS DFSClient類的HDFS客戶端,對(duì)此類的引用顯示在HBase日志中,并帶有其他HDFS客戶端日志消息。

在多個(gè)地方需要配置

與HBase相關(guān)的一些HDFS配置需要在HDFS(服務(wù)器)端完成。其他必須在HBase內(nèi)完成(在客戶端)。需要在服務(wù)器端和客戶端設(shè)置其他設(shè)置。

影響HBase的寫入錯(cuò)誤可能會(huì)記錄在HDFS日志中而不是HBase日志中。

寫入時(shí),HDFS將通信從一個(gè)DataNode傳輸?shù)搅硪粋€(gè)DataNode。HBase使用HDFS客戶端類與HDFS NameNode和DataNode進(jìn)行通信。DataNode之間的通信問(wèn)題記錄在HDFS日志中,而不是HBase日志中。

HBase使用兩個(gè)不同的端口與HDFS通信

HBase使用ipc.Client接口和DataNode類與DataNode進(jìn)行通信。對(duì)這些的引用將出現(xiàn)在HBase日志中。這些通信信道中的每一個(gè)使用不同的端口(默認(rèn)為50010和50020)。通過(guò)dfs.datanode.addressdfs.datanode.ipc.address參數(shù)在HDFS配置中配置端口。

可能會(huì)在HBase、HDFS其中一個(gè),或兩者中記錄錯(cuò)誤

在對(duì)HBase中的HDFS問(wèn)題進(jìn)行故障排除時(shí),請(qǐng)檢查兩個(gè)位置中的日志是否存在錯(cuò)誤。

HDFS需要一段時(shí)間才能將節(jié)點(diǎn)標(biāo)記為已死。您可以配置HDFS以避免使用陳舊的DataNode。

默認(rèn)情況下,HDFS不會(huì)將節(jié)點(diǎn)標(biāo)記為已死,直到630秒無(wú)法訪問(wèn)。在Hadoop 1.1和Hadoop 2.x中,可以通過(guò)啟用對(duì)陳舊DataNode的檢查來(lái)緩解此問(wèn)題,但默認(rèn)情況下禁用此檢查。您可以通過(guò)dfs.namenode.avoid.read.stale.datanodedfs.namenode.avoid.write.stale.datanode settings單獨(dú)啟用讀取和寫入檢查。陳舊的DataNode是dfs.namenode.stale.datanode.interval(默認(rèn)為30秒)無(wú)法訪問(wèn)的。避免過(guò)時(shí)的數(shù)據(jù)節(jié)點(diǎn),并將其標(biāo)記為讀取或?qū)懭氩僮鞯淖詈罂赡苣繕?biāo)。

HDFS重試和超時(shí)的設(shè)置對(duì)HBase很重要

您可以配置各種重試和超時(shí)的設(shè)置。請(qǐng)始終參考HDFS文檔以獲取當(dāng)前建議和默認(rèn)值。這里列出了一些對(duì)HBase很重要的設(shè)置。默認(rèn)值是Hadoop 2.3的最新版本。查看Hadoop文檔以獲取最新的值和建議。

HBase Balancer和HDFS Balancer不兼容

HDFS平衡器嘗試在DataNode中均勻分布HDFS塊。HBase依賴于壓縮來(lái)在區(qū)域分裂或失敗后恢復(fù)局部性。這兩種類型的平衡不能很好地協(xié)同工作。

過(guò)去,普遍接受的建議是關(guān)閉HDFS負(fù)載均衡器并依賴HBase均衡器,因?yàn)镠DFS均衡器會(huì)降低局部性。如果您的HDFS版本低于2.7.1,此建議仍然有效。

HDFS-6133通過(guò)將dfs.datanode.block-pinning.enabled屬性設(shè)置true為HDFS服務(wù)配置,可以從HDFS負(fù)載均衡器中排除優(yōu)先節(jié)點(diǎn)(固定)塊 。

可以通過(guò)將HBase均衡器類(CONF: hbase.master.loadbalancer.class)切換到org.apache.hadoop.hbase.favored.FavoredNodeLoadBalancer來(lái)啟用HDFS的favorites -nodes特性。

提示:HDFS-6133在HDFS 2.7.0及更高版本中可用,但HBase不支持在HDFS 2.7.0上運(yùn)行,因此您必須使用HDFS 2.7.1或更高版本才能在HBase中使用此功能

連接超時(shí)

客戶端(HBASE)和HDFS DataNode之間發(fā)生連接超時(shí)。它們可能在建立連接,嘗試讀取或嘗試寫入時(shí)發(fā)生。下面的兩個(gè)設(shè)置組合使用,并影響DFSClient和DataNode,ipc.cClient和DataNode之間的連接,以及兩個(gè)DataNode之間的通信。

dfs.client.socket-timeout (默認(rèn)值:60000)

建立連接或讀取時(shí)客戶端連接超時(shí)之前的時(shí)間。該值以毫秒表示,因此默認(rèn)值為60秒。

dfs.datanode.socket.write.timeout (默認(rèn)值:480000)

寫入操作超時(shí)之前的時(shí)間量。默認(rèn)值為8分鐘,以毫秒表示。

典型的錯(cuò)誤日志

日志中經(jīng)常會(huì)出現(xiàn)以下類型的錯(cuò)誤。

INFO HDFS.DFSClient: Failed to connect to /xxx50010, add to deadNodes and continue java.net.SocketTimeoutException: 60000 millis timeout while waiting for channel to be ready for connect. ch : java.nio.channels.SocketChannel[connection-pending remote=/region-server-1:50010]::塊的所有DataNode都已死,無(wú)法恢復(fù)。以下是導(dǎo)致此錯(cuò)誤的事件序列:

INFO org.apache.hadoop.HDFS.DFSClient: Exception in createBlockOutputStream java.net.SocketTimeoutException: 69000 millis timeout while waiting for channel to be ready for connect. ch : java.nio.channels.SocketChannel[connection-pending remote=/ xxx:50010]::此類錯(cuò)誤表示寫入問(wèn)題。在這種情況下,主人想要分割日志。它沒(méi)有本地DataNode,因此它嘗試連接到遠(yuǎn)程DataNode,但DataNode已經(jīng)死了。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)