全部產品
Search
文件中心

E-MapReduce:使用Hudi

更新時間:Apr 17, 2025

Apache Hudi是一種資料湖儲存格式,在Hadoop檔案系統之上提供了更新資料、刪除資料以及消費變化資料的能力,詳情請參見Apache Hudi。本文為您介紹如何在EMR Serverless Spark中實現Hudi表的讀取與寫入操作。

前提條件

已建立工作空間,詳情請參見建立工作空間

操作流程

步驟一:建立SQL會話

  1. 進入會話管理頁面。

    1. 登入E-MapReduce控制台

    2. 在左側導覽列,選擇EMR Serverless > Spark

    3. Spark頁面,單擊目標工作空間名稱。

    4. EMR Serverless Spark頁面,單擊左側導覽列中的會話管理

  2. SQL會話頁面,單擊建立SQL會話

  3. 建立SQL會話頁面的Spark配置地區,配置以下資訊,單擊建立。詳情請參見管理SQL會話

    中繼資料是當前工作空間的預設Catalog。如果您希望將預設Catalog修改為外部的Hive Metastore,可以參見串連外部Hive Metastore Service

    spark.sql.extensions             org.apache.spark.sql.hudi.HoodieSparkSessionExtension
    spark.sql.catalog.spark_catalog  org.apache.spark.sql.hudi.catalog.HoodieCatalog
    spark.serializer                 org.apache.spark.serializer.KryoSerializer

步驟二:讀寫Hudi表

  1. 進入SQL開發頁面。

    EMR Serverless Spark頁面,單擊左側導覽列中的開發

  2. 開發目錄頁簽下,單擊image表徵圖。

  3. 建立對話方塊中,輸入名稱(例如users_task),類型使用預設的SQL > SparkSQL,然後單擊確定

  4. 拷貝如下代碼到新增的SparkSQL頁簽(users_task)中。

    CREATE DATABASE IF NOT EXISTS ss_hudi_db;
    
    CREATE TABLE ss_hudi_db.hudi_tbl (id INT, name STRING) USING hudi TBLPROPERTIES (
      type = 'cow',
      primaryKey = 'id'
    );
    
    INSERT INTO ss_hudi_db.hudi_tbl VALUES (1, "a"), (2, "b");
    
    SELECT id, name FROM ss_hudi_db.hudi_tbl ORDER BY id;
    
    DROP TABLE ss_hudi_db.hudi_tbl;
    
    DROP DATABASE ss_hudi_db;
  5. 在資料庫下拉式清單中選擇一個資料庫,在會話下拉式清單中選擇剛剛建立的SQL會話。

  6. 單擊運行,執行任務。返回資訊如下所示。

    image

相關文檔