Presto安装部署教程(附hive集成教程

Presto安装部署教程

  • 前言
    • 环境
    • 安装
    • 配置
      • config.properties
      • jvm.config
      • log.properties
      • node.properties
      • catalog
    • 启动并验证

前言

作为OLAP的一员,presto发挥着连接异构数据源的重要作用,目前presto已经集成了20多种数据源,可谓是非常丰富,官方还提供了自定义插件开发接口。所以,倘若你的数据源支持jdbc且使用的是标准的sql语法,那么只需要简单几步就可以整合其他数据源,比如clickhouse/kylin等。

本文只介绍presto安装部署教程,其余内容其他文章会说明。
Presto安装部署教程(附hive集成教程_第1张图片

环境

presto官网:facebook开源 http://prestodb.io
ps:京东也有一套presto代码,但是在15年的时候就不维护了。所以亲们建议看facebook的就可以了。

此教程版本
presto 0.237.2

安装

去官方下载一个presto-server-xxx.tar
解压目录

drwxr-xr-x.  3 root root     4096 Aug 18 09:57 bin
drwxr-xr-x.  3 root root     4096 Aug 24 15:02 etc
drwxr-xr-x.  2 root root    12288 Aug 18 09:57 lib
drwxr-xr-x   2 root root     4096 Aug 24 14:24 logs
-rw-r--r--.  1 root root   191539 Aug 18 09:58 NOTICE
drwxr-xr-x. 34 root root     4096 Aug 24 09:51 plugin
-rw-r--r--.  1 root root      126 Aug 18 09:58 README.txt

跟大多数中间件一样,
bin:主程序启动的二进制文件
etc:配置文件
lib:默认依赖包
logs:日志位置
plugin:插件包(重点,后续自定义插件都需要在这里配置)

配置

此处需要配置4个基本配置,再单独配置数据源connector。

注意:源文件是没有创建的,这里要手动创建,不要有疑惑,干就是了

config.properties

vi etc/config.properties

coordinator=true # 是否coordinator节点
node-scheduler.include-coordinator=false   # 是否work节点
http-server.http.port=8080
query.max-memory=5GB
query.max-memory-per-node=1GB
query.max-total-memory-per-node=2GB
discovery-server.enabled=true
discovery.uri=http://{hostname}:8080

以上配置为纯coordinator节点的配置。
presto有两个角色,分别是coordinator和worker
一般的,配置一个coordinator节点就足够了,起协调集群作用。
这里再提供worker节点的配置

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

若单节点部署,可以使用以下方案

coordinator=true
node-scheduler.include-coordinator=true
http-server.http.port=8080
query.max-memory=5GB
query.max-memory-per-node=1GB
query.max-total-memory-per-node=2GB
discovery.uri=http://testcdh001:8080

jvm.config

vi etc/jvm.config

-server
-Xmx16G
-XX:+UseG1GC
-XX:G1HeapRegionSize=32M
-XX:+UseGCOverheadLimit
-XX:+ExplicitGCInvokesConcurrent
-XX:+HeapDumpOnOutOfMemoryError
-XX:+ExitOnOutOfMemoryError

log.properties

vi etc/log.properties

com.facebook.presto=INFO

node.properties

vi etc/node.properties

node.environment=production
node.id=myPrestoNode1
node.data-dir=/var/presto/data

ps: 若集群部署,node.environment必须一致,且保证node.id唯一

catalog

前面是配置presto启动的相关参数,接下来要配置集成数据源,这里有格式要求。这里拿hive举个例子

vi etc/catalog/hive.properties

connector.name=hive-hadoop2
hive.metastore.uri=thrift://{hostname}:9083
hive.config.resources=/opt/cloudera/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554/etc/hadoop/conf.empty/core-site.xml,/opt/cloudera/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554/etc/hadoop/conf.empty/hdfs-site.xml

hive.config.resources 配置hdfs的配置,分别是core-site.xml, hdfs-site.xml

启动并验证

./bin/launcher start --server-log-file=./logs/server.log
以后台方式启动,查看server.log是否正常

去官方下载presto-cli-{version}-executable.jar,为presto客户端工具
执行以下命令连接presto

/opt/presto-server-0.237.2/presto-cli-0.237.2-executable.jar --server {hostname}:8080

连接成功后,测试在presto上查询hive数据
假设我的hive表存储结构为
database:default
table:emp
那么在presto查询时,语法为

select * from hive.default.emp;

ok,若能返回结果,则恭喜你,可以开始使用presto的更多功能了。
比如说,集成mysql,然后hive跟mysql聚合查询

select * from hive.default.emp as emp inner join mysql.default.dept as dept on emp.deptid = dept.deptid;

你可能感兴趣的:(presto,presto,hive)