Presto 0.22.0 安装记录

摘要:
Discovery-server.enabledPresto使用Discovery服务查找群集中的所有节点。每个Presto实例在启动时向Discovery服务Presto注册自己。为了简化部署并且不想添加新的服务流程,Prestocordinator可以运行嵌入在协调器中的发现服务。嵌入式Discovery服务和Presto共享HTTP服务器并使用相同的端口。

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 安装记录第1张
  • hive.config.resources
    • 必须与hadoop集群的配置路径对应
    • CDH的在/etc/hadoop/conf路径下
    • Presto 0.22.0 安装记录第2张

详细配置如下:

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 安装记录第3张

参考
  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

免责声明:文章转载自《Presto 0.22.0 安装记录》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Ubuntu 18 升级nodejsjmeter压力测试的简单实例+badboy脚本录制(一个简单的网页用户登录测试的结果)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Windows环境下安装Hadoop+Hive的使用案例

 正文前先来一波福利推荐: 福利一: 百万年薪架构师视频,该视频可以学到很多东西,是本人花钱买的VIP课程,学习消化了一年,为了支持一下女朋友公众号也方便大家学习,共享给大家。 福利二: 毕业答辩以及工作上各种答辩,平时积累了不少精品PPT,现在共享给大家,大大小小加起来有几千套,总有适合你的一款,很多是网上是下载不到。 获取方式: 微信关注 精品3分钟...

Hive on Spark 和Hive on mr执行结果不一致原因剖析

一、Hive 执行引擎概述 目前hive执行引擎支持三种,包括mr、spark和Tz;mr是hive最早支持的数据类型,执行速度最慢,但是性能上也是最为稳定的;spark和Tz是后续支持的执行引擎,也是将hive的SQL语句转换为spark可以识别的sparksql语句进行执行。 二、当有空表出现时,spark和mr执行引擎结果不一样问题排查 示例:sel...

ASP.NET MVC入门-Program类:程序的入口

笔记内容来源于微软 MVP 杨旭老师 solenovex 的视频 Program 类:Web程序的入口 Program 类的本质就是一个控制台应用。 其中的 Main 方法是 Web 应用的入口方法。 我们可以在 Main方法中启动 Web 服务。 Program 类的源码 首先,Program 类中的 Main方法调用了 CreateWebHostBui...

TP5 多入口文件配置的坑

闲话不多说,TP5(5.0.20) 在配置多入口文件的时候你是否遇到过一下的问题呢? 开发设计的需求吧网站拆分为前台、后台、API 3 个模块,对应的也需要3个入口文件,后台和API入口文件是用PATH_INFO 模式访问(关闭路由)。 在配置后台入口文件的时候,直接从前台入口文件拷贝了主要代码如下 <?php // [ 后台应用入口文件 ] //...

C#WinformSettings.setting配置

以下是学习笔记: 参考:https://blog.csdn.net/weixin_42451919/article/details/102819404?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_title~default-0.no_search_link&s...

#学习分享#开发基础知识之前端测试(一)

前言:本文用于2018/1/30晚内部分享。主题:前端单元测试 正文: 一、思考 我的目标是,如何浅入本次的主题,让愿意接收陌生信号的“对象”快速简单的get到信号,并且对本次分享产生一个小兴趣。 二、What     本章节主要讲述前端单元测试做什么,vue单元测试做什么。   (1) 基础概念 测试的概念:测试是检测你的应用代码(也叫“生产代码”)...