Apache Presto 简明教程

Apache Presto - Installation

本章将解释如何在您的机器上安装 Presto。让我们了解 Presto 的基本要求,

  1. Linux or Mac OS

  2. Java version 8

现在,让我们继续执行以下步骤在您的机器上安装 Presto。

Verifying Java installation

希望您现在已在您的机器上安装了 Java 8,您只需使用以下命令对其进行验证。

$ java -version

如果 Java 已成功安装在您的机器上,您将看到已安装的 Java 版本。如果未安装 Java,请按照后续步骤在您的机器上安装 Java 8。

下载 JDK。访问以下链接下载最新版本的 JDK。

最新版本是 JDK 8u 92,文件为 “jdk-8u92-linux-x64.tar.gz”。请在您的机器上下载该文件。

然后,解压文件并移动到指定目录。

然后设置 Java 替代项。最终,Java 将安装在您的机器上。

Apache Presto Installation

访问以下链接下载最新版本的 Presto,

现在,“presto-server-0.149.tar.gz” 的最新版本将下载到您的机器上。

Extract tar Files

使用以下命令解压 tar 文件 −

$ tar  -zxf  presto-server-0.149.tar.gz
$ cd presto-server-0.149

Configuration Settings

Create “data” directory

在安装目录之外创建一个数据目录,该目录将用于存储日志、元数据等,以便在升级 Presto 时可以轻松保存。可使用以下代码定义该目录 −

$ cd
$ mkdir data

要查看它的位置路径,请使用命令“pwd”。此位置将在次の节点配置文件中分配。

Create “etc” directory

使用以下代码在 Presto 安装目录内创建一个等目录 −

$ cd presto-server-0.149
$ mkdir etc

该目录将保存配置文件。让我们逐个创建每个文件。

Node Properties

Presto 节点配置文件包含特定于每个节点的环境配置。使用以下代码在等目录 (etc/node.properties) 中创建该文件 −

$ cd etc
$ vi node.properties

node.environment = production
node.id = ffffffff-ffff-ffff-ffff-ffffffffffff
node.data-dir = /Users/../workspace/Presto

完成所有更改后,保存文件并退出终端。其中 node.data 是上述创建的 data 目录的位置路径。 node.id 表示每个节点的唯一标识符。

JVM Config

在 etc 目录中创建一个文件 “jvm.config”(etc/jvm.config)。此文件包含用于启动 Java 虚拟机的命令行选项列表。

$ cd etc
$ vi jvm.config

-server
-Xmx16G
-XX:+UseG1GC
-XX:G1HeapRegionSize = 32M
-XX:+UseGCOverheadLimit
-XX:+ExplicitGCInvokesConcurrent
-XX:+HeapDumpOnOutOfMemoryError
-XX:OnOutOfMemoryError = kill -9 %p

完成所有更改后,保存文件并退出终端。

Config Properties

在 etc 目录中创建一个文件 “config.properties”(etc/config.properties)。此文件包含 Presto 服务器的配置。如果设置一台机器用于测试,Presto 服务器只能充当使用以下代码定义的协调进程 −

$ cd etc
$ vi config.properties

coordinator = true
node-scheduler.include-coordinator = true
http-server.http.port = 8080
query.max-memory = 5GB
query.max-memory-per-node = 1GB
discovery-server.enabled = true
discovery.uri = http://localhost:8080

在此,

  1. coordinator − master node.

  2. node-scheduler.include-coordinator − 允许在协调器上计划任务。

  3. http-server.http.port − 指定 HTTP 服务器的端口。

  4. query.max-memory=5GB − 分布式内存的最大值。

  5. query.max-memory-per-node=1GB − 每个节点的最大内存值。

  6. discovery-server.enabled − Presto 使用 Discovery 服务查找群集中的所有节点。

  7. discovery.uri − Discovery 服务器的 URI。

如果设置多台机器 Presto 服务器,Presto 将充当协调进程和工作进程。使用此配置设置在多台机器上测试 Presto 服务器。

Configuration for Coordinator

$ cd etc
$ vi config.properties

coordinator = true
node-scheduler.include-coordinator = false
http-server.http.port = 8080
query.max-memory = 50GB
query.max-memory-per-node = 1GB
discovery-server.enabled = true
discovery.uri = http://localhost:8080

Configuration for Worker

$ cd etc
$ vi config.properties

coordinator = false
http-server.http.port = 8080
query.max-memory = 50GB
query.max-memory-per-node = 1GB
discovery.uri = http://localhost:8080

Log Properties

在 etc 目录中创建一个文件 “log.properties”(etc/log.properties)。此文件包含命名日志记录程序层次结构的最低日志级别。它使用以下代码定义 −

$ cd etc
$ vi log.properties
com.facebook.presto = INFO

保存文件并退出终端。在此,使用了 DEBUG、INFO、WARN 和 ERROR 四个日志级别。默认日志级别为 INFO。

Catalog Properties

在 etc 目录中创建一个目录 “catalog”(etc/catalog)。这将用于装载数据。例如,使用以下内容创建 etc/catalog/jmx.properties ,以将 jmx connector 装载为 jmx 目录 −

$ cd etc
$ mkdir catalog
$ cd catalog
$ vi jmx.properties
connector.name = jmx

Start Presto

可以使用以下命令启动 Presto,

$ bin/launcher start

然后,您将看到类似于此的响应,

Started as 840

Run Presto

若要启动 Presto 服务器,请使用以下命令 −

$ bin/launcher run

在成功启动 Presto 服务器后,您可在 “var/log” 目录中找到日志文件。

  1. launcher.log − 这是由启动器创建的日志并连接到服务器的 stdout 和 stderr 流。

  2. server.log − 这是 Presto 使用的主要日志文件。

  3. http-request.log − HTTP 请求由服务器收到。

到目前为止,您已在自己的计算机上成功安装了 Presto 配置设置。让我们继续执行步骤来安装 Presto CLI。

Install Presto CLI

Presto CLI 提供了基于终端的交互式 shell,用于运行查询。

通过访问以下链接下载 Presto CLI,

现在,您的计算机上将安装“presto-cli-0.149-executable.jar”。

Run CLI

在下载 presto-cli 后,将其复制到要从中运行它的位置。此位置可以是具有到协调器网络访问权限的任何节点。首先将 Jar 文件的名称更改为 Presto。然后使用以下代码通过 chmod + x 命令使其可执行 −

$ mv presto-cli-0.149-executable.jar presto
$ chmod +x presto

现在使用以下命令执行 CLI,

./presto --server localhost:8080 --catalog jmx --schema default
Here jmx(Java Management Extension) refers to catalog and default referes to schema.

您将看到以下响应,

 presto:default>

现在,在您的终端上键入“jps”命令,您将看到正在运行的守护程序。

Stop Presto

在执行所有执行操作后,可以使用以下命令停止 presto 服务器 −

$ bin/launcher stop