--- title: "Presto(Trino) を使用する" slug: "hadoop-vpc-21" updated: 2026-09-17T09:25:51Z published: 2026-09-17T09:25:51Z canonical: "guide.ncloud-docs.com/hadoop-vpc-21" stale: true --- > ## Documentation Index > Fetch the complete documentation index at: https://guide.ncloud-docs.com/llms.txt > Use this file to discover all available pages before exploring further. # Presto(Trino) を使用する VPC環境で利用できます。 [Presto(Trino)](http://prestodb.github.io/)は、テラバイト、ペタバイト単位のデータを分散クエリ(Distributed queries)を使用して分析できるツールです。 HDFSだけでなく Hive Warehouseや RDBMSなどの様々なソースからデータを読み取ります。 クエリが MapReduce Jobとして実行される [Hive](https://hive.apache.org/)や [Pig](https://pig.apache.org/)とは異なり、Presto(Trino)にはクエリの実行エンジンが別途実装されています。ステップ別の結果をディスクに書き込まずにメモリからメモリへデータを転送する仕組みになっており、HDFSに保存されたデータを Hiveより迅速かつインタラクティブに分析できます。そのため、[Tableau](https://onlinehelp.tableau.com/current/pro/desktop/en-us/examples_presto.htm)といった [BI Tool](https://en.wikipedia.org/wiki/Business_intelligence_software)では Hiveより Presto(Trino)の方が連携に適しています。 参考 - Cloud Hadoop 1.9までは Prestoを、Cloud Hadoop 2.0では Trinoという名前を使用します。 - Presto(Trino)もまた、Hiveや Pigのように OLAPタスクを処理するために設計されたため、トランザクション(Transaction)中心の従来の RDBMSを代替することはできません。 ## Presto(Trino)の構成要素 Presto(Trino)サービスを構成する2つの主要コンポーネントは、Coordinatorと Workerです。 Coordinatorは Masterロールとして1つ、Workerは Slaveロールとして複数存在できます。Coordinatorと Worker、Workerノード同士で通信を行う際には REST APIを使用します。 - Coordinator Coordinatorは Presto(Trino)サービスの中心であり、以下のようなロールを実行します。 - Clientからリクエストを受ける - SQL構文のパース、クエリプランニング - クエリを実行する Workerノードの調整、Workerノードのアクティビティのトラッキング - Worker Workerは Coordinatorから受け取ったタスクを実行し、データを処理します。タスクの実行結果は Workerから Clientへと直ちに転送します。 ## クエリ実行プロセス クエリの実行プロセスは、次の通りです。(以下の画像画面を参照) 1. Presto(Trino) Workerプロセスの開始と Coordinatorの Discoveryサーバへの登録 - Coordinatorがタスクの実行に Workerを割り当てるには、Discoveryサーバへの登録が必要 2. Clientは、HTTPを用いてクエリを Coordinatorに転送 3. Coordinatorはクエリプランを作成し、Connectorプラグインにスキーマデータをリクエスト 4. Coordinatorは実行するタスクを Workerに転送 5. Workerは、Connectorプラグインを用いてデータソース(Data Sources)からデータを読み取る 6. Workerは、メモリでタスクを実行 7. 実行結果を Clientに直ちに転送 ## データソース - Connector Presto(Trino)で Connectorは、Databaseでのドライバと同じロールを実行します。すなわち、データソースからデータを読み取るように Coordinatorまたは Workerとデータソースとの間をつなぐロールを果たします。 Presto(Trino)は、基本的に Hive、MySQL、Kafkaなどの様々なデータソースに対する [Connectorを提供](https://prestodb.github.io/docs/current/connector.html)します。 - Catalog カタログは、Connectorに対するマウントポイントです。すべてのカタログは、特定の Connectorに関連付けられています。Presto(Trino)は、カタログにマウントされた Connectorを介してデータソースにアクセスできます。例えば、Hive Connectorで Hive warehouseにアクセスするには、`/etc/presto/catalog` の下位に Hiveカタログ(`hive.properties`)を構成します。 Presto(Trino)クエリでは、1つ以上のカタログを使用できます。すなわち、1つのクエリで複数のデータソースを使用できます。 カタログは、Presto(Trino) configurationディレクトリ(`/etc/presto/`)の下位の `config.properties`に定義されています。 - Schema スキーマは、テーブルを整理するための方法です。 1つのカタログとスキーマでクエリの実行を一度で行える対象である**テーブルセット**を定義できます。 Presto(Trino)で Hiveや RDBMSにアクセスする際のスキーマは、ここで対応する概念のデータベースと同じです。 また、他のデータソースでは、スキーマを構成するためのテーブルを組織化できます。 - Table RDBMSのテーブル概念と同じです。 Presto(Trino)でテーブルを参照する際には `fully-qualified` すなわち、カタログ、スキーマ、テーブル名をピリオド(.)で区切って明示する必要があります。 (例) hive.samples.t1) 参考 Rangerを用いて Catalog、Schema、Tableレベルに対するアクセス権限を制御できます。詳細は、[Trinoアクセス権限管理](/docs/ja/hadoop-vpc-11#trino-%EC%A0%91%EA%B7%BC-%EA%B6%8C%ED%95%9C-%EA%B4%80%EB%A6%AC)をご参照ください。 ## Presto(Trino)クラスタを使用する ### クラスタ作成 NAVERクラウドプラットフォームコンソールで Cloud Hadoopクラスタを作成します。 クラスタ作成に関する詳細は、[クラスタ作成](/docs/ja/hadoop-vpc-2#%ED%81%B4%EB%9F%AC%EC%8A%A4%ED%84%B0-%EC%83%9D%EC%84%B1)をご参照ください。 参考 - Cloud Hadoop 1.3から Presto v0.240がインストールされたクラスタを使用できます。 ![cloudhadoop-create_ko](https://cdn.document360.io/6998976f-9d95-4df8-b847-d375892b92c2/Images/Documentation/cloudhadoop-create_ja.png?sv=2026-02-06&spr=https&st=2026-10-26T13%3A33%3A11Z&se=2026-10-26T14%3A33%3A11Z&sr=c&sp=r&sig=4OY43l2ruO%2FJKeRXidlwfi5HhAcLvSd50PCZc8NKD80%3D) - Cloud Hadoop 1.3ではクラスタが Presto(Trino)タイプで作成されなかった場合でも、Ambari Add Serviceを用いて Presto(Trino)を追加できます。 ### Ambari UIでの Presto(Trino)サービス確認 Presto(Trino)をインストールすると、Ambari UIで以下のようにサービスを確認できます。このページで、サービスの各コンポーネントを開始または停止できます。 ![chadoop-4-7-003_ko](https://cdn.document360.io/6998976f-9d95-4df8-b847-d375892b92c2/Images/Documentation/chadoop-4-7-003_ja.png?sv=2026-02-06&spr=https&st=2026-10-26T13%3A33%3A11Z&se=2026-10-26T14%3A33%3A11Z&sr=c&sp=r&sig=4OY43l2ruO%2FJKeRXidlwfi5HhAcLvSd50PCZc8NKD80%3D) - Summary: コンポーネントがインストールされたホストを確認 - Configs: Presto(Trino)サービスの configurationを変更 - Quick Links: Presto(Trino) Discovery UI - このリンクを介してアクセスするには、[トンネリング](/docs/ja/hadoop-vpc-6)が必要です。コンソールで提供する Web UIリンクを用いたアクセスをお勧めします。詳細は、[Presto(Trino) Discovery UIにアクセス](/docs/ja/hadoop-vpc-21#presto-discovery-ui-%EC%A0%91%EC%86%8D)をご参照ください。 ### 主な Configuration - jvm.properties Coordinator、Workerサーバで使用する JVMオプションを入力します。`-Xmx`オプションで JVM heapを調整できます。Coordinatorノードと Workerノードのスペックが異なる場合があるため、メモリ設定を分離して適用します。**jvm.properties**の構成は、以下のようにロール別に分離されています。実際のサーバの `/etc/presto/conf`パスの下位には、同じファイル名の `jvm.properties`が存在します。 ![chadoop-4-8-005_ko](https://cdn.document360.io/6998976f-9d95-4df8-b847-d375892b92c2/Images/Documentation/chadoop-4-8-005_ja.png?sv=2026-02-06&spr=https&st=2026-10-26T13%3A33%3A11Z&se=2026-10-26T14%3A33%3A11Z&sr=c&sp=r&sig=4OY43l2ruO%2FJKeRXidlwfi5HhAcLvSd50PCZc8NKD80%3D) - config.properties まれなケースではありますが、必要に応じて **config.properties**も Coordinatorと Workerのロール別にメモリをそれぞれ設定できます。主な構成項目の定義は次の通りです。 | 項目 | デフォルト値 | 説明 | | --- | --- | --- | | query.max-memory-per-node | 1G | - 1つのクエリが Workerで使用できる Userメモリの最大値 - あるクエリから各 Workerが割り当てられたメモリの中で、この限度を超えるものが1つでもある場合、このクエリの実行をキャンセル | | query.max-memory | 20G | - 1つのクエリがクラスタ全体に対して使用できるメモリの最大値 - あるクエリを通じてすべての Workerノードに割り当てた Userメモリの合計がその限度を超えると、クエリの実行をキャンセル | | query.max-total-memory-per-node | 2G | - 1つのクエリがクラスタ全体に対して使用できる User/Systemメモリの最大値 - あるクエリを通じてすべての Workerノードに割り当てた User/Systemメモリの合計がこの限度を超えると、クエリの実行をキャンセル | ![chadoop-4-8-006_ko](https://cdn.document360.io/6998976f-9d95-4df8-b847-d375892b92c2/Images/Documentation/chadoop-4-8-006_ja.png?sv=2026-02-06&spr=https&st=2026-10-26T13%3A33%3A11Z&se=2026-10-26T14%3A33%3A11Z&sr=c&sp=r&sig=4OY43l2ruO%2FJKeRXidlwfi5HhAcLvSd50PCZc8NKD80%3D) 注意 `http-server.http.port`を変更する場合、Coordinatorの `http-server.http.port`と Workerの `http-server.http.port`を同じく変更します。異なるポートに指定すると、通信は行えません。 - node.properties Presto(Trino)デーモンが使用するログディレクトリ、pidディレクトリなどを設定できます。このディレクトリを変更するには、各サーバでディレクトリの所有者と権限を確認する必要があります。 `node.environment`で現在使用中の environment名を指定できます。 ![chadoop-4-8-007_ko](https://cdn.document360.io/6998976f-9d95-4df8-b847-d375892b92c2/Images/Documentation/chadoop-4-8-007_ja.png?sv=2026-02-06&spr=https&st=2026-10-26T13%3A33%3A11Z&se=2026-10-26T14%3A33%3A11Z&sr=c&sp=r&sig=4OY43l2ruO%2FJKeRXidlwfi5HhAcLvSd50PCZc8NKD80%3D) ### Trino CLI Trino CLIはクエリを実行できる反応型シェル(shell)を提供します。 Trino Clisのロールが割り当てられたホストでは、いずれもシェルを使用できます。 Trino CLIの使用に関する詳細は、[Trino CLI Documentation](https://trino.io/docs/current/client/cli.html)をご参照ください。 - Trino CLIを使用するには、まずその環境が構成されたエッジノードに SSHでアクセスする必要があります。 ``` /home1/cdp/usr/nch/3.1.0.0-78/trino/bin/trino-cli --server :8285 ``` 参考 Presto(Trino) Coordinatorサーバアクセス時の `<COORDINATOR-HOST-IP>`は、エッジノード(e-001)の Private IPアドレスです。**Ambari UI > Hosts**メニューで確認できます。 - 使用可能なカタログを確認 ``` trino> show catalogs; Catalog --------- hive system (2 rows) Query 20260130_085922_00000_8gfjs, FINISHED, 2 nodes Splits: 12 total, 12 done (100.00%) 1.41 [0 rows, 0B] [0 rows/s, 0B/s] ``` 参考 データソースを追加してクエリを実行する方法は、[Presto(Trino)で Hive warehouseデータを分析する](/docs/ja/hadoop-vpc-22)ガイドでより詳しく説明します。 ### Presto(Trino) Discovery UIにアクセス Cloud Hadoopコンソールで **[Application別に見る]** から Presto(Trino) Discovery UIにアクセスできます。詳細は、[Application別に見る](/docs/ja/hadoop-vpc-4#application-%EB%B3%84-%EB%B3%B4%EA%B8%B0)をご参照ください。 ![cloudhadoop-access-webui_ko](https://cdn.document360.io/6998976f-9d95-4df8-b847-d375892b92c2/Images/Documentation/cloudhadoop-access-webui_ja.png?sv=2026-02-06&spr=https&st=2026-10-26T13%3A33%3A11Z&se=2026-10-26T14%3A33%3A11Z&sr=c&sp=r&sig=4OY43l2ruO%2FJKeRXidlwfi5HhAcLvSd50PCZc8NKD80%3D) Presto(Trino) Discovery UIページでは、Presto(Trino)サービスの全体的なステータスを確認できます。クエリ履歴も照会できます。 ![chadoop-4-7-005_ko](https://cdn.document360.io/6998976f-9d95-4df8-b847-d375892b92c2/Images/Documentation/chadoop-4-7-005_ja.png?sv=2026-02-06&spr=https&st=2026-10-26T13%3A33%3A11Z&se=2026-10-26T14%3A33%3A11Z&sr=c&sp=r&sig=4OY43l2ruO%2FJKeRXidlwfi5HhAcLvSd50PCZc8NKD80%3D)