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 sql引擎访问kudu数据-LMLPHP

    解压之后,在该文件夹下添加相应的配置:

在 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,不然会报错,具体不知道为什么解析有问题。

安装presto sql引擎访问kudu数据-LMLPHP

    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的根目录下有很多连接器:

安装presto sql引擎访问kudu数据-LMLPHP

    这里我们启动一下sudo bin/launcher run,sudo bin/launcher start可与后台运行

安装presto sql引擎访问kudu数据-LMLPHP

    然后我们可以使用presto-cli-0.225-executable.jar来操作,当然我把这么长的jar缩短一下改成presto-cli,为了方面用

    ./presto-cli --server localhost:8090 --catalog kudu --schema default

安装presto sql引擎访问kudu数据-LMLPHP

    上面那那个users是我这样创建的:

安装presto sql引擎访问kudu数据-LMLPHP

    然后像使用sql查询一样,插入两条数据并且查询:

安装presto sql引擎访问kudu数据-LMLPHP

安装presto sql引擎访问kudu数据-LMLPHP

    未完待续,后面复杂的使用再写!    

参考:

http://prestodb.github.io/

https://yq.aliyun.com/articles/25580

https://github.com/MartinWeindel/presto-kudu

09-07 05:13