Presto 0.22.0 安装记录

1. 下载 & 解压

# 下载
wget https://repo1.maven.org/maven2/com/facebook/presto/presto-server/0.220/presto-server-0.220.tar.gz

# 移动到要安装目录
mv presto-server-0.220.tar.gz /opt/

# 解压
tar zxvf presto-server-0.220.tar.gz

# 软链
ln -s presto-server-0.220 presto

2. 配置

如无特殊说明,则每台机器均需要配置

2.1 新建 etc 文件夹

cd prosto

mkdir etc

2.2 配置 node.properties

配置说明:

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

详细配置如下:

vim etc/node.properties

# 增加如下内容
node.environment=presto-cluster
node.id=presto-node-1
node.data-dir=/data/presto

2.3 配置 config.properties

所有节点均需要此配置,但coordinator和worker不一样

配置说明:

  • coordinator
    • 指定是否运维Presto实例作为一个coordinator(调度节点)
    • coordinator:接收来自客户端的查询请求,管理每个查询的执行过程
  • node-scheduler.include-coordinator
    • 是否允许coordinator节点作为worker参与计算,true允许、false不允许
    • 如果资源允许的话,建议使用独立的机器承担coordinator工作
  • 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
    • 注意:这个URI一定不能以“/”结尾

coordinator节点的详细配置如下:

vim etc/config.properties

# 增加如下内容
coordinator=true
node-scheduler.include-coordinator=true
http-server.http.port=8081
query.max-memory=8GB
query.max-memory-per-node=1GB
discovery-server.enabled=true
discovery.uri=http://192.168.30.217:8081

worker节点的详细配置如下:

vim etc/config.properties

# 增加如下内容
coordinator=false
http-server.http.port=8081
query.max-memory=8GB
query.max-memory-per-node=1GB
discovery.uri=http://192.168.30.217:8081

2.4 配置 log.properties

  • 日志级别:DEBUG、INFO、WARN、ERROR
vim log.properties

# 增加如下内容
com.facebook.presto=INFO

2.5 配置 hive.properties

配置说明

  • connector.name
    • 连接器名称
    • 不能乱起名,hive必须带上版本号,如:如hive-hadoop2
    • hive连接器支持Apache Hadoop 2.x和衍生分布包括Cloudera cdh5和Hortonworks Data Platform (HDP)
  • hive.metastore.uri
    • 需要与hive的metastore地址和端口对应
    • CDH的在/etc/hive/conf/hive-site.xml
    • Presto 0.22.0 安装记录
  • hive.config.resources
    • 必须与hadoop集群的配置路径对应
    • CDH的在/etc/hadoop/conf路径下
    • Presto 0.22.0 安装记录

详细配置如下:

mkdir etc/catalog 
cd ./catalog 
vim hive.properties

# 增加如下内容
connector.name=hive-hadoop2
hive.metastore.uri=thrift://hadoop1:9083
hive.config.resources=/etc/hadoop/conf/core-site.xml,/etc/hadoop/conf/hdfs-site.xml

2.6 配置 jvm.config

vim etc/jvm.config

# 增加如下内容
-server 
-Xmx8G
-XX:+UseConcMarkSweepGC 
-XX:+ExplicitGCInvokesConcurrent 
-XX:+CMSClassUnloadingEnabled 
-XX:+AggressiveOpts 
-XX:+HeapDumpOnOutOfMemoryError 
-XX:OnOutOfMemoryError=kill -9 %p 
-XX:ReservedCodeCacheSize=300M

2.7 运行

# daemon运行
bin/launcher start

# foreground运行,如果用到supersive运行的话需要是这种方式
bin/launcher run

# 停止
bin/launcher stop

# 查看状态
bin/launcher status

# 查看进程
jps

3. Presto CLI

3.1 下载

# 下载
wget https://repo1.maven.org/maven2/com/facebook/presto/presto-cli/0.220/presto-cli-0.220-executable.jar

# 重命名
mv presto-cli-0.220-executable.jar presto-cli

# 添加执行权限
chmod +x presto-cli

3.2 运行

# 指定数据库
./presto-cli --server 10.240.0.8:8081 --catalog hive --schema default

# 不指定数据库
./presto-cli --server 10.240.0.8:8081 --catalog hive

运行结果如下,即为成功(因为我的库里没有表所以为空):
Presto 0.22.0 安装记录

参考
  1. https://blog.csdn.net/zzq900503/article/details/79403949
  2. http://www.voidcn.com/article/p-thrvtmvf-bqm.html
  3. https://blog.csdn.net/joomlaer/article/details/45889759
  4. https://www.cnblogs.com/sorco/p/7060166.html
  5. https://blog.csdn.net/cakexuexi/article/details/80820170
上一篇:Error reported to Coordinator: Default MaxPoolingOp only supports NHWC on device type CPU


下一篇:记一次kafka客户端NOT_COORDINATOR_FOR_GROUP处理过程