简介:Presto是一个运行在多台服务器上的分布式系统。 完整安装包括一个coordinator(调度节点)和多个worker。 由客户端提交查询,从Presto命令行CLI提交到coordinator。 coordinator进行解析,分析并执行查询计划,然后分发处理队列到worker中。
1、环境准备
u Centos
u Java8
u Python3.x
u Hadoop2.x
2、集群规划
u Azkaban01
u Azkabna02
u Azkaban03
3、连接器
u Apache Hadoop 1.x (hive-hadoop1)
u Apache Hadoop 2.x (hive-hadoop2)
u Cloudera CDH 4 (hive-cdh4)
u Cloudera CDH 5 (hive-cdh5)
4、安装步骤
下载presto-server-0.203.tar.gz,解压到azkabna03中的/home目录中,重命名为presto203,如图所示:
5、配置文件
在安装目录中创建一个etc目录, 在这个etc目录中放入以下配置文件:
u 1. config.properties :Presto 服务配置
u 2. node.properties :环境变量配置,每个节点特定配置
u 3. jvm.config :Java虚拟机的命令行选项
u 4. log.properties: 允许你根据不同的日志结构设置不同的日志级别
u 5. catalog目录 :每个连接者配置(data sources)
如图所示:
config.properties
包含了Presto server的所有配置信息。 每个Presto server既是一个coordinator也是一个worker。 但是在大型集群中,处于性能考虑,建议单独用一台机器作为 coordinator,一个coordinator的etc/config.properties应该至少包含以下信息:
node.properties
包含针对于每个节点的特定的配置信息。 一个节点就是在一台机器上安装的Presto实例,etc/node.properties配置文件至少包含如下配置信息
jvm.config
包含一系列在启动JVM的时候需要使用的命令行选项。这份配置文件的格式是:一系列的选项,每行配置一个单独的选项。由于这些选项不在shell命令中使用。 因此即使将每个选项通过空格或者其他的分隔符分开,java程序也不会将这些选项分开,而是作为一个命令行选项处理,信息如下:
log.properties
这个配置文件中允许你根据不同的日志结构设置不同的日志级别。每个logger都有一个名字(通常是使用logger的类的全标示类名). Loggers通过名字中的“.“来表示层级和集成关系,信息如下:
Catalog Properties
通过在etc/catalog目录下创建catalog属性文件来完成catalogs的注册。 例如:可以先创建一个etc/catalog/jmx.properties文件,文件中的内容如下,完成在jmxcatalog上挂载一个jmxconnector
在etc/catalog目录下创建hive.properties,信息如下:
6、分部式部署
将azkabna03上的presto203拷贝到azkaban01、azkaban02
修改azkaban01中的配置文件,主要修改congig.properties、node.properties两个配置文件
congig.properties修改为如下
Node.properties修改为如下
修改Azkaban02中的两个配置文件,同上,node.id设置为azkaban02即可
7、启动
在azkaban03、azkaban02、azkaban01上依次启动如下命令:
bin/launcher start
8、停止
bin/launcher stop
9、客户端下载
下载presto-cli-0.203-executable.jar,重命名为presto,然后执行chmod +x presto设置可执行权限,执行如下命令:
./presto --server azkaban03:9999 --catalog hive --schema default
即可进入cli进行查询
10、webUI界面:
参数说明以及详细介绍参考如下网址: