2017-10-21 474 views
2

在CDH的NameNode中,當我通過odbc腳本(php/perl或python)運行查詢時,我可以獲取所有結果(9.2M)在一個變量中大約30秒,但是當我用相同的腳本/查詢試圖另一個遠程2級的服務器上時,執行時間是在第一服務器28分鐘和在第二17分鐘Impala ODBC/JDBC性能不佳 - 與NN相比,遠程服務器的行提取速度很慢

要排除的假設,這是一個網絡速度問題,我獲取結果上的一個文件,然後我跟scp命令複製到第一個遠程服務器,並完成了〜40秒

我在查詢信息觀察什麼在CM中存在的線程之間有很大的不同:網絡發送等待時間值在3個查詢:
在NN查詢 :9.40s
在第一個遠程服務器:16.7米
在第二個遠程服務器:26.8米

而且我也嘗試用黑斑羚JDBC的Java腳本,但在NN的結果已經不能刺激繼續。

但到目前爲止,我無法找到問題出在哪裏,我該如何解決它。
NB:我正在使用CDH 5.12.0/Impala 2.9.0,我安裝了Impala ODBC 2.5.37.1014。

回答

1

沒有提及使用的JDBC連接器版本。

集羣中可能有多臺運行Impala守護程序的服務器,請在您的JDBC連接URL中分別更改 並驗證這些服務器上的性能。

萬一你錯過參閱文件(https://www.cloudera.com/documentation/enterprise/5-12-x/topics/impala_jdbc.html),要注意這種提取物:

最新的JDBC驅動程序,相應的蜂巢0.13,提供了黑斑羚查詢 顯着的性能改進,返回 大的結果集。 Impala 2.0及更高版本與Hive 0.13驅動程序兼容。如果已安裝舊版JDBC驅動程序並運行Impala 2.0或更高版本,請考慮升級到最新的 Hive JDBC驅動程序,以獲得JDBC應用程序的最佳性能。

由於您使用的是遠程計算機訪問黑斑羚,請參閱本信息也:

如果您在CDH 集羣外部主機使用支持JDBC的應用程序,您不能使用CDH在非CDH 主機上安裝過程。在至少一個CDH主機上安裝JDBC驅動程序....然後, 將JAR文件下載到將使用JDBC的每個客戶端計算機,並使用 Impala ...

如果不提前完成,請更新JDBC連接器,並確保所有impalad實例正在運行。 然後比較ODBC和JDBC的性能結果。

這個環節也值得一闖民宅: https://www.cloudera.com/documentation/enterprise/5-12-x/topics/impala_troubleshooting.html

更新1:

參考#1:https://community.cloudera.com/t5/Interactive-Short-cycle-SQL/Impala-JDBC-10x-Slower-Vs-Shell/m-p/51779

作爲參考建議,嘗試添加下面的參數到JDBC連接字符串並檢查日誌:

; LogLevel = 6,LOGPATH = /路徑/到/目錄

參考#2:https://issues.apache.org/jira/browse/IMPALA-2651你可以考慮以下設置:

SET disable_codegen = TRUE;

更新2:我想你已經有這些下文提到的罐子中的至少一個黑斑羚服務器羣集中。

commons-logging-X.X.X.jar 
hadoop-common.jar 
hive-common-X.XX.X-cdhX.X.X.jar 
hive-jdbc-X.XX.X-cdhX.X.X.jar 
hive-metastore-X.XX.X-cdhX.X.X.jar 
hive-service-X.XX.X-cdhX.X.X.jar 
httpclient-X.X.X.jar 
httpcore-X.X.X.jar 
libfb303-X.X.X.jar 
libthrift-X.X.X.jar 
log4j-X.X.XX.jar 
slf4j-api-X.X.X.jar 
slf4j-logXjXX-X.X.X.jar 

請將這些jar複製到您嘗試通過JDBC代碼訪問Impala的機器。確保這些罐子在您的類路徑中並執行JDBC代碼。

+0

我會測試這個。 –

+0

我無法在我的centos 6.9中安裝hive-jdbc。 它給:沒有包hive-jdbc可用。 Rmq:我不認爲我對參考文獻#1和#2感到擔憂,因爲我的查詢沒有錯誤地被執行。問題在於,在外部羣集服務器上,所有行在速度上都很慢。 –

+1

更新了答案。調查是關於延遲,日誌可能會顯示需要花費的時間。 – Marco99

相關問題