全部產品
Search
文件中心

:Sqoop以EMR叢集的方式讀寫OSS-HDFS服務的資料

更新時間:Jun 19, 2024

本文介紹Sqoop如何以EMR叢集的方式讀寫OSS-HDFS服務的資料。

前提條件

  • 已建立EMR-3.42.0及以上版本或EMR-5.8.0及以上版本的叢集,並在建立時選擇了Sqoop。具體步驟,請參見建立叢集

  • 已開通並授權訪問OSS-HDFS服務。具體操作,請參見開通並授權訪問OSS-HDFS服務

操作步驟

  1. 登入EMR叢集。

    1. 登入EMR on ECS控制台

    2. 單擊建立的EMR叢集。

    3. 單擊節點管理頁簽,然後單擊節點群組左側的+

    4. 單擊ECS ID。在ECS執行個體頁面,單擊執行個體ID右側的遠端連線

    如果您希望使用SSH方式(SSH金鑰組或SSH密碼)在Windows和Linux環境中登入叢集,請參見登入叢集

  2. 將OSS-HDFS資料匯入MySQL。

    sudo sqoop import --connect  <dburi>/<dbname> --username <username> --password <password> --table <tablename> --target-dir <oss-dir>  --temporary-rootdir <oss-tmpdir> --check-column <col> --incremental <mode> --last-value <value> -as <format> -m <count>
    • 參數說明

      參數

      是否必選

      說明

      dburi

      必選

      資料庫的訪問連結,例如jdbc:mysql://192.168.xxx.xxx:3306/

      dbname

      必選

      資料庫的名稱。

      username

      必選

      資料庫登入使用者名稱。

      password

      必選

      資料庫登入密碼。

      tablename

      必選

      MySQL表的名稱。

      oss-dir

      必選

      讀取或寫入OSS-HDFS服務指定路徑下的資料,例如oss://examplebucket.cn-hangzhou.oss-dls.aliyuncs.com/dir/

      oss-tmpdir

      可選

      臨時寫入目錄。指定mode為append模式時,需要指定該參數。

      採用append模式後,Sqoop會先將資料匯入臨時目錄,然後將檔案重新命名為正常目標目錄。如果目標目錄已經存在於HDFS中,則Sqoop拒絕匯入並覆蓋該目錄的內容。

      col

      可選

      增量匯入情境的檢查列。

      mode

      可選

      增量匯入模式,支援append和lastmodified兩種模式。

      • append模式:基於遞增列的增量資料匯入。

      • lastmodified模式:基於時間列的增量資料匯入。

      value

      可選

      指定上次增量匯入的檢查列的最大值。

      format

      可選

      檔案儲存體的格式。取值為avrodatafilesequencefiletextfile(預設值)、parquetfile

      count

      可選

      指定MapReduce的任務數。

    • 使用樣本

      將OSS-HDFS服務examplebucket中指定路徑下的資料匯入MySQL中的資料庫表src_kv。

      sqoop import --connect jdbc:mysql://master-1-1/sqoop_test --username root --password password1  --table src_kv -m 1 --target-dir oss://examplebucket.cn-hangzhou.oss-dls.aliyuncs.com/tmp/sqoop_kv --as-parquetfile