Presto是一种用于大数据的高性能分布式SQL查询引擎。其架构允许用户查询各种数据源,如Hadoop,AWS S3,Alluxio,MySQL,Cassandra,Kafka和MongoDB,甚至可以在单个查询中查询来自多个数据源的数据,真是功能强大。
这里梳理一下安装过程,官网http://prestodb.github.io/,上篇已经写了怎么安装kudu,之下是我安装presto的过程:
在官网先下载presto-server-0.225.tar.gz和presto-cli-0.225-executable.jar
解压之后,在该文件夹下添加相应的配置:
在 presto-server-0.90 目录创建 etc 目录,并创建以下文件:
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
参数说明:
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 使用。
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查询一样,插入两条数据并且查询:
未完待续,后面复杂的使用再写!
参考: