使用Hadoop機架位置提升Vertica效能

weixin_34185560發表於2017-09-23

當Vertica資料庫節點位於Hadoop資料節點( Data Node )上時,Vertica可以利用Hadoop機架配置對ORC和Parquet資料執行查詢。 查詢執行時越接近資料越可以減少網路延遲並提高效能。

Vertica會自動使用與HDFS資料節點位於同一位置的資料庫節點。 這個功能稱之為node locality,並不需要額外配置來開啟。

當Vertica僅位於HDFS節點的一個子集上時,有時候沒有與資料共存的資料庫節點。 但是,如果Vertica的查詢使用同一機架中的資料庫節點,則效能通常會更好。 此功能(8.1版中的新功能)稱為node locality。 使用機架位置,您可以通過每個機架僅一個Vertica節點來檢視效能改進,從而減少將Vertica新增到現有Hadoop叢集的工作。

可以考慮具有以下佈局的HDFS叢集:

7240015-ad2bb775698ba50c

(每個機架中的節點由本地網路連線,機架網路連線到公共網路,Vertica節點由專用網路連線。

HDFS也利用了node locality的優勢,因為叢集已經在拓撲對映檔案中描述了機架結構。 而且您可以使用它來配置Vertica。

以下是圖中所示的HDFS叢集拓撲對映檔案的摘錄:

7240015-2a89e36ada1edb8e

您可以使用此資料為此叢集中的Vertica節點建立Fault Group描述。 Vertica使用此資訊將SQL查詢路由到最靠近資料的節點。

/rack1 /rack2 /rack3

/rack1 = db01

/rack2 = db02

/rack3 = db03

Rack locality通常與多層機架配合使用。 如果您的上海資料中心和北京資料中心中各有一組機架,則Vertica會自動感知該架構。

相關文章