presto部署

背景

  presto又是facebook开源的一个分布式查询引擎查询效率比hive高很多。具体的说明可以看http://tech.meituan.com/presto.html,不错的实践说明。

单机部署

   1.jdk安装1.8版本,并配置环境变量。
   2.最好建一个presto用户,可选。
   3.下载安装包 http://search.maven.org/remotecontent?filepath=com/facebook/presto/presto-server,这里我选择的是0.90
   4.解压后,创建etc目录;并在目录中,创建后面的配置文件。
   5.创建node.properties文件,内容如下:
    node.environment=presto
    node.id=11111111-1111-1111-1111-111111111111
    node.data-dir=/data/presto-data

    内容说明
    (node.environment:环境名称。一个集群节点中的所有节点的名称应该保持一致)
    (node.id:节点唯一标识的名称)
    (node.data-dir:数据和日志存放路径)

   6.创建jvm.config,内容如下:

    -server
    -Xmx8G
    -XX:+UseConcMarkSweepGC
    -XX:+ExplicitGCInvokesConcurrent
    -XX:+CMSClassUnloadingEnabled
    -XX:+AggressiveOpts
    -XX:+HeapDumpOnOutOfMemoryError
    -XX:OnOutOfMemoryError=kill -9 %p
    -XX:ReservedCodeCacheSize=150M

   7.创建config.properties,内容如下:

    coordinator=true
    datasources=jmx,hive
    node-scheduler.include-coordinator=true
    http-server.http.port=8411
    task.max-memory=1GB
    discovery-server.enabled=true
    discovery.uri=http://localhost:8411

    内容说明
    datasources:指定多个catalog names,通过逗号分割,coordinator与workers均含有JMX来读取Java相关配置信息,另外可以配置 hive等信息,当然coordinator最好不配置hive,减少协调器的负载
    http-server.http.port:Presto通过Http协议进行交互,则配置该端口进行信息交互
    task.max-memory:节点中任务使用最大的内存,该参数对查询操作有一定的约束
    discovery-server.enabled:Presto使用 Discovery service来定位集群中所有的节点。启动实例后向Discovery service注册。coordinator运行在嵌入式的Discovery service
    discovery.uri:Discovery server的URI,单机版配置自身就OK

   8.创建log.properties,内容如下:

    com.facebook.presto=DEBUG (可选)

   9.etc路径下创建catalog目录

    文件名称
     jmx.properties
    文件内容
    connector.name=jmx
    

    文件名称
     hive.properties
    文件内容
     connector.name=hive-hadoop2  
     hive.metastore.uri=thrift://ip:port

    如果不连接hive,可以自行调整7,9两步

集群部署

  【discovery节点】
    下载地址http://search.maven.org/remotecontent?filepath=io/airlift/discovery/discovery-server
      环境准备类似单节点
      discovery下新建etc路径
      文件名称
      config.properties
      文件内容
      http-server.http.port=8411 
      文件名称
      jvm.config
      文件内容
      -server  
      -Xmx8G  
      -XX:+UseConcMarkSweepGC  
      -XX:+ExplicitGCInvokesConcurrent  
      -XX:+AggressiveOpts  
      -XX:+HeapDumpOnOutOfMemoryError  
      -XX:OnOutOfMemoryError=kill -9 %p
      文件名称
      node.properties
      文件内容
      node.environment=presto
      node.id=dddddddd-dddd-dddd-dddd-dddddddddddd
      node.data-dir=/data/presto-data
     
      【coordinator】
      文件名称
      node.properties
      文件内容
      node.environment=presto
      node.id=11111111-1111-1111-1111-111111111111
      node.data-dir=/home/presto/presto-data

      文件名称
      config.properties
      文件内容
      coordinator=true
      datasources=jmx
      node-scheduler.include-coordinator=false
      http-server.http.port=8411
      task.max-memory=16GB
      discovery-server.enabled=true
      discovery.uri=http://discovery机器的ip:port

      文件名称
       jvm.config
      文件内容
      -server
      -Xmx16G
      -XX:+UseConcMarkSweepGC
      -XX:+ExplicitGCInvokesConcurrent
      -XX:+CMSClassUnloadingEnabled
      -XX:+AggressiveOpts
      -XX:+HeapDumpOnOutOfMemoryError
      -XX:OnOutOfMemoryError=kill -9 %p
      -XX:ReservedCodeCacheSize=150M

      文件名称
      log.properties
      文件内容
      com.facebook.presto=DEBUG

    【worker】
      文件名称
      config.properties
      文件内容
      coordinator=false
      datasources=jmx,hive
      http-server.http.port=8411
      task.max-memory=16GB
      discovery.uri=http://discovery机器的ip:port

      hive等的连接,可以参考单节点

      起停服务都是在bin目录下launcher start/stop
      起discovery服务是,或单节点器服务时,会报discovery找不到,不影响使用。

启动客户端

  下载客户端jar包 http://search.maven.org/remotecontent?filepath=com/facebook/presto/presto-cli
      presto-cli-0.99-executable.jar  --server localhost:8411 --catalog hive --schema default 
    

你可能感兴趣的:(大数据生态)