すべてのプロダクト
Search
ドキュメントセンター

Object Storage Service:OSS-HDFS に保存されたデータへの読み書きアクセスを EMR クラスター上の Apache Sqoop を使用して実装する

最終更新日:Apr 29, 2026

このトピックでは、E-MapReduce (EMR) クラスター上で Apache Sqoop を使用し、OSS-HDFS に保存されたデータへの読み書きアクセスを実装する方法について説明します。

前提条件

  • EMR V3.42.0 以降または EMR V5.8.0 以降を実行する EMR クラスターを作成済みで、Sqoop コンポーネントを選択している必要があります。詳細については、「クラスターの作成」をご参照ください。

  • OSS-HDFS を有効化し、必要なアクセス権限を付与済みである必要があります。詳細については、「OSS-HDFS の有効化」をご参照ください。

操作手順

  1. EMR クラスターに接続します。

    1. EMR コンソールにログインします。左側のナビゲーションウィンドウで EMR on ECS をクリックします。

    2. 作成済みの EMR クラスターをクリックします。

    3. Nodes タブをクリックし、ノードグループの左側にある + アイコンをクリックします。

    4. ECS ID をクリックします。インスタンスページで、インスタンス ID の横にある 接続 をクリックします。

    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

      Yes

      データベース接続 URI。例:jdbc:mysql://192.168.xxx.xxx:3306/

      dbname

      Yes

      データベース名。

      username

      Yes

      データベースへのログインユーザー名。

      password

      Yes

      データベースユーザーのパスワード。

      tablename

      Yes

      MySQL テーブル名。

      oss-dir

      Yes

      インポートデータの OSS-HDFS 内の送信先ディレクトリ。例:oss://examplebucket.cn-hangzhou.oss-dls.aliyuncs.com/dir/

      oss-tmpdir

      No

      インポートジョブの一時ディレクトリ。このパラメーターは「append」増分インポートモードで必須です。

      mode パラメーターを append に設定すると、Apache Sqoop はデータを一時ディレクトリにインポートした後、ファイル名を変更して送信先ディレクトリに格納します。OSS-HDFS 内に送信先ディレクトリが既に存在する場合、Apache Sqoop はそのディレクトリへのデータインポートや上書きを行いません。

      col

      No

      増分インポート時のチェック対象カラム。

      mode

      No

      増分インポートモード。有効な値:append および lastmodified

      • append:自動インクリメントカラムに基づいてデータを増分的にインポートします。

      • lastmodified:タイムスタンプカラムに基づいてデータを増分的にインポートします。

      value

      No

      前回の増分インポート時のチェックカラムの最大値。

      format

      No

      出力ファイル形式。有効な値:avrodatafilesequencefiletextfile(デフォルト)、および parquetfile

      count

      No

      MapReduce タスク数。

    • 次のサンプルコードは、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