このトピックでは、E-MapReduce (EMR) クラスターでApache Sqoopを使用して、OSS-HDFSに格納されているデータへの読み取りおよび書き込みアクセスを実装する方法について説明します。
前提条件
EMR 3.42.0以降、またはEMR 5.8.0以降のクラスターが作成されます。 詳細については、「クラスターの作成」をご参照ください。
バケットのOSS-HDFSが有効になり、OSS-HDFSにアクセスする権限が付与されます。 詳細については、「OSS-HDFSの有効化とアクセス許可の付与」をご参照ください。
手順
- EMRクラスターに接続します。
- EMRコンソールにログインします。 左側のナビゲーションウィンドウで、[ECS上のEMR] をクリックします。
- 作成したEMRクラスターをクリックします。
- [ノード] タブをクリックし、ノードグループの左側にあるプラスアイコン () をクリックします。
- ECSインスタンスのIDをクリックします。 [インスタンス] ページで、インスタンスIDの横にある [接続] をクリックします。
SSHキーペアまたはSSHパスワードを使用してWindowsまたはLinuxでクラスターにログインする方法の詳細については、「クラスターにログインする」をご参照ください。 - データをOSS-HDFSからMySQLにインポートします。
sudo sqoopインポート -- 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>
- 次の表に、上記のコマンドのパラメーターを示します。
パラメーター 必須 説明 ドブリ 必須 データベースへのアクセスに使用されるURI。 例: 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に設定されている場合は、このパラメーターを指定する必要があります。 modeパラメーターをappendに設定すると、Apache Sqoopはデータを一時ディレクトリにインポートし、ファイルの名前を変更して宛先ディレクトリに格納します。 宛先ディレクトリがOSS-HDFSに存在する場合、Apache Sqoopはディレクトリにデータをインポートしたり、ディレクトリ内のデータを上書きしたりしません。
col 任意 増分インポートシナリオでインポートする行を決定するために使用するチェック列。 モード 任意 増分インポートモード。 有効な値 : append および lastmodified - append: データは増分列に基づいて増分でインポートされます。
- lastmodified: データは時間列に基づいて増分でインポートされます。
value 任意 前回の増分インポートのチェック列の最大値。 フォーマット 任意 オブジェクトを格納する形式です。 有効な値は、avrodatafile、sequencefile、textfile (デフォルト) 、parquetfileです。 集計 任意 MapReduceタスクの数。 - 例:
次のサンプルコードは、examplebucketの指定されたディレクトリのデータをMySQLのsrc_kvテーブルにインポートする方法の例を示しています。
sudo 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
- 次の表に、上記のコマンドのパラメーターを示します。