Amazon EMR
Amazon EMR リリースガイド

Amazon EMR の Presto に関する考慮事項

Amazon EMR で Presto を実行するときは、次の違いと制限について考慮してください。

Presto コマンドライン実行可能ファイル

Amazon EMR の Presto コマンドライン実行可能ファイルは presto-cli です。以下に例を示します。

presto-cli --catalog hive

一部の Presto デプロイプロパティは設定可能ではない

ご使用の Amazon EMR のバージョンによっては、一部の Presto デプロイ設定を使用できない場合があります。これらのプロパティについては、Presto ドキュメントの「Deploying Presto」を参照してください。次の表に、Presto properties ファイルの設定ステータスを示します。

ファイル 設定可能

log.properties

すべての Amazon EMR リリースバージョンで設定可能です。Amazon EMR リリースバージョン 4.0.0 以降では、presto-log 設定分類を使用します。

config.properties

すべての Amazon EMR リリースバージョンで設定可能です。Amazon EMR リリースバージョン 4.0.0 以降では、presto-config 設定分類を使用します。

hive.properties

Amazon EMR リリースバージョン 4.1.0 以降で設定可能です。presto-connector-hive 設定分類を使用します。

node.properties

Amazon EMR リリースバージョン 5.6.0 以降で設定可能です。presto-node 設定分類を使用します。

jvm.config

設定可能ではありません。

EMRFS と PrestoS3FileSystem の設定

Amazon EMR リリースバージョン 5.12.0 以降では、Presto は EMRFS を使用できます。これがデフォルト設定です。詳細については、Amazon EMR 管理ガイドの「EMR ファイルシステム (EMRFS) の使用」を参照してください。以前のリリースバージョンでは、PrestoS3FileSystem が唯一のオプションです。

EMRFS の使用には利点があります。セキュリティ設定を使用して、Amazon S3 で EMRFS データの暗号化を設定できます。また、Amazon S3 への EMRFS リクエストに IAM ロールを使用することもできます。詳細については、Amazon EMR 管理ガイドの「暗号化オプションを理解する」および「Amazon S3 への EMRFS リクエストの IAM ロールを設定する」を参照してください。

注記

Amazon EMR リリースバージョン 5.12.0 を使用して Amazon S3 にある基盤となるデータをクエリする際に、設定の問題で Presto のエラーが発生することがあります。これは、Presto が emrfs-site.xml からの設定分類値の取得に失敗するためです。回避策として、usr/lib/presto/plugin/hive-hadoop2/ の下に emrfs サブディレクトリを作成し、usr/lib/presto/plugin/hive-hadoop2/emrfs に既存の /usr/share/aws/emr/emrfs/conf/emrfs-site.xml ファイルへのシンボリックリンクを作成してから、presto-server プロセス (sudo presto-server stop の次に sudo presto-server start) を再起動します。

EMRFS のデフォルトをオーバーライドして、代わりに PrestoS3FileSystem を使用できます。これを行うには、次の例に示すように presto-connector-hive 設定分類を使用して、hive.s3-file-system-typePRESTO に設定します。詳細については、「アプリケーションの設定」を参照してください。

[ { "Classification": "presto-connector-hive", "Properties": { "hive.s3-file-system-type": "PRESTO" } } ]

PrestoS3FileSystem を使用する場合、presto-connector-hive 設定分類を使用して PrestoS3FileSystem プロパティを設定します。使用可能なプロパティの詳細については、Presto ドキュメントの Hive Connector セクションにある「Amazon S3 の設定」を参照してください。これらの設定は EMRFS には適用されません。

エンドユーザー偽装のデフォルト設定

デフォルトでは、Amazon EMR バージョン 5.12.0 以降では、エンドユーザーが HDFS にアクセスするための偽装を行うことができます。詳細については、Presto のドキュメントの「エンドユーザー偽装」を参照してください。この設定は、presto-config 設定分類を使用して変更し、hive.hdfs.impersonation.enabled プロパティを false に設定できます。

Presto ウェブインターフェイス用のデフォルトポート

デフォルトでは、Amazon EMR はポート 8889 を使用するように Presto コーディネーターの Presto ウェブインターフェイスを設定します。この設定は、presto-config 設定分類を使用して変更し、http-server.http.port プロパティを設定できます。詳細については、Presto ドキュメントの「Deploying Presto」セクションの「Config Properties」を参照してください。

一部のリリースでの Hive バケットの実行に関する問題

Presto バージョン 152.3 には、特定の状況で Presto のクエリパフォーマンスを大幅に低下させる Hive バケットの実行に問題があります。このバージョンは、Amazon EMR リリースバージョン 5.0.3、5.1.0、および 5.2.0 に含まれています。この問題を軽減するには、次の例に示すように presto-connector-hive 設定分類を使用して、hive.bucket-execution プロパティを false に設定します。

[ { "Classification": "presto-connector-hive", "Properties": { "hive.bucket-execution": "false" } } ]