前置条件
安装到hadoop客户端
1. 集群规划
ip地址 | 服务 |
172.24.12.30 | coordinator,workor |
172.24.12.30 | workor |
172.24.12.30 | workor |
2、配置基础环境(presto需要java环境)(所有节点执行)
java软件包 链接:https://pan.baidu.com/s/1Utcsz56jnWfGDLxTvdQPTw?pwd=j6rg 提取码:j6rg
[root@endemo-5 data1]# ll /opt/java
lrwxrwxrwx 1 root root 12 Apr 11 20:29 /opt/java -> jdk1.8.0_131
[root@endemo-5 data1]# cat /etc/profile.d/env_path.sh
export JAVA_HOME=/opt/java
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$CLASSPATH
export PATH=$JAVA_HOME/bin:$PATH
export LANG=en_US.UTF-8
[root@endemo-5 data1]# java -version
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)
3、上传并解压 (所有节点执行)
presto官方下载地址 百度云盘我安装的presto软件包 链接:https://pan.baidu.com/s/1DeUi1jL7QKB39yVT0ETa9Q?pwd=801r 提取码:801r
[root@endemo-5 data1]# ll /data1/presto-server-0.188.tar.gz
-rw-r--r-- 1 root hadoop 509296962 Jul 18 11:47 /data1/presto-server-0.188.tar.gz
4、安装 (所有节点执行)
1、创建配置目录(所有节点执行)
tar xf presto-server-0.188.tar.gz
cd presto-server-0.188
mkdir etc
[root@endemo-5 presto-server-0.188]# tree etc/
etc/
├── catalog
│ ├── hive.properties
│ └── jmx.properties
├── config.properties
├── jvm.config
├── log.properties
└── node.properties
# 配置目录中包含四个配置文件和一个目录分别为node.properties、jvm.properties、config.properties、log.properties、catalog,作用分别是:
# Node Properties:特定于每个节点的环境配置
# JVM Config: Java虚拟机的命令行选项
# Config Properties: Presto服务器的配置
# Log Properties: 允许设置命名记录器层次结构的最小日志级别
# Catalog Properties: 连接器(数据源)的配置
2、特定于每个节点的环境配置 (所有节点执行,修改node.id配置,每台不一样)
node.environment=mediaforce #环境环境的名称。集群中的所有Presto节点必须具有相同的环境名称
node.id=endemo-5 #id此Presto安装的唯一标识符。
node.data-dir=/data1/presto/prestoData #数据目录的位置
[root@endemo-5 presto-server-0.188]# cat etc/node.properties
node.environment=mediaforce
node.id=endemo-5
node.data-dir=/data1/presto/prestoData
[root@endemo-5 presto-server-0.188]# mkdir -p /data1/presto/prestoData # 创建一个data目录
3、Java虚拟机的命令行选项(所有节点执行)
[root@endemo-5 presto-server-0.188]# cat etc/jvm.config
-server
-Xmx16G
-XX:+UseG1GC
-XX:G1HeapRegionSize=32M
-XX:+UseGCOverheadLimit
-XX:+ExplicitGCInvokesConcurrent
-XX:+HeapDumpOnOutOfMemoryError
-XX:+ExitOnOutOfMemoryError
4、Presto服务器的配置(所有节点执行,数据节点修改coordinator)
如果是Coordinator节点:注意 discovery.uri是指Coordinator节点的域名或者IP
[root@endemo-5 presto-server-0.188]# cat etc/config.properties
coordinator=true
node-scheduler.include-coordinator=true
http-server.http.port=9098
query.max-memory=20GB
query.max-memory-per-node=1GB
discovery-server.enabled=true
discovery.uri=http://172.24.12.30:9098 #coordinator的host和端口
如果是worker节点:
coordinator=false
node-scheduler.include-coordinator=true
http-server.http.port=9098
query.max-memory=20GB
query.max-memory-per-node=1GB
discovery-server.enabled=true
discovery.uri=http://172.24.12.30:9098 #coordinator的host和端口
参数解释:
coordinator: 是否运行该实例为coordinator(接受client的查询和管理查询执行)。
node-scheduler.include-coordinator:coordinator是否也作为work。对于大型集群来说,在coordinator里做worker的工作会影响查询性能。
http-server.http.port:指定HTTP端口。Presto使用HTTP来与外部和内部进行交流。
query.max-memory: 查询能用到的最大总内存
query.max-memory-per-node: 查询能用到的最大单结点内存
discovery-server.enabled: Presto使用Discovery服务去找到集群中的所有结点。每个Presto实例在启动时都会在Discovery服务里注册。这样可以简化部署, 不需要额外的服务,Presto的coordinator内置一个Discovery服务。也是使用HTTP端口。
discovery.uri: Discovery服务的URI。将example.net:8080替换为coordinator的host和端口。这个URI不能以斜杠结尾,这个错误需特别注意,不然会报404错误。
另外还有以下属性:
jmx.rmiregistry.port: 指定JMX RMI的注册。JMX client可以连接此端口
jmx.rmiserver.port: 指定JXM RMI的服务器。可通过JMX监听。
5、允许设置命名记录器层次结构的最小日志级别(所有节点执行)
[root@endemo-5 presto-server-0.188]# cat etc/log.properties
com.facebook.presto=INFO
6、 连接器(数据源)的配置(所有节点执行)
[root@endemo-5 presto-server-0.188]# cat etc/catalog/hive.properties
connector.name=hive-hadoop2
hive.metastore.uri=thrift://172.24.3.183:9083 #hive.metastore服务的ip加端口
hive.config.resources=/usr/hdp/2.6.2.14-5/hadoop/conf/core-site.xml,/usr/hdp/2.6.2.14-5/hadoop/conf/hdfs-site.xml
#hive.allow-drop-table=true
[root@endemo-5 presto-server-0.188]# cat etc/catalog/jmx.properties
connector.name=jmx
5、守护进程启动(所有节点执行)
[root@bdos6-endemo-5 presto-server-0.188]# bin/launcher start
Started as 14723
[root@bdos6-endemo-5 presto-server-0.188]# bin/launcher status
Running as 14723
6、测试
[root@host-172-24-12-30 bin]# ./presto --server 172.24.12.30:9098 --catalog hive --schema default
presto:default> show schemas from hive;
Schema
--------------------
default
information_schema
(2 rows)
Query 20220920_025530_00001_id49k, FINISHED, 2 nodes
Splits: 18 total, 18 done (100.00%)
0:02 [2 rows, 35B] [0 rows/s, 17B/s]
总结
集群模式需要注意修改下面两个配置形成集群
etc/config.properties
etc/node.properties