1.0 presto的安装与部署对接kafka,MySQL

Preston 官网:http://prestodb.io/

 

一 安装环境

 

JDK 版本:1.8

ps: 本测试将presto的coordinator和worker都部署在一个节点上。

 

二 安装Presto

2.1 下载presto(版本0.221)压缩包并解压

 

下载地址:https://prestodb.github.io/download.html

下载最新版本即可

tar -xf presto-server-0.221.tar.gz

进入plugin目录,查看支持的插件,:

1.0 presto的安装与部署对接kafka,MySQL_第1张图片

2.2 配置presto

在安装目录下创建etc文件夹

 

1.0 presto的安装与部署对接kafka,MySQL_第2张图片

在etc下创建:node.properties,jvm.config,log.properties,config.properties和catalog文件

1.0 presto的安装与部署对接kafka,MySQL_第3张图片

2.2.1 配置node.properties

node.environment=test

node.id=ffffffff-ffff-ffff-ffff-ffffffffffff

node.data-dir=/opt/local/presto-server-0.221/data

 

参数说明:

  • node.environment:环境名称。一个集群节点中的所有节点的名称应该保持一致。
  • node.id:节点唯一标识的名称。
  • node.data-dir:数据和日志存放路径

2.2.2 配置jvm.config

-server

-Xmx4G

-XX:+UseConcMarkSweepGC

-XX:+ExplicitGCInvokesConcurrent

-XX:+AggressiveOpts

-XX:+HeapDumpOnOutOfMemoryError

-XX:OnOutOfMemoryError=kill -9 %p

 

2.2.3 配置config.properties

coordinator=true

node-scheduler.include-coordinator=true

http-server.http.port=8001

task.max-memory=1GB

discovery-server.enabled=true

discovery.uri=http://10.0.18.12:8001

 

注意:新版本task.max-memory 改成query.max-memory

参数说明:

coordinator:Presto 实例是否以 coordinator 对外提供服务

node-scheduler.include-coordinator:是否允许在 coordinator 上进行调度任务

http-server.http.port:HTTP 服务的端口

task.max-memory=1GB:每一个任务(对应一个节点上的一个查询计划)所能使用的最大内存

discovery-server.enabled:是否使用 Discovery service 发现集群中的每一个节点。

discovery.uri:Discovery server 的 url

2.2.4 配置log.properties

com.facebook.presto=INFO

 

设置某一个 java 包的日志等级

 

2.2.5 关于 Catalog 的配置(与kafka连接配置)

首先在etc下面建立catalog文件夹,然后在catalog文件夹中新建kafka.properties文件,

catalog文件夹,该文件夹就相当于一个数据库实例,所有的数据库连接都放在该文件夹下

配置如下:

connector.name=kafka

kafka.table-names=table1,table2

kafka.nodes=web-3:9092,web-4:9092,web-5:9092

 

 

 

三 启动Presto

 

进入presto安装目录bin下面,利用help命令可以查看launcher的详细用法

launcher --help

以后台方式启动presto

launcher start

一般启动方式,且输出并打印日志

launcher run

停止presto

launcher stop

四 测试Presto CLI

下载Presto CLI

wget https://repo1.maven.org/maven2/com/facebook/presto/presto-cli/0.221/presto-cli-0.221-executable.jar

将mv presto-cli-0.221-executable.jar重命名为presto

mv presto-cli-0.221-executable.jar presto

将presto添加执行权限

chmod 777 presto

启动presto cli

./presto --server localhost:8001 --catalog kafka --schema default

执行show tables,如下

1.0 presto的安装与部署对接kafka,MySQL_第4张图片

五 错误处理

解决方案:检查presto是否启动,一般情况为presto没有启动

1.0 presto的安装与部署对接kafka,MySQL_第5张图片

解决方案:在config.properties中设置node-scheduler.include-coordinator=true

1.0 presto的安装与部署对接kafka,MySQL_第6张图片

解决方案:kafka.properties配置文件没有放在catalog文件夹中

六 对接MySQL

首先在etc下面建立catalog文件夹,然后在catalog文件夹中新建mysql.properties文件,

这里的mysql.properties文件名可以取其他名字,比如:Mymysql.properties,但是properties尾缀一定要是这个。以后进行多数据源查询时,字段全名是:文件名.主题名.表名,比如:查表aa:Mymysql.datacube.aa

配置如下:

connector.name=mysql

connection-url=jdbc:mysql://10.0.18.13:3306

connection-user=root

connection-password=HWW123_yu@qing

 

配置解释:

connector.name:他是数据库连接池的名字,需要按固定要求填写,mysql就写mysql,这样PrestoDB内部会根据这个连接名匹配 相应数据库驱动。

connection-url:写的是数据源的url地址,注意不同的数据源,这个url是不一样的,如果不按照规则写将会导致启动PrestoDB失败,或者查询不到信息爆:Query failed (#20190402_122809_00002_c3a4r): Driver returned null connection之类的错误.mysql

数据库在写url时不写主题名,只写 jdbc:mysql://192.168.1.200:3306 就好,写了会报错。

connection-user:数据源的用户名

connection-password:数据源密码

启动presto cli

./presto --server localhost:8001 --catalog mysql --schema test

1.0 presto的安装与部署对接kafka,MySQL_第7张图片

1.0 presto的安装与部署对接kafka,MySQL_第8张图片

 

 

 

 

 

 

 

你可能感兴趣的:(数据库)