全部產品
Search
文件中心

E-MapReduce:JindoTable表或分區訪問冷度收集

更新時間:Jul 01, 2024

JindoTable表或分區的訪問冷度收集功能可以為您維護表或分區上次的訪問時間,從而篩選出最近沒有被訪問的資料,協助您最佳化資料存放區方式,節約成本。例如,在資料分析中,您可以把部分不常用的分區資料移動到成本更低的儲存介質以節約成本。

前提條件

已建立EMR-3.35.0及後續版本或EMR-4.9.0及後續版本,建立詳情請參見建立叢集

背景資訊

SmartData 3.5.x版本開始支援Hive、Spark和Presto組件的冷度收集功能。該功能目前預設不開啟,如果需要開啟,請參見開啟Spark冷度收集開啟Hive冷度收集開啟Presto冷度收集
說明 因為冷度收集與熱度收集使用相同的hooks或Listeners,所以開啟組件的冷度收集時會同時開啟熱度收集功能。表或分區訪問熱度收集的詳情,請參見JindoTable表或分區訪問熱度收集

使用限制

  • 不支援DLF資料湖中繼資料。
  • Hive CLI、HiveServer2、Spark SQL CLI、Spark Thriftserver和Presto服務所在IP需要有許可權訪問中繼資料底層儲存(MySQL或RDS)。
  • 僅支援Hive、Spark和Presto組件的冷度收集。

資料查詢

JindoTable提供了命令方式查詢冷度資訊。
  • 文法
    jindo table -leastUseStat -n <num> [-i/-ignoreNever]

    num是顯示的條目數量,應為正整數。-i/-ignoreNever為選擇性參數,如果設定該參數,則會過濾掉從未被訪問過的表或分區。

  • 功能

    展示最久未被訪問的表或分區。

  • 樣本:查詢最久未被訪問的表或分區的20條記錄。
    jindo table -leastUseStat -n 20
    返回如下圖所示三列結果。cold_result
    • 第一列為表的名字,格式:資料庫名.表名。
    • 第二列為分區名字,格式:第一分區列=列值/第二分區列=列值/...,如果表為非分區表則為空白。
    • 第三列為最近一次訪問的時間,格式:yyyy-MM-dd HH:mm:ss。
    說明 如果為分區表,則只顯示到分區層級,表本身不會單獨顯示。

JindoTable使用詳情,請參見JindoTable使用說明

開啟Spark冷度收集

  1. 進入Spark頁面。
    1. 登入阿里雲E-MapReduce控制台
    2. 在頂部功能表列處,根據實際情況選擇地區和資源群組
    3. 單擊上方的叢集管理頁簽。
    4. 叢集管理頁面,單擊相應叢集所在行的詳情
    5. 在左側導覽列,選擇叢集服務 > Spark
  2. 在Spark服務頁面,單擊配置頁簽。
  3. 搜尋參數spark.sql.queryExecutionListeners,確保參數值包含com.aliyun.emr.table.spark.SparkSQLQueryListener,如果存在多個Listeners時使用英文逗號(,)隔開。
    Spark
  4. 添加自訂配置。
    1. 服務配置頁面,單擊spark-defaults頁簽。
    2. 單擊右上方的自訂配置
    3. 新增配置項對話方塊中,設定Keyspark.sql.query.update.access.time.enabledValuetrue
      add_spark_paraname
    4. 單擊確定
  5. 儲存配置。
    1. 單擊儲存
    2. 確認修改對話方塊中,輸入執行原因,單擊確定
  6. 重啟所有組件。
    1. 在右上方選擇操作 > 重啟All Components
    2. 執行叢集操作對話方塊中,輸入執行原因,單擊確定
    3. 確認對話方塊中,單擊確定

開啟Hive冷度收集

  1. 進入Hive頁面。
    1. 登入阿里雲E-MapReduce控制台
    2. 在頂部功能表列處,根據實際情況選擇地區和資源群組
    3. 單擊上方的叢集管理頁簽。
    4. 叢集管理頁面,單擊相應叢集所在行的詳情
    5. 在左側導覽列,選擇叢集服務 > Hive
  2. 在Hive服務頁面,單擊配置頁簽。
  3. 搜尋參數hive.exec.post.hooks,確保參數值包含com.aliyun.emr.table.hive.HivePostHook,如果存在多個hooks時使用英文逗號(,)隔開。
    hive
  4. 添加自訂配置。
    1. 服務配置頁面,單擊hive-site頁簽。
    2. 單擊右上方的自訂配置
    3. 新增配置項對話方塊中,設定Keyhive.hook.update.access.time.enabledValuetrue
      add_hive_paraname
    4. 單擊確定
  5. 儲存配置。
    1. 單擊儲存
    2. 確認修改對話方塊中,輸入執行原因,單擊確定
  6. 重啟所有組件。
    1. 在右上方選擇操作 > 重啟All Components
    2. 執行叢集操作對話方塊中,輸入執行原因,單擊確定
    3. 確認對話方塊中,單擊確定

開啟Presto冷度收集

  1. 進入Presto頁面。
    1. 登入阿里雲E-MapReduce控制台
    2. 在頂部功能表列處,根據實際情況選擇地區和資源群組
    3. 單擊上方的叢集管理頁簽。
    4. 叢集管理頁面,單擊相應叢集所在行的詳情
    5. 在左側導覽列,選擇叢集服務 > Presto
  2. 在Presto服務頁面,單擊配置頁簽。
  3. 搜尋參數event-listener.name,確保參數值包含jindo-presto-post-event-listener
    presto
  4. 添加自訂配置。
    1. 服務配置頁面,單擊event-listener.properties頁簽。
    2. 單擊右上方的自訂配置
    3. 新增配置項對話方塊中,設定Keylistener.update.access.time.enabledValuetrue
      add_presto_paraname
    4. 單擊確定
  5. 儲存配置。
    1. 單擊儲存
    2. 確認修改對話方塊中,輸入執行原因,單擊確定
  6. 重啟所有組件。
    1. 在右上方選擇操作 > 重啟All Components
    2. 執行叢集操作對話方塊中,輸入執行原因,單擊確定
    3. 確認對話方塊中,單擊確定