Presto集群搭建
一、软件环境
Linux: CentOS_7_5_64_org
jdk: jdk1.8.0_172
presto: presto-server-0.203
三台Linux服务器:
192.168.3.166
192.168.3.167
192.168.3.168
二、安装&配置
安装presto
1
2
3
4
5
6
7
| #目录统一放在/usr下面
#首先创建presto项目目录
mkdir presto
#下载并解压软件
tar -zxvf presto-server-0.203.tar.gz
#在presto下创建存储日志、本地元数据的数据目录
mkdir data
|
配置presto
在安装目录中创建一个etc
目录。 在这个etc
目录中放入以下几个配置文件:
1
2
3
4
5
6
7
8
9
| #在presto-server-0.203下创建etc目录
mkdir etc
#在etc下创建如下4个配置文件
touch node.properties
touch jvm.config
touch config.properties
touch log.properties
#创建一个catalog目录
mkdir catalog
|
- node.properties:每个节点的环境配置信息
- jvm.config:JVM的命令行选项
- config.properties:Presto server的配置信息
- log.properties:日志配置信息
- Catalog:数据源的配置信息
- Node Properties配置
1
2
3
4
5
6
| #集群名称,所有在同一个集群中的Presto节点必须拥有相同的集群名称
node.environment=production
#节点的唯一标识,每个节点的node.id都必须是唯一的。
node.id=1-1-1-1-1 #其他两台分别为(1-1-1-1-2和1-1-1-1-3)
#数据存储目录,Presto将会把日期和数据存储在这个目录下
node.data-dir=/usr/presto/data
|
- Jvm.Config配置
1
2
3
4
5
6
7
8
| -server
-Xmx16G
-XX:+UseG1GC
-XX:G1HeapRegionSize=32M
-XX:+UseGCOverheadLimit
-XX:+ExplicitGCInvokesConcurrent
-XX:+HeapDumpOnOutOfMemoryError
-XX:+ExitOnOutOfMemoryError
|
- Config.properties配置
- 主机配置
1
2
3
4
5
6
7
8
9
10
11
12
| #指定是否运维Presto实例作为一个coordinator
coordinator=true
#是否允许在coordinator服务中进行调度工作
node-scheduler.include-coordinator=true
#指定HTTP server的端口
http-server.http.port=8080
#一个单独的任务使用的最大内存
query.max-memory=1GB #主机也可以使用task.max-memory
#Presto 通过Discovery 服务来找到集群中所有的节点
discovery-server.enabled=true
#Discovery server的URI
discovery.uri=http://192.168.3.166:8080
|
- 从机配置
1
2
3
4
5
6
| coordinator=true
http-server.http.port=8080
#从机必须使用query.max-memory
query.max-memory=1GB
#主机的IP、端口
discovery.uri=http://192.168.3.166:8080
|
- Log.properties配置
1
2
| #日志级别
com.facebook.presto=INFO
|
Catalog配置
通过在/etc/catalo
g目录下创建catalog
属性文件来完成catalogs的注册。
例如:可以先创建一个/etc/catalog/jmx.properties
文件,文件中的内容如下,完成在jmxcatalog
上挂载一个jmxconnector
:
连接数据库配置
建立一个mysql的配置文件:mysql.properties
1
2
3
4
| connector.name=mysql
connection-url=jdbc:mysql://192.168.3.166:3306
connection-user=root
connection-password=root
|
三、运行Presto
设置启动文件权限
1
2
| chmod -R 777 /usr/presto/presto-server-0.203/bin
chmod -R 777 /usr/presto
|
启动
安装目录下的/bin/launcher
文件,就是启动脚本。Presto可以使用如下命令作为后台进程启动:
1
2
3
4
| #启动命令
./launcher start
#查看启动状态命令
./launcher status
|
命令行接口
Presto CLI为用户提供了一个用于查询的可交互终端窗口。CLI是一个可执行JAR文件, 这也就意味着可以像UNIX终端窗口一样来使用CLI。
下载presto-cli-0.100-executable.jar,重命名为presto,使用chmod +x presto
命令设置可执行权限。
然后执行下面命令,连接数据库:
1
| ./presto --server localhost:8080 --catalog mysql--schema default
|
- 参数说明
- mysql: catalog里面连接数据库的配置文件名称
- default: 数据库模式(表空间)的名称
其他命令
1
2
3
4
5
6
| --查看mysql源中有哪些库:
show schemas from mysql;
--查看mysql源中local_mysql库中有那些表:
show tables from mysql.local_mysql;
--查看mysql源中local_mysql库中ksh_topic表的所有数据:
select * from mysql.local_mysql.ksh_topic;
|
四、Presto监控页面
地址: http://192.168.3.166:8080
ps: 端口是config配置文件中的http-server.http.port属性指定的