DockerイメージからのPrestoのデプロイ

これらの手順は、IntelチップとAppleシリコンチップの両方で、Mac OS X上で開発およびテストされました。

以下の手順に従って、

  • brew、docker、およびColimaのコマンドラインツールをインストールします。

  • Dockerのセットアップを確認します。

  • PrestoサーバーのDockerイメージをプルします。

  • ローカルPrestoサーバーを起動します。

brew、Docker、Colimaのインストール

このタスクでは、brewをインストールし、brewを使用してDockerとColimaをインストールする方法を示します。

注:Dockerがインストールされている場合は、手順1〜3をスキップできますが、手順4のコマンドを実行してDockerのセットアップを確認する必要があります。

  1. brewがインストールされていない場合は、次のコマンドを実行します。

    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

  2. DockerコマンドラインとColimaツールをインストールするには、次のコマンドを実行します。

    brew install docker colima

  3. 次のコマンドを実行します。

    colima start

    :Colimaによって作成されるデフォルトのVMは、2 CPU、2GBメモリ、60GBストレージを使用します。VMリソースをカスタマイズするには、ColimaのREADMEのVMのカスタマイズを参照してください。

  4. ローカルセットアップを確認するには、次のコマンドを実行します。

    docker run hello-world

    次のような応答が表示されたら、準備完了です。

    Hello from Docker! This message shows that your installation appears to be working correctly. Dockerからこんにちは!このメッセージは、インストールが正しく動作していることを示しています。

Presto Dockerコンテナのインストールと実行

  1. DockerHubのPrestoから最新の非エッジPrestoコンテナをダウンロードします。次のコマンドを実行します。

    docker pull prestodb/presto:latest

    コンテナのダウンロードには数分かかる場合があります。ダウンロードが完了したら、次の手順に進みます。

  2. ローカルシステムに、次のテキストを含むconfig.propertiesという名前のファイルを作成します。

    coordinator=true
    node-scheduler.include-coordinator=true
    http-server.http.port=8080
    discovery-server.enabled=true
    discovery.uri=http://localhost:8080
    
  3. ローカルシステムに、次のテキストを含むjvm.configという名前のファイルを作成します。

    -server
    -Xmx2G
    -XX:+UseG1GC
    -XX:G1HeapRegionSize=32M
    -XX:+UseGCOverheadLimit
    -XX:+ExplicitGCInvokesConcurrent
    -XX:+HeapDumpOnOutOfMemoryError
    -XX:+ExitOnOutOfMemoryError
    -Djdk.attach.allowAttachSelf=true
    
  4. DockerコンテナでPrestoサーバーを起動するには、コマンドを実行します

    docker run -p 8080:8080 -it -v ./config.properties:/opt/presto-server/etc/config.properties -v ./jvm.config:/opt/presto-server/etc/jvm.config --name presto prestodb/presto:latest

    このコマンドは、ダウンロードしたイメージprestodb/presto:latestを使用する新しく作成されたコンテナにprestoという名前を割り当てます。

    Prestoサーバーは、端末ウィンドウに起動情報をログに記録します。次のような応答が表示されたら、PrestoサーバーはDockerコンテナで実行されています。

    ======== SERVER STARTED ======== サーバー起動済み

Presto Dockerコンテナの削除

Presto Dockerコンテナを削除するには、次の2つのコマンドを実行します。

docker stop presto

docker rm presto

これらのコマンドは、成功するとコンテナの名前prestoを返します。