Presto集群搭建

Presto

Posted by 冷小冰 on October 9, 2018

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:数据源的配置信息
  1. 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
    
  2. 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
    
  3. 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  
      
  4. Log.properties配置
    1
    2
    
    #日志级别
    com.facebook.presto=INFO
    

Catalog配置

通过在/etc/catalog目录下创建catalog属性文件来完成catalogs的注册。
例如:可以先创建一个/etc/catalog/jmx.properties文件,文件中的内容如下,完成在jmxcatalog上挂载一个jmxconnector

1
connector.name=jmx

连接数据库配置 建立一个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属性指定的 img