Cookie の設定を選択する

当社は、当社のサイトおよびサービスを提供するために必要な必須 Cookie および類似のツールを使用しています。当社は、パフォーマンス Cookie を使用して匿名の統計情報を収集することで、お客様が当社のサイトをどのように利用しているかを把握し、改善に役立てています。必須 Cookie は無効化できませんが、[カスタマイズ] または [拒否] をクリックしてパフォーマンス Cookie を拒否することはできます。

お客様が同意した場合、AWS および承認された第三者は、Cookie を使用して便利なサイト機能を提供したり、お客様の選択を記憶したり、関連する広告を含む関連コンテンツを表示したりします。すべての必須ではない Cookie を受け入れるか拒否するには、[受け入れる] または [拒否] をクリックしてください。より詳細な選択を行うには、[カスタマイズ] をクリックしてください。

Amazon EMR での Sqoop に関する考慮事項 - Amazon EMR

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon EMR での Sqoop に関する考慮事項

Amazon EMR で Sqoop を実行するときは、以下について検討します。

HCatalog の統合での Sqoop の使用

Amazon EMR の Sqoop は、Sqoop-HCatalog の統合をサポートします。Sqoop を使用して Amazon S3 の HCatalog テーブルに出力を書き込む場合は、mapred.output.direct.NativeS3FileSystem プロパティと mapred.output.direct.EmrFileSystem プロパティを false に設定して、Amazon EMR の直接書き込み機能を無効にしてください。詳細については、「HCatalog の使用」を参照してください。Hadoop の -D mapred.output.direct.NativeS3FileSystem=false および -D mapred.output.direct.EmrFileSystem=false コマンドを使用できます。直接書き込みを無効にしない場合、エラーは発生しませんが、テーブルが Amazon S3 で作成され、データは書き込まれません。

Sqoop JDBC およびデータベースサポート

デフォルトでは、Sqoop には MariaDB および PostgreSQL ドライバーがインストールされています。Sqoop にインストールされた PostgreSQL ドライバーは PostgreSQL 8.4 に対してのみ機能します。Sqoop に代替となる一連の JDBC コネクターをインストールするには、クラスターのマスターノードに接続して /usr/lib/sqoop/lib にインストールします。以下は各種 JDBC コネクターのリンクです。

Sqoop でサポートされるデータベースが、http://sqoop.apache.org/docs/version/SqoopUserGuide.html#_supported_databases で一覧になっています。ここで、version は使用する Sqoop のバージョン (1.4.6 など) です。JDBC 接続文字列がこのリストの文字列に一致しない場合は、ドライバーを指定する必要があります。

例えば、次のコマンドを使用して Amazon Redshift データベーステーブルにエクスポートできます (JDBC 4.1 の場合)。

sqoop export --connect jdbc:redshift://$MYREDSHIFTHOST:5439/mydb --table mysqoopexport --export-dir s3://amzn-s3-demo-bucket/myinputfiles/ --driver com.amazon.redshift.jdbc41.Driver --username master --password Mymasterpass1

MariaDB と MySQL 両方の接続文字列を使用できますが、MariaDB 接続文字列を指定する場合は、ドライバーを指定する必要があります。

sqoop export --connect jdbc:mariadb://$HOSTNAME:3306/mydb --table mysqoopexport --export-dir s3://amzn-s3-demo-bucket/myinputfiles/ --driver org.mariadb.jdbc.Driver --username master --password Mymasterpass1

Secure Socket Layer 暗号化を使用してデータベースに接続している場合、次の Sqoop エクスポート例にあるような JDBC URI を使用する必要があります。

sqoop export --connect jdbc:mariadb://$HOSTNAME:3306/mydb?verifyServerCertificate=false&useSSL=true&requireSSL=true --table mysqoopexport --export-dir s3://amzn-s3-demo-bucket/myinputfiles/ --driver org.mariadb.jdbc.Driver --username master --password Mymasterpass1

RDS での SSL 暗号化の詳細については、「Amazon RDS ユーザーガイド」の「SSL を使用した DB インスタンスへの接続の暗号化」を参照してください。

詳細については、Apache Sqoop ドキュメントを参照してください。

パスワードの保護

パスワードを安全に渡す方法はいくつかあります。

Java KeyStore

推奨の方法では、Java KeyStore (JKS) を使用してパスワードを暗号化するため、パスワードを読み取り可能な形式で保存する必要がありません。

  1. パスワードエイリアスを作成します。プロンプトが表示されたら、データベースへのアクセスに使用するパスワードを入力します。

    hadoop credential create mydb.password.alias -provider jceks://hdfs/user/root/mysql.password.jceks
  2. パスワードエイリアスを使用して Sqoop ジョブを起動します。

    sqoop export -Dhadoop.security.credential.provider.path=jceks://hdfs/user/root/mysql.password.jceks --connect jdbc:mariadb://$HOSTNAME:3306/mydb --table mysqoopexport --export-dir s3://amzn-s3-demo-bucket/myinputfiles/ --driver org.mariadb.jdbc.Driver --username master --password-alias mydb.password.alias
--password-file

次の例に示すように、--password-file コマンドを使用してパスワードを渡すことができます。

  1. パスワードを含む新しいファイルを作成します。

    echo -n 'Mymasterpass1' > /home/hadoop/mysql-pass.password
  2. このファイルを使用して Sqoop ジョブを起動します。

    sqoop export --connect jdbc:mariadb://$HOSTNAME:3306/mydb --table mysqoopexport --export-dir s3://amzn-s3-demo-bucket/myinputfiles/ --driver org.mariadb.jdbc.Driver --username master --password-file /home/hadoop/mysql-pass.password
-P

次の例に示すように、-P コマンドを使用して、プロンプトからパスワードを入力できます。

sqoop export --connect jdbc:mariadb://$HOSTNAME:3306/mydb --table mysqoopexport --export-dir s3://amzn-s3-demo-bucket/myinputfiles/ --driver org.mariadb.jdbc.Driver --username master -P

推奨の方法では、Java KeyStore (JKS) を使用してパスワードを暗号化するため、パスワードを読み取り可能な形式で保存する必要がありません。

  1. パスワードエイリアスを作成します。プロンプトが表示されたら、データベースへのアクセスに使用するパスワードを入力します。

    hadoop credential create mydb.password.alias -provider jceks://hdfs/user/root/mysql.password.jceks
  2. パスワードエイリアスを使用して Sqoop ジョブを起動します。

    sqoop export -Dhadoop.security.credential.provider.path=jceks://hdfs/user/root/mysql.password.jceks --connect jdbc:mariadb://$HOSTNAME:3306/mydb --table mysqoopexport --export-dir s3://amzn-s3-demo-bucket/myinputfiles/ --driver org.mariadb.jdbc.Driver --username master --password-alias mydb.password.alias
プライバシーサイト規約Cookie の設定
© 2025, Amazon Web Services, Inc. or its affiliates.All rights reserved.