Hue的Impala模組沒有釋放連線的問題解決
最近在研究Impala的准入控制這塊,其中一個引數是限制一個池中的最大並行執行的查詢數,假設這個值是20,那麼當提交一個查詢到impala,而叢集中已經有20個查詢正在執行了,那麼這個新加入的查詢就會被加入到一個等待佇列中,直到正在執行的查詢執行完畢,並釋放資源。
這個引數可以有效的緩解Impala的Memory Limit Exceeded問題。但是有一個問題,有兩種情況hue會長時間佔用查詢資源,導致其他查詢不得不等待。
我們用的Hue版本是3.11.0,如上圖所示:
第一個查詢是hue進行配置校驗的時候發起的,查詢執行成功,但沒有取出結果並關閉連線。
第二個是在hue中執行impala查詢時,介面上先載入100條,當我們向下滾動到底部時候繼續載入剩下的資料。資料沒拿完,查詢不關閉似乎也說的過去。
接著做了一個實驗,在hue上執行 SELECT 'hello' ,可以看到頁面傳送了一個execute請求,和三個fetch_result_data請求,其中後面兩次fetch_result_data的返回都是空的,並且has_more為false,因為我們的查詢只有一行返回。
現在我們在同一個視窗在執行一遍剛才的查詢,發現比上次多傳送了一個close_statement請求。hue會保證一個會話視窗只建立一個impala連線,當同一個視窗提交新的查詢時會強制關閉上一個查詢。
當查詢結果沒有拿完之前不關閉連線是可以理解的,但是為什麼我的結果都已經拿完了,還不釋放連線呢,其實是hue有一個資料下載功能要複用當前連線。如果關閉連線的話,會導致下載失敗。即便
如此,我還是希望fetch完所有資料後立即關閉連線,因為大多數查詢都只會返回少量資料,並且不需要下載的。當有大量資料需要下載時,只有不把頁面滑動到資料的最末端對下載是沒有影響的。
經過以上實驗,我們總結出hue的兩個問題
1.配置校驗沒有釋放連線,是bug 還是 我們自己的環境問題?
2.能否在fetch完所有資料後關閉impala連線?
帶著這兩個問題,下載了hue的原始碼
看到hue/apps/impala/src/impala/conf.py 檔案發現確實沒有fetch和close這樣的操作
這個問題在最新的版本中已經修正了。
現在我希望在fetch_result_data返回所有資料後(及result.has_more 為false時)自動發起一次close_statement請求。透過一番搜尋找到fetch_result_data請求的處理函式
在 hue/desktop/libs/notebook/src/notebook/static/notebook/js/notebook.ko.js 檔案,修改如下:
修改過我們再次執行 SELECT 'hello',可以看到第二fetch_result_data之後跟了一個close_statement請求。並且在impala後臺可以看到連線已經成功釋放了。雖然後面還跟了一個錯誤的fetch_result_data,但是無傷大雅。
作者:Caoyun
連結:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/3034/viewspace-2818315/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 如何重置Mac的藍芽模組以解決連線問題Mac藍芽模組
- Hue--整合Hive與ImpalaHive
- Go 模組存在的意義與解決的問題Go
- 解決CentOS /etc/sysconfig/下沒有iptables的問題CentOS
- 教你如何解決Python模組導包沒有找到的問題Python
- 連表操作、子查詢、pymysql 模組、sql注入問題(感覺已沒有)MySql
- 代理伺服器的連線問題及解決伺服器
- 解決代理連線超時問題
- Mac藍芽連線有問題該如何?教你重置Mac藍芽模組Mac藍芽模組
- DBeaver如何連線impala
- VSCode中解決python模組匯入問題VSCodePython
- Eclipse解決JavaScript等支援問題(沒有高亮,沒有程式碼提示)EclipseJavaScript
- impala客戶端連線客戶端
- 解決子元素浮動,父元素沒有撐開的問題
- Win7系統本地連線沒有有效的ip配置的解決辦法Win7
- Xshell連線Linux慢問題解決辦法Linux
- 解決線上Oracle連線耗時過長的問題現象RPYBOracle
- 解決安卓 linux adb 連線機器提示 no permissions 的問題安卓Linux
- docker下mysql連線數修改後不生效問題的解決DockerMySql
- iOS 解決設定rootViewController 記憶體不釋放問題iOSViewController記憶體
- ubuntu沒有有線網路的一種解決辦法Ubuntu
- Windows無法配置此無線連線這個問題的解決辦法Windows
- 解決SpringBoot連線Nacos叢集報400問題Spring Boot
- 解決Python找不到ssl模組問題 No module named _sslPython
- ORACLE RAC中連線ScanIP報錯ORA-12545的問題解決Oracle
- 解決印象筆記中複製idea等沒有縮排的問題筆記Idea
- 解決刪除檔案後 WSL2 磁碟空間不釋放的問題
- 討論個有關模組化設計的問題
- 解決 requests 庫中的位元組物件問題物件
- Github ssh的連線問題Github
- 解決 Windows 下 Homestead 建立軟連線失敗問題Windows
- 輕鬆解決Github連線緩慢、圖裂問題Github
- Doris開發手記1:解決蛋疼的MySQL 8.0連線問題MySql
- 利用 Transform 解決模組化開發服務呼叫問題ORM
- linux定時任務python找不到模組問題解決LinuxPython
- SAP質量管理模組常見問題及解決方案
- PHP 擴充套件安裝。解決 Homestead6.1.0 裡沒有 phpize 的問題PHP套件
- Android 微信分享後留在微信,沒有回撥的問題解決方案Android