首頁 > 易卦

將 Impala 資料遷移到 CDP

作者:由 大資料雜貨鋪 發表于 易卦日期:2022-08-19

如何將sql檔案匯出

這是CDH/HDP/Apache Hadoop遷移到CDP系列的部落格,如對遷移感興趣,請關注該系列之前部落格《

使用 Replication Manager 遷移到CDP 私有云基礎

》、《

將資料遷移到CDP 私有云基礎的資料遷移用例

》、《

將Hive資料遷移到CDP

》、《

將 Kudu 資料遷移到 CDP

》、《

將 HBase 遷移到 CDP

》、《

將 Accumulo 遷移到 CDP

》、《

安全和治理遷移到CDP

》、《

將 Oozie 遷移到 CDP》

在將 Impala 工作負載從 CDH 平臺遷移到 CDP 之前,您必須瞭解 CDH 和 CDP Impala 之間的語義和行為差異以及需要在資料遷移之前執行的活動。

要將關鍵 Impala 工作負載成功遷移到雲環境,您必須瞭解目標環境中的容量要求,並瞭解當前環境與目標環境之間的效能差異。

CDH 和 CDP 之間的 Impala 變化

CDH 中的Impala 和CDP 中的Impala 之間存在一些差異。

在您將工作負載從 CDH 5。13-5。16 或 CDH 6。1 或更高版本遷移到CDP 私有云基礎或公共雲後,這些更改會影響 Impala 。

其中一些差異要求您更改 Impala 指令碼或工作流程。

當您將工作負載遷移到CDP 私有云基礎或公共雲時,您在 CDH 版本 5。11 - 5。16 或 6。1 或更高版本中使用的 Impala 版本更改為 Impala 3。4 。

更改資料檔案的位置

如果 Impala 託管表在遷移之前位於hdfs的 /user/hive/warehouse上,則轉換為外部的表將保留在那裡。遷移過程將 hive。metastore。warehouse。dir 屬性設定為此位置,將其指定為 Hive 倉庫位置。您可以使用 Cloudera Manager 更改倉庫的位置。

在 CDH 到 CDP 遷移後,現有表的位置不會更改。在 CDP 中,託管表和外部表有單獨的 HDFS 目錄。

託管表的資料檔案在 Cloudera Manager 配置設定指定的倉庫位置可用Hive Warehouse Directory。

外部表的資料檔案在 Cloudera Manager 配置設定指定的倉庫位置可用Hive Warehouse External Directory。

遷移後,將(hive。metastore。warehouse。dir)設定為 Impala 託管表所在的/user/hive/warehouse。

您可以使用 Cloudera Manager 中的 Hive Metastore Action 選單更改倉庫的位置。

將 Impala 資料遷移到 CDP

使用Hive Configuration頁面建立 Hive 目錄

Hive > Action Menu > Create Hive User Directory

Hive > Action Menu > Create Hive Warehouse Directory

Hive > Action Menu > Create Hive Warehouse External Directory

將 Impala 資料遷移到 CDP

設定儲存引擎 ACL

您必須瞭解為 Impala 設定 ACL 以允許 Impala 寫入 Hive 倉庫目錄的步驟。

遷移後,將(hive。metastore。warehouse。dir)設定為 Impala 託管表所在的/user/hive/warehouse。當 Impala 工作負載從 CDH 遷移到 CDP 時,會自動為預設倉庫目錄設定 ACL 設定。如果您在遷移到 CDP 後更改了倉庫目錄的預設位置,請按照以下步驟操作以允許 Impala 寫入 Hive 倉庫目錄。

完成Hive/Impala Configuration頁面上自由格式欄位中的初始配置, Cloudera Manager以允許 Impala 寫入 Hive 倉庫目錄。

使用Impala Configuration頁面設定 Impala 使用者 ACL

Impala >操作選單>在倉庫目錄上設定 Impala 使用者 ACL

Impala >操作選單>在外部倉庫目錄上設定 Impala 使用者 ACL

將 Impala 資料遷移到 CDP

Cloudera Manager 為使用者“Impala”設定 ACL。但是,在啟動 Impala 服務之前,請使用子命令getfacl 和setfacl。

使用getfacl方法驗證託管表和外部表的 HDFS 目錄的 ACL 。

例子:

$ hdfs dfs -getfacl hdfs:

///warehouse/tablespace/managed/hive

# file: hdfs:

///warehouse/tablespace/managed/hive

# owner: hive

# group: hive

user::rwx

group::rwx

other::——-

default

:user::rwx

default

:user:impala:rwx

default

:group::rwx

default

:mask::rwx

default

:other::——-

$ hdfs dfs -getfacl hdfs:

///warehouse/tablespace/external/hive

# file: hdfs:

///warehouse/tablespace/external/hive

# owner: hive

# group: hive

# flags: ——t

user::rwx

group::rwx

other::rwx

default

:user::rwx

default

:user:impala:rwx

default

:group::rwx

default

:mask::rwx

default

:other::rwx

如有必要,請使用setfacl命令設定 HDFS 目錄的 ACL

例子:

$ hdfs dfs -setfacl hdfs:

///warehouse/tablespace/managed/hive

$ hdfs dfs -setfacl hdfs:

///warehouse/tablespace/external/hive

有關使用子命令getfacl 和 的更多資訊setfacl,請參閱使用 CLI 命令建立和列出 ACL。

上面的示例將使用者顯示Impala為Hive組的一部分 。如果在您的設定中,該使用者 Impala不屬於該組, Hive則確保該使用者Impala所屬的組 具有對該目錄分配的 WRITE 許可權。

檢視使用者Impala所屬的組:

$ id -Gn impala

uid=973(impala) gid=971(impala) groups=971(impala),972(hive)

元資料的自動失效/重新整理

要在將原始資料攝取到表中時獲取新資訊,您可以使用 hms_event_polling_interval_s 標誌。

新的預設行為

當原始資料被攝取到表中時,會生成新的 HMS 元資料和檔案系統元資料。在 CDH 中,要獲取此新資訊,您必須手動發出 Invalidate 或 Refresh 命令。但是在 CDP 中,此功能由 hms_event_polling_interval_s 標誌控制。預設情況下,此標誌設定為 2 秒。當在 HMS 中檢測到更改時,此選項會自動重新整理表。啟用元資料的自動失效/重新整理後,目錄伺服器以可配置的時間間隔輪詢 Hive Metastore (HMS) 通知事件,並自動將更改應用於 Impala 目錄。如果需要重新整理事件輪詢不支援的特定表,則必須執行表級 Invalidate 或 Refresh 命令。

元資料改進

在 CDP 中,預設情況下啟用所有目錄的元資料改進。您可以使用這幾個旋鈕來控制 Impala 如何管理其元資料以提高效能和可擴充套件性。

use_local_catalog

在 CDP 中,所有 Impala 協調器的按需模式預設設定use_local_catalog為 True,以便 Impala 協調器根據需要從目錄中提取元資料並將其快取在本地。這導致了許多效能和可擴充套件性的改進,例如減少了協調器上的記憶體佔用和自動快取逐出。

catalog_topic_mode

按需元資料獲取的粒度位於協調器和catalogd。 新增/刪除分割槽等常見用例不會觸發大型元資料的不必要的序列化/反序列化。

該功能可用於以下任一模式。

元資料按需模式

在這種模式下,所有協調器都按需使用元資料。

設定以下內容catalogd:

——catalog_topic_mode=minimal

在所有impalad協調器上設定以下內容 :

——use_local_catalog=true

混合模式

在這種模式下,只有部分協調器可以按需使用元資料。

Cloudera 建議您僅使用混合模式來測試本地目錄對堆使用的影響。

設定以下內容catalogd:

——catalog_topic_mode=mixed

impalad使用按需元資料在協調器上設定以下內容:

——use_local_catalog=true

侷限性:

On-demand元資料模式協調器不支援 HDFS 快取。

參考:

有關目錄改進的詳細資訊,請參閱Impala 元資料管理。

預設託管表

在 CDP 中,託管表是具有insert_only 預設屬性的事務表。您必須瞭解在 CDP 中修改託管表上的檔案系統的新預設行為以及切換到舊行為的方法。

新的預設行為

您不能再對 CDP 中的託管表執行檔案系統修改(新增/刪除檔案)。事務表的目錄結構與非事務表不同,新增的任何帶外檔案可能會或可能不會被 Hive 和 Impala 拾取。

目前在Impala該insert_only事務表不能改變。ALTER TABLE事務表上的語句當前顯示錯誤。

Impala 目前不支援對事務表進行壓縮。您應該使用 Hive 來壓縮表。

在SELECT,INSERT,INSERT OVERWRITE,和TRUNCATE語句支援只插入的事務表。

切換到 CDH 行為的步驟:

如果您不需要事務表,請將DEFAULT_TRANSACTIONAL_TYPE查詢選項 設定為 NONE預設情況下任何新建立的託管表都不是事務表。

刪除表時,外部表不會刪除資料檔案。要在刪除表時隨表一起清除資料,請新增external。table。purge = true表屬性。當external。table。purge設定為true,則當資料被刪除DROP TABLE 時執行的語句。

Impala 叢集上表的自動重新整理

該屬性enable_insert_events在 CDP 中用於在 Impala 插入表時自動重新整理其他 Impala 叢集上的表或分割槽。

enable_insert_events

如果 Impala 插入到一個表中,它會重新整理基礎表或分割槽。當此配置 enable_insert_events設定為True(預設)時,Impala 生成 INSERT 事件型別,當其他 Impala 叢集接收到這些型別時,它會自動重新整理表或分割槽。

筆記

事件處理必須開啟,此屬性才能工作。

Hive 和 Impala 之間的互操作性

本主題介紹了在 CDP 中所做的更改,以實現 Hive 和 Impala 之間的最佳互操作性,從而改善使用者體驗。

Hive 和 Impala 之間的統計互操作性

新的預設行為:

表的統計資訊是特定於引擎的,即 Hive 或 Impala,因此每個引擎都可以使用自己的統計資訊,而不會覆蓋其他引擎生成的統計資訊。

當您COMPUTE STATS在Impala 上釋出宣告時,您需要在Hive 上釋出相應的宣告,以確保Hive 和Impala 的統計資料都是準確的。

Impala的COMPUTE STATS命令不會覆蓋同一個表的 Hive 統計資訊。

切換到 CDH 行為的步驟:

沒有解決方法。

Hive 預設檔案格式互操作性

新的預設行為:

Hive 建立的託管表預設為 ORC 檔案格式,並支援完整的事務功能。如果您在未指定STORED AS子句的情況下建立表並從 Hive 載入資料,那麼 Impala 無法讀取或寫入此類表。但是 Impala 可以繼續讀取非事務性和僅插入事務性 ORC 表。

切換到 CDH 行為的步驟:

STORED AS PARQUET如果您希望在這些表上與 Impala 進行互操作,則在 Hive 中建立表時必須使用該子句。

如果要在系統級別更改此預設檔案格式,請在 Cloudera Manager 的 Hive_on_Tez 服務配置中,將hive_default_fileformat_managed欄位設定 為 parquet。

Impala 支援 Apache Hadoop 中使用的多種檔案格式。它還可以載入和查詢其他 Hadoop 元件(如 hive)生成的資料檔案。從任何 CDH 5。x 版本升級到7。1、如果在Hive中使用預設的LazyBinaryColumnarSerDe建立RC檔案,Impala將無法讀取RC檔案。但是,您可以將 hive。default。rcfile。serde 的配置選項設定為 ColumnarSerDe,以保持 hive 和 impala 之間的互操作性。

託管表和外部表空間目錄

新的預設行為:

在 CDP 中,託管表和外部表有單獨的 HDFS 目錄。

託管表的資料檔案位於 Cloudera Manager 配置設定指定的倉庫位置, hive_warehouse_directory。

外部表的資料檔案位於 Cloudera Manager 配置設定指定的倉庫位置, hive_warehouse_external_directory。

如果您執行檔案系統級別的操作來新增/刪除表上的檔案,則需要考慮它是外部表還是託管表以查詢表目錄的位置。

切換到 CDH 行為的步驟:

檢查DESCRIBE FORMATTED命令的輸出以查詢表位置。

對完整事務表禁用 ORC 支援

在 CDP 7。2。0 及更早版本中,Impala 查詢禁用 ORC 表支援。但是,您可以選擇使用命令列引數切換到 CDH 行為 ENABLE_ORC_SCANNER。

新的預設行為

在 CDP 7。2。0 及更早版本中,如果您使用 Impala 查詢 ORC 表,您將看到它失敗。為了緩解這種情況,您必須將顯式 STORED AS 子句新增到建立 Hive 表的程式碼中,並使用 Impala 可以讀取的格式。另一種選擇是在 Cloudera Manager 中設定全域性配置以更改 hive_default_fileformat_managed。

切換到 CDH 行為的步驟:

將查詢選項ENABLE_ORC_SCANNER設定 TRUE為重新啟用 ORC 表支援。

此選項不適用於完整的事務性 ORC 表,並且查詢會返回錯誤。

筆記

如果您使用的是 CDP 7。2。1 或更高版本,則ENABLE_ORC_SCANNER預設啟用該引數,您可以使用 Impala 查詢 ORC 表,而無需任何手動干預。

CDP 中的 ORC 與 Parquet

理解用於儲存 Hive 資料的最佳化行列式 (ORC) 檔案格式和用於儲存 Impala 資料的 Parquet 之間的差異很重要。當您為應用程式使用適當的格式時,查詢效能會提高。

Impala 的授權提供程式

使用 CDH 中可用的 BDR 服務,您可以遷移 CDP 中的許可權,因為 Ranger 是授權提供者而不是 Sentry。您必須瞭解 Ranger 如何在 CDP 中執行可能與使用 Sentry 不同的策略。

新行為:

的CREATE ROLE,GRANT ROLE, SHOW ROLE語句不支援作為遊俠目前不支援角色。

當前,當重新命名特定資源時,策略不會自動轉移到新重新命名的資源。

SHOW GRANT 使用無效的使用者/組不會返回錯誤。

下表列出了在 Impala 中執行 SQL 語句的不同訪問型別要求。

將 Impala 資料遷移到 CDP

在哪裡:

VIEW_METADATA

許可權表示SELECT, INSERT, or REFRESH許可權。

ALL

特權表示SELECT, INSERT, CREATE, ALTER, DROP, and REFRESH特權。

有關在 Impala 中執行 SQL 語句所需的最低許可權級別和範圍的更多資訊,請參閱Impala 授權。

遷移Sentry策略

由於 CDP 利用 Ranger 作為其授權服務,您必須將許可權從 Sentry 遷移到 Ranger。您可以使用 CDH 中提供的 BDR 服務來遷移許可權。此服務將 Sentry 授權策略遷移到 Ranger 作為複製策略作業的一部分。建立複製策略時,選擇要遷移的資源,然後為這些資源遷移 Sentry 策略。您可以將一組物件的所有許可權或許可權遷移到 Ranger。

在Sentry Permissions一節的Create Replication Policy嚮導包含下列選項:

包含元資料的Sentry許可權

- 選擇此選項可在複製作業期間遷移Sentry許可權。

從元資料中排除 Sentry 許可權

- 如果您不想在複製作業期間遷移 Sentry 許可權,請選擇此選項。

建立複製策略嚮導的複製選項部分包含以下選項:

包括元資料和資料

僅包含元資料

遷移階段

Sentry 和 Ranger 具有不同的許可權模型。Sentry許可權授予角色和使用者。這些被轉換為組和使用者的許可權,因為 Ranger 當前不支援角色。接下來是按資源分組,因為 Ranger 策略是按資源分組的。授予資源的所有許可權都被視為單個 Ranger 策略。

Sentry 策略向 Ranger 的遷移透過以下操作執行:

匯出

- 匯出操作在源叢集中執行。在此操作期間,將獲取 Sentry 許可權並將其匯出到 JSON 檔案。根據您提供的配置,此檔案可能位於本地檔案系統或 HDFS 或 S3 中。

翻譯和攝取

- 這些操作發生在目標叢集上。在轉換操作中,Sentry 許可權被轉換為 Ranger 可以讀取的格式。然後將許可權匯入 Ranger。當權限被匯入時,它們被標記為源叢集名稱和攝取發生的時間。匯入後,包含許可權的檔案將被刪除。

由於 Sentry 許可權和 Ranger 服務策略之間沒有一對一的對映,Sentry 許可權在 Ranger 服務策略中被轉換為它們的等效項。有關如何將 Sentry 操作應用於 Ranger 中相應操作的更多資訊,請參閱 Sentry 到 Ranger 許可權。

筆記

由於 Ranger 中的授權模型與 Sentry 的模型不同,因此並非所有策略都可以使用 BDR 進行遷移。對於某些資源,您必須在將工作負載從 CDH 遷移到 CDP 後手動建立許可權。

Atlas 的資料治理支援

CDH 和 CDP 環境都支援 Impala 操作的治理功能。將工作負載從 CDH 遷移到 CDP 時,您必須手動將 Navigator 元資料遷移到 Atlas,因為 Navigator 元資料不會從 CDH 自動遷移到 CDP。

這兩個環境收集相似的資訊來描述 Impala 活動,包括:

Impala 訪問請求的審計

描述 Impala 查詢的元資料

描述 Impala 操作建立或更新的任何新資料資產的元資料

支援這些操作的服務在兩種環境中是不同的。功能分佈在服務中,如下所示:

將 Impala 資料遷移到 CDP

將 Navigator 內容遷移到 Atlas

作為將工作負載從 CDH 遷移到 CDP 的一部分,您必須使用 Atlas 作為 CDP 中叢集的 Cloudera Navigator 資料管理。您可以選擇手動將 Navigator 元資料遷移到 Atlas,因為 Navigator 元資料不會從 CDH 自動遷移到 CDP。Atlas 使用新操作“重建”現有叢集資產和沿襲的元資料。但是,必須將 Navigator Managed 元資料標籤和您在 CDH 中手動輸入的任何元資料手動移植到 Atlas 業務元資料標籤。如果您有使用 Navigator 的應用程式,則必須移植它們以使用 Atlas API。

筆記

Navigator稽核資訊未移植。要保留遺留審計資訊,您可以保留一個“只讀”的 Navigator 例項,直到不再需要它為止。您可能需要將舊叢集上的 CM/Navigator 升級到更新版本以避免 EOL。

將內容從 Navigator 遷移到 Atlas 涉及 3 個步驟:

從 Navigator 中提取內容

將該內容轉換為 Atlas 可以使用的形式

將內容匯入到 Atlas

CDH 和 CDP 中的 Impala 配置差異

CDH 和 CDP 中有一些與 Impala 相關的配置差異。

這些差異是由於 CDP 中為實現 Hive 和 Impala 之間的最佳互操作性而進行的更改,以改善使用者體驗。

在將 Impala 工作負載從 CDH 遷移到 CDP 之前檢視更改。

配置選項中的預設值更改

將 Impala 資料遷移到 CDP

新的配置選項

將 Impala 資料遷移到 CDP

預設檔案格式

為了提高可用性和功能性,Impala 顯著改變了表的建立。在 CDP 中,表的預設檔案格式是 Parquet。

新的預設行為

當您發出CREATE TABLE不帶STORED AS子句的語句時,Impala 會建立 Parquet 表而不是像 CDH 中的 Text 表。

例如,如果您在未提供STORED AS 子句的情況下基於文字檔案建立外部表 ,然後發出選擇查詢,則查詢將在 CDP 中失敗,因為 Impala 期望檔案採用 Parquet 檔案格式。

切換到 CDH 行為的步驟:

如果檔案格式不是 Parquet ,則在CREATE TABLE語句中新增顯式的stored as子句 。

啟動協調器時所有表的default_transactional_type標誌設定為text。

將查詢選項default_file_format設定TEXT為恢復為一個或多個CREATE TABLE 語句的預設文字格式。

重新連線到 HS2 會話

客戶端可以在保持 HiveSever2 (HS2) 會話執行的同時與 Impala 斷開連線,也可以透過提供 session_token 重新連線到同一會話。

新的預設行為

預設情況下,斷開連線的會話會在 15 分鐘後終止。

由於這種行為變化,客戶不會注意到差異。

如果客戶端在沒有驅動程式明確關閉會話的情況下斷開連線(例如,由於網路故障),斷開連線的會話和與其關聯的查詢可能保持開啟狀態並繼續消耗資源,直到斷開連線的會話超時。管理員可能會注意到這些斷開連線的會話和/或相關的資源消耗。

切換到 CDH 行為的步驟:

您可以將該——disconnected_session_timeout標誌調整為較低的值,以便快速清除斷開連線的會話。

自動行數估計

為了最佳化複雜或多表查詢,Impala 可以訪問有關資料量和值分佈方式的統計資訊。Impala 使用此資訊來幫助並行化和分發查詢工作。

新的預設行為

Impala 查詢計劃器可以利用有關整個表和分割槽的統計資訊。此資訊包括物理特徵,例如行數、資料檔案數、資料檔案的總大小和檔案格式。對於分割槽表,數字是按分割槽計算的,並作為整個表的總數。此元資料儲存在 Metastore 資料庫中,可由 Impala 或 Hive 更新。

如果表上沒有可用的統計資訊,Impala 透過根據表中的行數估計表的大小來估計基數。預設情況下,此行為處於開啟狀態,並且在統計資料不可用的大多數情況下,應該會產生更好的計劃。

對於某些邊緣情況,當該表上不存在統計資訊時,Impala 可能會生成錯誤的計劃(與 CDH 中的相同查詢相比),這可能會對查詢效能產生負面影響。

切換到 CDH 行為的步驟:

將查詢選項DISABLE_HDFS_NUM_ROWS_ESTIMATE設定 TRUE為禁用此最佳化。

在 SQL 查詢中使用保留字

為了符合 ANSI SQL,Impala 拒絕 CDP 中 SQL 查詢中的保留字。保留字是不能直接用作識別符號的字。如果需要將其用作識別符號,則必須用反引號將其引用。

CDH 6 中添加了新的保留字。要從具有不同保留字集的 CDH 5 移植 SQL 語句,您必須使用 SQL 語法中的保留字更改使用對此類表或資料庫的引用的查詢。

查詢具有問題的參考表,表中如使用保留字,如create table語句 select中的CREATE 語句。

用反引號將表名括起來。

CREATE

TABLE

select

(x

INT

): fails

CREATE

TABLE

`select`

(x

INT

): succeeds

Impala 中的其他雜項變化

在將您的工作負載從 CDH 版本 5。13-5。16 或 CDH 版本 6。1 或更高版本遷移到CDP Private Cloud Base或 CDP Public Cloud後,檢視可能影響 Impala 的 Impala 語法或服務的更改。

您在 CDH 版本 5。11-5。16 或 6。1 或更高版本中使用的 Impala 版本更改為CDP Private Cloud Base 中的Impala 3。4 。

十進位制 V2 預設值

在 CDP 中,Impala 預設使用 DECIMAL V2。

要繼續使用該DECIMAL型別的第一個版本以實現查詢的向後相容性,請將DECIMAL_V2查詢選項設定為 FALSE:

SET DECIMAL_V2=FALSE;

列別名替換

以符合SQL標準,帕拉不再執行別名取代在的子表示式GROUP BY,HAVING和ORDER BY。

下面的示例引用sum(ss_quantity)了 ORDER BY子句中的實際列而不是別名,Total_Quantity_Purchased 並且還引用ss_item_sk了GROUP BY子句中的實際列而不是別名,Item因為子表示式中不再支援別名。

select

ss_item_sk

as

Item,

count

(ss_item_sk)

as

Times_Purchased,

sum

(ss_quantity)

as

Total_Quantity_Purchased

from

store_sales

group

by

ss_item_sk

order

by

sum

(ss_quantity)

desc

limit

5

+

————-+————————-+——————————————+

| item | times_purchased | total_quantity_purchased |

+

————-+————————-+——————————————+

| 9325 | 372 | 19072 |

| 4279 | 357 | 18501 |

| 7507 | 371 | 18475 |

| 5953 | 369 | 18451 |

| 16753 | 375 | 18446 |

+

————-+————————-+——————————————+

預設 PARQUET_ARRAY_RESOLUTION

該查詢選項PARQUET_ARRAY_RESOLUTION控制基於索引的解析度在Parquet陣列的行為。在 Parquet 中,您可以使用 2 級或 3 級表示法來表示陣列。PARQUET_ARRAY_RESOLUTION 的預設值為 THREE_LEVEL 以匹配 Parquet 標準 3 級編碼。有關詳細資訊,請參閱Parquet_Array_Resolution 查詢選項。

叢集提示預設值

預設情況下啟用叢集提示,它將按 HDFS 和 Kudu 表中的分割槽列新增本地排序到查詢計劃。noclustered 提示可防止在具有排序列的表中聚集,但會被忽略並顯示警告。

刪除了查詢選項

已刪除以下查詢選項:

DEFAULT_ORDER_BY_LIMIT

ABORT_ON_DEFAULT_LIMIT_EXCEEDED

V_CPU_CORES

RESERVATION_REQUEST_TIMEOUT

RM_INITIAL_MEM

SCAN_NODE_CODEGEN_THRESHOLD

MAX_IO_BUFFERS

RM_INITIAL_MEM

DISABLE_CACHED_READS

Impala shell選項 refresh_after_connect

刪除了啟動 Impala Shell的選項refresh_after_connect。

EXTRACT 和 DATE_PART 函式

該EXTRACT和DATE_PART功能以下列方式改變:

EXTRACT和DATE_PART函式的輸出型別更改為BIGINT。

從 TIMESTAMP 中提取毫秒部分會返回秒部分和毫秒部分。例如,EXTRACT (CAST(‘2006-05-12 18:27:28。123456789’ AS TIMESTAMP), ‘MILLISECOND’)返回28123。

SHUTDOWN 命令的埠

如果您從 CDH 6。1 或更高版本升級並指定埠作為SHUTDOWN命令的一部分 ,請更改埠號引數以使用 Kudu7: RPC (KRPC) 埠在 Impala 代理之間進行通訊。

客戶端連線超時更改

升級後客戶端連線超時的預設行為發生變化。

在 CDH 6。2 及更低版本中,如果——fe_service_threads已分配指定的最大執行緒數,客戶端將無限期地等待以開啟新會話。

升級後,伺服器需要一個新的啟動標誌, ——accepted_client_cnxn_timeout來控制對新連線請求的處理。配置的伺服器執行緒數不足以滿足工作負載。

如果——accepted_client_cnxn_timeout > 0,則在指定的超時後拒絕新的連線請求。

如果——accepted_client_cnxn_timeout=0,客戶端無限期地等待連線到 Impala。這將設定升級前行為。

預設超時為 5 分鐘。

Hive 和 Impala 之間的互操作性

Impala 支援 Apache Hadoop 中使用的多種檔案格式。它還可以載入和查詢其他 Hadoop 元件(如 Hive)生成的資料檔案。從任何CDH 5。x 版本升級到CDP Private Cloud Base 7。1 後,如果使用預設在Hive 中建立RC 檔案 LazyBinaryColumnarSerDe,Impala 將無法讀取RC 檔案。但是,您可以設定hive。default。rcfile。serdeto 的配置選項ColumnarSerDe來維護 hive 和 impala 之間的互操作性。

元資料的改進

從 CDH 升級到 CDP 後,所有 Impala 協調器預設設定use_local_catalog為按需模式,True以便 Impala 協調器從目錄中提取元資料並將其快取在本地。這減少了協調器的記憶體佔用並自動執行快取驅逐。

在 CDP 中,預設情況下設定catalog_topic_mode為minimal為所有協調器啟用按需元資料。

重新計算統計資訊

將工作負載從任何 CDH 5。x 版本遷移到CDP Private Cloud Base 7。1 後,重新計算 Impala 的統計資料。儘管 CDH 5。x 統計資訊在升級後可用,但在重新計算統計資訊之前,查詢不會從新功能中受益。

減少過多的網路流量

由於透過 statestore 進行傳播,目錄元資料可能會變大並導致網路流量過多。——compact_catalog_topic引入該標誌是為了透過壓縮目錄主題條目以減少其序列化大小來緩解此問題。這以少量 CPU 時間為代價節省了網路頻寬。預設情況下啟用此標誌。

容量規劃要考慮的因素

在將工作負載從 CDH 遷移到 CDP 公共雲之前選擇合適的雲環境規模對於保持效能特徵至關重要。

在為您的環境選擇 CDP 容量時,需要考慮查詢工作負載中的多個因素。

查詢記憶體要求

CPU 利用率

磁碟頻寬

工作集大小

併發查詢執行

在進入大小細節之前,瞭解 PC 和本地主機之間的核心硬體差異很重要:

將 Impala 資料遷移到 CDP

R5D。4xlarge 例項與 CDH 推薦的 CPU、記憶體和頻寬規格非常匹配,因此建議作為 CDP 的例項型別。但是,AWS 臨時儲存不能用作主資料庫儲存,因為它是暫時的且容量不足。這種核心差異需要不同的策略來實現良好的掃描效能。

CDP 大小和縮放

在遷移之前,必須計劃擴充套件和併發。在公共雲環境中,能夠根據工作負載需求彈性地獲得更好的擴充套件性和併發性,使系統能夠以低於您計劃的最大限制的成本執行。如果您將目標環境配置為將峰值工作負載作為恆定的預設配置進行配置,則當系統需求低於該水平時,您可能會出現成本超支。

在 CDP 中,T-Shirt 大小定義了單個叢集的 executor 例項數量,從而確定了單個查詢的記憶體限制和效能。相反,倉庫大小引數和自動縮放決定了分配多少叢集來支援併發查詢執行。

將 Impala 資料遷移到 CDP

T-Shirt 尺寸必須至少足夠大,以支援單個查詢的最高記憶體使用量。在大多數情況下,如果查詢之間的工作集具有共性,則大小不需要更大,但可以提供更好的資料快取。增加 T-Shirt 尺寸可以直接增加單使用者容量,也可以增加多使用者容量。這是因為來自更大叢集的額外記憶體和資源允許處理更大的資料集,並且還可以透過共享資源來支援併發查詢執行。選擇太小的大小會導致資料快取不佳、中間結果溢位或記憶體分頁。選擇太大的大小可能會由於空閒的執行程式而導致過多的 PC 執行成本。

根據現有硬體選擇 T 恤尺寸時要考慮的一個警告是,在您的本地環境中的同一主機上執行的其他程序是什麼。特別是 HDFS 或其他本地託管的檔案系統可能會消耗大量資源。您可以為 CDP 選擇較小的大小,因為這些程序將被隔離在 CDP 環境中它們自己的 pod 中。檢視 CM 每程序指標以隔離 CDP 將放在執行程式例項上的 impalad 和 Impala 前端 Java 程序並在整個叢集中聚合這些指標可能會有所幫助。由於元資料快取,java 程序可能會累積大量記憶體使用。

併發

目標環境的大小對應於系統可以處理的峰值併發。併發是可以同時執行的查詢數。

每個執行程式組可以同時執行 12 個查詢,並且可以使用自動縮放功能透明地處理偶爾出現的峰值。導致新增更多執行程式組的自動縮放將查詢併發性加倍到 24。透過新增更多叢集來擴充套件倉庫允許執行更多併發查詢,但不會提高單使用者容量或效能。這是因為來自附加叢集的執行程式對該叢集是私有的。併發執行的查詢將被路由到不同的叢集並獨立執行。透過更改自動縮放參數,可以更改叢集數量以匹配併發使用情況。

快取熱資料集

目前 CDH 支援計算節點上的快取機制,用於快取從遠端檔案系統讀取的工作集,例如遠端 HDFS 資料節點、S3、ABFS 和 ADLS。這抵消了輸入/輸出效能差異。

在CDP公有云中,經常訪問的資料快取在SSD上的儲存層,以便後續查詢可以快速檢索,從而提升效能。每個執行程式最多可以有 200 GB 的快取。因此,中等大小的快取可以保留 200 * 20 = 4 TB 的資料。對於列格式(例如 ORC),快取中的資料會被解壓但不會被解碼。如果熱資料集的預期大小為 6 TB,大約需要 30 個執行器,則可以選擇過度配置(選擇大的)以確保完全快取覆蓋;或配置不足(選擇一種介質)以降低成本,但會降低快取命中率。

筆記

Impala 資料快取使用基於 LIRS 的演算法。

使用 WXM 規劃容量

如果您在環境中部署了 WXM,則可以使用 WXM 為目標環境生成容量計劃。

要構建滿足您的容量要求的自定義雲環境,您必須分析您現有的 CDH 架構、瞭解您的業務需求並生成容量計劃。

您應該如何調整impala 計算叢集的大小(在Datahub 或CDW 服務中)可能會有所不同,因為計算節點大小(CPU 和RAM)與您當前在CDH 中使用的不同。如果您當前使用的是 20 節點的 CDH 叢集,這並不一定意味著您將需要 20 節點的 Datahub 叢集或 CDW 中的 20 節點的 Impala 虛擬倉庫。

使用 WXM 功能生成容量計劃

使用 WXM 的好處

您可以在遷移資料之前探索您的叢集並分析您的工作負載。您還可以確定適合雲遷移的 Impala 工作負載。

您還可以在將工作負載遷移到 CDP 公共雲之前最佳化工作負載。這降低了由於工作負載欠佳而導致雲成本失控的風險。

您可以為要遷移的工作負載生成雲友好性分數。

您可以選擇為目標環境自動生成容量。

WXM 與複製管理器一起自動執行復制計劃。

使用 WXM 的先決條件

在設定 Cloudera Manager Telemetry Publisher 服務以將診斷資料傳送到 Workload XM 之前,您必須確保您擁有正確版本的 Cloudera Manager 和 CDH。

要將 Workload XM 與 Cloudera Manager 管理的 CDH 叢集一起使用,您必須具有以下版本:

對於 CDH 5。x 叢集:

Cloudera Manager 5。15。1 或更高版本

CDH 5。8 或更高版本

對於 CDH 6。x 叢集:

Cloudera Manager 6。1 或更高版本

CDH 6。1 或更高版本

筆記

無論您是管理 CDH 5。x 還是 CDH 6。x 叢集,Workload XM 在 Cloudera Manager 6。0 上都不可用。

在確認您擁有正確版本的 Cloudera Manager 和 CDH 後,您必須配置資料編輯和防火牆。

有關配置防火牆的資訊,請參閱為 Workload XM 配置防火牆。

有關在傳送到 WXM 之前編輯資料的資訊,請參閱診斷資料的編輯功能

自動生成容量計劃的步驟

如果您的環境中部署了 Cloudera 工作負載管理器,請按照高階步驟生成容量計劃並將 Impala 工作負載遷移到雲。

Cloudera 工作負載管理器

頁面上,選擇一個叢集來分析您的資料倉庫工作負載。工作負載檢視的“

摘要”

頁面包含多個圖形和選項卡,您可以檢視以進行分析。使用

工作負載

檢視功能,您可以更精細地分析工作負載。例如,您可以分析訪問特定資料庫或使用特定資源池的查詢是如何根據 SLA 執行的。或者,您可以檢查特定使用者傳送到叢集的所有查詢的執行情況。

資料倉庫工作負載檢視

頁面上,您可以透過單擊

定義新

並從下拉選單中選擇

選擇推薦的檢視

來選擇自動生成的工作負載檢視 。檢視用於建立工作負載檢視的標準,從自動生成的工作負載檢視中選擇符合您要求的標準。

您可以透過單擊“

定義新”

並從下拉選單中選擇“

手動定義檢視”

來自定義構建要遷移的工作負載。您可以選擇定義一組標準,使您能夠分析一組特定的工作負載。

如果您選擇自定義構建,一旦生成自定義構建工作負載,您將返回到

資料倉庫工作負載

頁面,您的工作負載將出現在列表中。使用搜索欄搜尋您的工作負載,然後單擊工作負載以檢視工作負載詳細資訊。

工作負載檢視的詳細資訊頁面包含多個圖形和選項卡,您可以檢視以進行分析。檢視工作負載並確保這是您要遷移到雲的工作負載。

在您對要突增的工作負載感到滿意後,單擊突增

到雲

選項並選擇檢視效能評級詳細資訊。

檢視

雲效能評級詳細資訊,

並透過單擊

啟動突發到雲嚮導

呼叫以繼續遷移到雲 。

Burst to Cloud 嚮導會引導您完成生成容量計劃以及將您選擇的工作負載複製到雲目標的步驟。

CDH 和 CDP 之間的效能差異

評估此遷移可能帶來的效能變化。

如果您計劃將當前 Impala 工作負載遷移到公共雲,請執行效能影響分析以評估此遷移將如何影響您。

IO 效能注意事項

本地 CDH 主機通常連線大量 IO 硬體以支援 HDFS 上的大型掃描操作,可能為許多 SSD 裝置和專用互連提供每秒 10 GB 的頻寬。由於雲實例的瞬態特性和成本結構,這種模型對於 CDP 中的主儲存並不實用。

與許多 AWS 資料庫產品一樣,CDP 中的 HFS 使用 EBS 捲進行持久化。EBS gp2 的頻寬限制為 250MB/秒/卷。此外,如果頻寬超過閾值,EBS 可能會在延長的持續時間內將吞吐量限制為零。由於這些限制,在許多情況下依靠直接 IO 到 EBS 來提高效能是不切實際的。EBS 也透過共享網路硬體進行路由,並且可能由於冗餘而具有額外的效能限制。

為了緩解 PC IO 頻寬差異,嚴重依賴臨時儲存來快取工作集。雖然這是從 CDH 繼承的現有 Impala 行為,但轉到主儲存的代價要高得多,因此必須在本地快取更多資料以保持同等效能。由於臨時儲存也用於中間結果的溢位,因此重要的是避免可能競爭頻寬的過度溢位。

原文連結:https://docs。cloudera。com/cdp-private-cloud-upgrade/latest/data-migration/topics/cdp_data_migration_impala_overview。html