Presto是一种用于大数据的高性能分布式SQL查询引擎。其架构容许用户查询各类数据源,如Hadoop,AWS S3,Alluxio,MySQL,Cassandra,Kafka和MongoDB,甚至能够在单个查询中查询来自多个数据源的数据,真是功能强大。java
这里梳理一下安装过程,官网http://prestodb.github.io/,上篇已经写了怎么安装kudu,之下是我安装presto的过程:node
在官网先下载presto-server-0.225.tar.gz和presto-cli-0.225-executable.jargit
解压以后,在该文件夹下添加相应的配置:github
在 presto-server-0.90 目录建立 etc 目录,并建立如下文件:sql
node.properties
:每一个节点的环境配置jvm.config
:jvm 参数config.properties
:配置 Presto Server 参数log.properties
:配置日志等级Catalog Properties
:Catalog 的配置 etc/node.properties
示例配置以下:架构
node.environment=production node.id=ffffffff-ffff-ffff-ffff-ffffffffffff node.data-dir=/var/presto/data
参数说明:jvm
node.environment
:环境名称。一个集群节点中的全部节点的名称应该保持一致。node.id
:节点惟一标识的名称。node.data-dir
:数据和日志存放路径。 etc/jvm.config
示例配置以下:分布式
-server -Xmx16G -XX:+UseConcMarkSweepGC -XX:+ExplicitGCInvokesConcurrent -XX:+CMSClassUnloadingEnabled -XX:+AggressiveOpts -XX:+HeapDumpOnOutOfMemoryError -XX:OnOutOfMemoryError=kill -9 %p -XX:ReservedCodeCacheSize=150M
etc/config.properties
包含 Presto Server 相关的配置,每个 Presto Server 能够通时做为 coordinator 和 worker 使用。oop
coordinator=true node-scheduler.include-coordinator=true http-server.http.port=8090 discovery-server.enabled=true discovery.uri=http://cdh1:8090
参数说明:性能
coordinator
:Presto 实例是否以 coordinator 对外提供服务node-scheduler.include-coordinator
:是否容许在 coordinator 上进行调度任务http-server.http.port
:HTTP 服务的端口discovery-server.enabled
:是否使用 Discovery service 发现集群中的每个节点。discovery.uri
:Discovery server 的 url不要加这条配置task.max-memory=1GB,否则会报错,具体不知道为何解析有问题。
etc/log.properties
能够设置某一个 java 包的日志等级:
com.facebook.presto=INFO
关于 Catalog 的配置,首先须要建立 etc/catalog 目录,而后根据你想使用的链接器来建立对应的配置文件,好比,你想使用 jmx 链接器,则建立 jmx.properties:
connector.name=jmx
若是你想使用 kudu 的链接器,则在 etc/catalog 建立 kudu.properties:
connector.name=kudu kudu.client.master-addresses=localhost:7051
能够看到在presto的根目录下有不少链接器:
这里咱们启动一下sudo bin/launcher run,sudo bin/launcher start可与后台运行
而后咱们可使用presto-cli-0.225-executable.jar来操做,固然我把这么长的jar缩短一下改为presto-cli,为了方面用
./presto-cli --server localhost:8090 --catalog kudu --schema default
上面那那个users是我这样建立的:
而后像使用sql查询同样,插入两条数据而且查询:
未完待续,后面复杂的使用再写!
参考: