HBase讀取資料卡住長時間不返回的原因分析

2022-05-07 07:24:11 字數 868 閱讀 6788

這些天做hbase,但是遇到hbase連線上之後讀取資料的時候,一直卡在那兒,程式既不報錯也不結束,讓我好生糾結,困擾我一整天。現在問題終於解決,現在寫了一段demo**,具體如下:

public

static

void main(string args) throws

ioexception

} catch

(ioexception e)

finally

}

在我的實際專案中,當程式執行到table = connection.gettable("mytable")時,程式就一直卡在那兒,也不報任何錯誤。我束手無策,但是任務很多也很著急我不得不想盡一切辦法來解決,於是我陷入了深深地思考,這個過程是及其痛苦的….

我寫了測試類,找出log,忍著一句一句往下看,終於看到程式一直在不斷的進行連線,一直不停的重試,突然讓我明白或許是我的hosts配置有問題,導致程式解析主機名出現錯誤,一直重新連線嘗試。簡單來說就是hosts檔案中配置的主機名和真實主機名不一致,並且還加入了額外的hosts配置資訊干擾到了正確解析主機名。

因此我執行demo程式的工作機沒有配置任何額外的hosts,連線zookeeper時直接使用的ip位址,但是hbase client 底層在進行操作時可能引入了主機名反向連線,作為完全乾淨的工作機當然找不到對應的伺服器,就不斷地在後台重試導致生成了上述的日誌。當我把出現問題的兩個hosts記錄加入到工作機後,問題解決。折騰了一天終於就這麼點問題,終於搞定。

通過上述錯誤可知,hadoop集群中hostname一定要與hosts檔案中配置的名稱一致,並且力求保證集群對映關係的純淨,不要把其他不相干的業務也部署在其中,引起不必要的麻煩。

檢視Oracle中儲存過程長時間被卡住的原因

1 查v db object cache select from v db object cache where name cux oe order rpt pkg and locks 0 注意 cux oe order rpt pkg 為儲存過程的名稱。發現locks 2 2 按物件查出sid的值...

HBASE 讀取資料 優化

1 設定scan快取 scan.setcaching 1000 定義一次互動從服務端傳輸到客戶端的行數 2 顯示的指定列 scan.addcolumn cf,column 只獲取需要的列,減少傳輸的資料量,減少io的消耗 3 使用完resultscanner後關閉,否則可能出現一段時間內服務端一致儲...

hbase資料讀取優化 HBase效能優化 總結篇

1 hbase.hregion.max.filesize應該設定多少合適 預設值 256m 說明 maximum hstorefile size.if any one of a column families hstorefiles has?grown to exceed this value,th...