1. 配置Presto

在安装目录中创建一个etc目录。 在这个etc目录中放入以下配置信息:

  • 节点属性:每个节点的环境配置信息
  • JVM 配置:JVM的命令行选项
  • 配置属性:Presto server的配置信息
  • Catalog属性:configuration forConnectors(数据源)的配置信息

 

2. Node Properties

vi node.properties

 

node.environment=sfpresto //注意不能有-
node.id=1001 //注意必须为数字
node.data-dir=/home/xiang/datas/presto

针对上面的配置信息描述如下:

  • node.environment: 集群名称。所有在同一个集群中的Presto节点必须拥有相同的集群名称。
  • node.id: 每个Presto节点的唯一标示。每个节点的node.id都必须是唯一的。在Presto进行重启或者升级过程中每个节点的node.id必须保持不变。如果在一个节点上安装多个Presto实例(例如:在同一台机器上安装多个Presto节点),那么每个Presto节点必须拥有唯一的node.id。
  • node.data-dir: 数据存储目录的位置(操作系统上的路径)。Presto将会把日期和数据存储在这个目录下。

 

3. JVM配置

vi jvm.config

 

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

 

4. Config Properties

vi config.properties

 

node-scheduler.include-coordinator=true
http-server.http.port=8989 //自定有端口,不与现有端口冲突即可
task.max-memory=1GB
discovery-server.enabled=true

discovery.uri=http://localhost:8989

  • node-scheduler.include-coordinator:是否允许在coordinator服务中进行调度工作。对于大型的集群,在一个节点上的Presto server即作为coordinator又作为worke将会降低查询性能。因为如果一个服务器作为worker使用,那么大部分的资源都不会被worker占用,那么就不会有足够的资源进行关键任务调度、管理和监控查询执行。
  • http-server.http.port:指定HTTP server的端口。Presto 使用 HTTP进行内部和外部的所有通讯。
  • task.max-memory=1GB:一个单独的任务使用的最大内存 (一个查询计划的某个执行部分会在一个特定的节点上执行)。 这个配置参数限制的GROUP BY语句中的Group的数目、JOIN关联中的右关联表的大小、ORDER BY语句中的行数和一个窗口函数中处理的行数。 该参数应该根据并发查询的数量和查询的复杂度进行调整。如果该参数设置的太低,很多查询将不能执行;但是如果设置的太高将会导致JVM把内存耗光。
  • discovery-server.enabled:Presto 通过Discovery 服务来找到集群中所有的节点。为了能够找到集群中所有的节点,每一个Presto实例都会在启动的时候将自己注册到discovery服务。Presto为了简化部署,并且也不想再增加一个新的服务进程,Presto coordinator 可以运行一个内嵌在coordinator 里面的Discovery 服务。这个内嵌的Discovery 服务和Presto共享HTTP server并且使用同样的端口。
  • discovery.uri:Discovery server的URI。由于启用了Presto coordinator内嵌的Discovery 服务,因此这个uri就是Presto coordinator的uri。修改example.net:8080,根据你的实际环境设置该URI。注意:这个URI一定不能以“/“结尾。

 

5. 日志级别

vi log.properties
 
com.facebook.presto=INFO

 

6. Catalog Properties

mkdir etc/catalog

vi hive.properties

connector.name=hive-cdh5 #connector必须与hadoop版本对应
hive.metastore.uri=thrift://localhost:9083 #默认metastore的端口是9083

7. 运行Presto

后台运行:bin/launcher start

前台运行 :bin/launcher run