其他分享
首页 > 其他分享> > Presto 安装与部署

Presto 安装与部署

作者:互联网

1. Hive

Presto 在访问 Hive 中的数据时需要得到 Hive 中的所有元数据信息,因此需要部署一个 HiveMetaStore 服务提供 Hive 的元数据信息。

启动 HiveMetaStore 服务的命令如下:

nohup hive --service metastore -p 9083 > /Users/smartsi/opt/hive/logs/metastore.log 2>&1 &

上述表示在后台启动 Hive 的 MetaStore 服务,MetaStore 服务监听 9083 端口,并将错误和常规日志输出到日志文件 /Users/smartsi/opt/hive/logs/metastore.log 中。

Hive版本:2.3.6
Hadoop版本:2.7.7

2. Presto

Presto版本:0.231.1

2.1 安装

运行如下命令将 Presto 解压到工作目录 ~/opt 下:

tar -zxvf presto-server-0.231.1.tar.gz -C ~/opt/

创建软连接便于升级:

ln -s presto-server-0.231.1/ presto

这样我们就安装完成了,看一下 Presto 目录内容:

smartsi:opt smartsi$ cd presto
smartsi:presto smartsi$ ll
total 384
drwxr-xr-x    7 smartsi  staff     224  2 16 11:20 ./
drwxrwxrwx   40 smartsi  staff    1280  2 16 11:24 ../
-rw-r--r--    1 smartsi  staff  191539  4  9  2019 NOTICE
-rw-r--r--    1 smartsi  staff     126  4 17  2019 README.txt
drwxr-xr-x    6 smartsi  staff     192  2  5 11:59 bin/
drwxr-xr-x  149 smartsi  staff    4768  2 16 11:20 lib/
drwxr-xr-x   31 smartsi  staff     992  2 16 11:20 plugin/

2.2 配置

在安装目录中创建一个 etc 目录。在这个 etc 目录中放入以下配置信息:

2.2.1 node.properties

在每个 Presto 节点上都需要进行节点属性配置。node.properties 配置文件包含针对于每个节点的特定的配置信息。配置文件至少包含如下配置信息:

node.environment=prod
node.id=D17FDC86-8113-4AF0-9EC2-681A45ECFC2E
node.data-dir=/Users/smartsi/opt/presto/data

配置说明:

2.2.2 jvm.config

Presto 开发语言是 Java,每个 Presto 服务进程都是运行在 JVM 之上的,因此需要在 JVM 的配置文件中指定 Presto 服务进程的 Java 运行环境。该配置文件包含一系列在启动 JVM 时需要使用的命令行选项。这份配置文件的格式为:每行一个命令行参数。由于该配置文件中的内容不会被 Shell 使用。因此即使某一行命令行参数包含了空格或者其他的特殊字符,也不需要使用引号括起来。一个典型的 JVM 配置文件如下:

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

由于 OutOfMemoryError 会导致 JVM 处于不一致状态,所以遇到这种错误的时候我们一般的处理措施就是将dump headp中的信息(用于debugging),然后强制终止进程。

2.2.3 config.properties

在 Presto 集群中,每个节点都上都会启动一个 Presto 服务进程,该配置文件的配置项会应用于每个 Presto 的服务进程。每个服务进程既可以作为 Coordinator 也可以作为 Worker。但是在一个大型集群中,应该选定一个特定节点上的 Presto 服务进程只作为 Coordinator 提供服务,这样会提供更加卓越的性能。

Presto 集群中 Coordinator 节点的配置文件内容如下:

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

Presto 集群中 Worker 节点的配置文件内容如下:

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

如果我们只是使用一台机器用于测试,这台服务器既可以作为 Coordinator 也可以作为 Worker,那么就需要将配置属性 coordinator 和 node-scheduler.include-coordinator 设置为 true

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

具体配置详细如下:

2.2.4 log.properties

可以在这个配置文件中设置 Logger 的最小日志级别。每个 Logger 都有一个具有层级关系的名字,通常是使用 Logger 类的全限定类名。所有的 Logger 都会基于名称拥有一个层级继承关系:

com.facebook.presto=INFO

上面日志级别的设置表示:对于使用 Logger 的 com.facebook.presto.server 和 com.facebook.presto.hive 类来说,两者的最小日志级别均为 INFO。在 Presto 的日志配置文件中可以设置的日志级别一共4个:INFO、DEBUG、WARN、ERROR。

2.2.5 catalog properties

关于 Catalog 的配置,首先需要创建 etc/catalog 目录,然后根据你想使用的连接器来创建对应的配置文件,比如,你想使用 JMX 连接器,则创建 jmx.properties

connector.name=jmx

如果你想使用 Hive 的连接器,则创建 hive.properties

drwxr-xr-x  8 smartsi  staff  256  2 16 11:27 ../
connector.name=hive-hadoop2
hive.metastore.uri=thrift://localhost:9083
hive.config.resources=/Users/smartsi/opt/hadoop/ect/hadoop/core-site.xml,/Users/smartsi/opt/hadoop/ect/hadoop/hdfs-site.xml,/Users/smartsi/opt/hadoop/ect/hadoop/mapred-site.xml
hive.allow-drop-table=true
hive.allow-rename-table=true

2.3 运行

你可以使用下面命令后台启动:

bin/launcher start

也可以前台启动,观察输出日志:

bin/launcher run

另外,你也可以通过下面命令停止:

bin/launcher stop

2.4 测试

下载 presto-cli-0.231.1-executable.jar,添加执行权限并为其创建软连接 presto-cli

ln -s presto-cli-0.231.1-executable.jar presto-cli
sudo chmod 777 presto-cli-0.231.1-executable.jar

进入 Presto 客户端:

smartsi:presto smartsi$ ./presto-cli --server localhost:8001 --catalog hive --schema default
presto:default>

可以通过查看 Hive 表来判断是否创建成功:

presto:default> show tables;
            Table
------------------------------
 dws_app_pub_region_device_td
(1 row)

Query 20200216_094252_00006_advvt, FINISHED, 1 node
Splits: 19 total, 19 done (100.00%)
0:00 [1 rows, 45B] [2 rows/s, 109B/s]

presto:default>

上述可以看到我们连接 Hive 元数据成功了。

我们还可以访问其UI:http://localhost:8001/。

标签:node,配置文件,Presto,部署,presto,smartsi,安装,节点
来源: https://blog.csdn.net/sinat_37574187/article/details/121973088