首页 > 其他分享 >presto-server-0.152部署文档

presto-server-0.152部署文档

时间:2023-06-07 15:04:31浏览次数:58  
标签:node Presto 0.152 ffff hive server presto


`
presto-server-0.152部署文档
Presto 环境搭建
Presto简介
Presto结构
安装Presto
1 环境要求
2 下载presto
3 配置Presto
启动停止登录
1 启动
2 停止
3 登录

  1. Presto简介

Facebook presto是什么,继Facebook创建了HIVE神器后的又一以SQL语言作为接口的分布式实时查询引擎,可以对PB级的数据进行快速的交互式查询。它支持标准的ANSI SQL.包含查询,聚合,JOIN以及窗口函数等。除了Facebook这个创造都在使用外,国内像京东,美团等也都有广泛的使用。对于英文不好的同学可以访问由京东创建的这个中文翻译站点:http://prestodb-china.com/,只是这个版本才0.100,现在最新版已到0.176。

  1. Presto结构

Coordinator: 接入接口,解析SQL语句,生成查询计划,任务分发等。
Worker:负责与数据的读写交互以及执行查询计划

值得一提的是Presto以插件形式对数据存储层进行了抽象,它叫做连接器,如:Cassandra Connector,Hive Connector,MySQL Connector等,可以看出它不仅默认提供了Hadoop相关组件的连接器,还提供了Mysql, Postgresql等RDBMS的连接器,同时也可以方便的通过自定义连接器开发,达到适用于不同数据存储层的扩展目的。
Presto提供以下几种类型的使用接口:
Presto命令行
JDBC驱动

3.安装Presto

3.1 环境要求

Linux or Mac OS X
Java 8, 64-bit

主机IP coordinator worker
10.102.0.29 true true
10.102.0.83 false true
10.102.0.85 false true
10.102.0.84 false true
10.102.0.86 false true
3.2 下载presto

下载presto-server-0.152.tar.gz包,下载地址: > https://prestodb.io/docs/current/installation/deployment.html
解压:

$ tar xzvf presto-server-0.152.tar.gz
$ ln -s presto-server-0.152  presto
$ cd presto
$ mkdir prestoData

Presto需要一个用于存储日志、本地元数据等的数据目录。建议在安装目录的外面创建一个数据目录。这样方便Presto进行升级。

3.3 配置Presto

3.3.0 目录结构
在安装目录中创建一个etc目录(mkdir etc),所有的配置文件包含在 presto/etc/ 目录下目录结构如下。
presto/etc/
├── catalog
│ ├── hive.properties
│ └── jmx.properties
├── config.properties
├── jvm.config
├── log.properties
└── node.properties

在这个etc目录中放入以下配置信息:
node.properties :    环境变量配置,每个节点特定配置
jvm.config :         Java虚拟机的命令行选项
log.properties:       允许你根据不同的日志结构设置不同的日志级别
config.properties :  Presto 服务配置
catalog目录 :        每个连接者配置(data sources)

3.3.1 Node Properties 配置
节点属性配置文件:etc/node.properties包含针对于每个节点的特定的配置信息。 一个节点就是在一台机器上安装的Presto实例。 这份配置文件一般情况下是在Presto第一次安装的时候,由部署系统创建的。 一个etc/node.properties配置文件至少包含如下配置信息:

node.environment=test
node.id=ffffffff-ffff-ffff-ffff-ffffffffff-01
node.data-dir=/opt/software/presto/prestoData

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

3.3.2 JVM 配置
JVM配置文件,etc/jvm.config,包含一系列在启动JVM的时候需要使用的命令行选项。

-server
-Xmx6G
-XX:+UseConcMarkSweepGC
-XX:+ExplicitGCInvokesConcurrent
-XX:+CMSClassUnloadingEnabled
-XX:+AggressiveOpts
-XX:+HeapDumpOnOutOfMemoryError
-XX:OnOutOfMemoryError=kill -9 %p

3.3 Config Properties 配置
Presto的配置文件:etc/config.properties 包含了Presto server的所有配置信息。 每个Presto server既是一个coordinator也是一个worker。但是在大型集群中,处于性能考虑,建议单独用一台机器作为 coordinator。

coordinator=true
    node-scheduler.include-coordinator=true
    http-server.http.port=9098
    discovery-server.enabled=true
    discovery.uri=http://10.102.0.29:9098
以下是最基本的worker配置:
coordinator=false
http-server.http.port=9098
discovery-server.enabled=true
discovery.uri=http://10.102.0.29:9098

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

但是如果你用一台机器进行测试,那么这一台机器将会即作为coordinator,也作为worker,配置文件将会如下所示:

coordinator=true 
node-scheduler.include-coordinator=true
http-server.http.port=9098 query.max-memory=5GB
query.max-memory-per-node=1GB discovery-server.enabled=true
discovery.uri=http://10.102.0.29:9098

3.3.4 log.properties 配置
日志配置文件:etc/log.properties。在这个配置文件中允许你根据不同的日志结构设置不同的日志级别。每个logger都有一个名字(通常是使用logger的类的全标示类名). Loggers通过名字中的“.“来表示层级和集成关系。 (像java里面的包). 如下面的log配置信息:

com.facebook.presto=INFO

日志级别分为:DEBUG, INFO, WARN and ERROR。

3.3.5 Catalog Properties 配置
Presto通过connectors访问数据。这些connectors挂载在catalogs上。connector可以提供一个catalog中所有的schema和表。 例如: Hive connector 将每个hive的database都映射成为一个schema, 所以如果hive connector挂载到了名为hive的catalog, 并且在hive的web有一张名为clicks的表, 那么在Presto中可以通过hive.web.clicks来访问这张表。
通过在etc/catalog目录下创建catalog属性文件来完成catalogs的注册。

a.创建etc/catalog/jmx.properties文件,文件中的内容如下,完成在jmxcatalog上挂载一个jmxconnector:
connector.name=jmx


b.创建etc/catalog/hive.properties文件,包含信息如下:
connector.name=hive-hadoop2
hive.metastore.uri=thrift://192.168.1.234:9083
hive.config.resources=/home/hadoop/software/jise/jise-server/conf/hdfs-site.xml/core-site.xml,/home/hadoop/software/jise/jise-server/conf/hdfs-site.xml/hdfs-site.xml
    hive.allow-drop-table=true
配置项解释:
hive.metastore.uri 内容对应 hive-site.xml 中添加的hive.metastore.uris配置:

<property>
    <name>hive.metastore.local</name>
    <value>false</value>
</property>

<property>
    <name>hive.metastore.uris</name>
    <value>thrift://192.168.1.234:9083</value>
</property>

hive.config.resources 对应hdfs 的 core-site.xml 和 hdfs-site.xml 文件

4.启动停止登录

4.1 启动

启动presto 前必须先启动 hive用如下命令启动:
$ bin/hive –service metastore &

运行 presto在安装目录的bin/launcher文件,就是启动脚本。 Presto可以使用如下命令作为一个后台进程启动:

$ presto/bin/launcher start

也可以在前台运行, 可查看具体的日志
$ presto/bin/launcher run

查看允许状态
$ presto/bin/launcher status

4.2 停止

停止服务进程命令
$ presto/bin/laucher stop

4.3 登录

使用 presto 命令行接口登录,Presto CLI为用户提供了一个用于查询的可交互终端窗口。CLI是一个可执行 JAR文件, 这也就意味着你可以像UNIX终端窗口一样来使用CLI。
下载 presto-cli-0.152-executable.jar 连接地址为
https://repo1.maven.org/maven2/com/facebook/presto/presto-cli/0.176/presto-cli-0.176-executable.jar

,重名名为 presto 放到presto/bin/ 目录下, 使用 chmod +x 命令设置可执行权限,然后执行:

$ ./presto –server 10.102.0.29:9098 –catalog hive –schema default
presto:default> show tables;

Table
------------
 cars
 hb_bvpost
 hb_bvpost2
 hb_bvuser
 hb_bvuser2
 mycars
 test
(7 rows)
Query 20170518_033102_00043_hj388, FINISHED, 2 nodes 
 Splits: 18 total, 18 done (100.00%) 
 0:00 [7 rows, 171B] [35 rows/s, 859B/s]presto:default> select * from system.runtime.nodes; # 查看当前集群各个节点状态 
 node_id | http_uri | node_version | coordinator | state 
 ——————————————+————————+————–+————-+——– 
 ffffffff-ffff-ffff-ffff-ffffffffffff-s82 | http://10.102.0.29:9098 | 0.152 | true | active 
 ffffffff-ffff-ffff-ffff-ffffffffffff-s83 | http://10.102.0.83:9098 | 0.152 | false | active 
 ffffffff-ffff-ffff-ffff-ffffffffffff-s85 | http://10.102.0.85:9098 | 0.152 | false | active 
 ffffffff-ffff-ffff-ffff-ffffffffffff-s84 | http://10.102.0.84:9098 | 0.152 | false | active 
 ffffffff-ffff-ffff-ffff-ffffffffffff-s86 | http://10.102.0.86:9098 | 0.152 | false | active 
 (5 rows)Query 20170518_033113_00044_hj388, FINISHED, 2 nodes 
 Splits: 17 total, 17 done (100.00%) 
 0:01 [5 rows, 370B] [8 rows/s, 645B/s]presto:default>


标签:node,Presto,0.152,ffff,hive,server,presto
From: https://blog.51cto.com/u_16152230/6431668

相关文章

  • 阿里云丁宇:云上开发成为主流,Serverless 定义新范式
    今天,阿里云峰会·粤港澳大湾区在广州开幕,阿里巴巴研究员、阿里云智能云原生应用平台总经理丁宇在论坛发言,他表示:Serverless引领云上开发新范式,通过丰富的原子化服务,全托管、高弹性、免运维的优势,以开箱即用的场景化能力,成本更优的按用付费模式,帮助企业跨越技术鸿沟,让创新触手可及......
  • SQL Server 补丁理解及安装 内附完整版下载地址及sp1/2/3补丁
    启动安装程序下载sqlserver2014,双击startup.exe进行安装 系统配置检查器 使用系统配置检查器,看系统是否符合安装sqlserver2014的所有要求 开始安装然后点击安装,全新sqlserver独立安装或向现有安装添加功能 安装规则然后就是使用默认的设置,点开详细信息,可以看到安......
  • 阿里云丁宇:云上开发成为主流,Serverless 定义新范式
    今天,阿里云峰会·粤港澳大湾区在广州开幕,阿里巴巴研究员、阿里云智能云原生应用平台总经理丁宇在论坛发言,他表示:Serverless引领云上开发新范式,通过丰富的原子化服务,全托管、高弹性、免运维的优势,以开箱即用的场景化能力,成本更优的按用付费模式,帮助企业跨越技术鸿沟,让创新触手可......
  • sqlserver2014在新建维护计划时提示代理XP组件已做为此服务器安全配置的一部分被关闭,
     在sqlserver配置管理器中打开sqlserver代理即可 ......
  • 【Web IDE】code-server搭建记录
    起因最近因为越来越多极其繁琐的专业课,而我的游戏本我实在是背不动了。。。所以想在云端为iPad搭建一个开发环境,一个是解放一下自己的书包,一个是让自己的服务器发挥点作用。。环境TencentCloudUbuntu20.04LTS1H2G+1M搭建安装docker一类的就不再赘述了,完成上述步骤后,直接安装cod......
  • sqlserver2014在新建维护计划时提示代理XP组件已做为此服务器安全配置的一部分被关闭,
    在sqlserver配置管理器中打开sqlserver代理即可 ......
  • Serverless: AI everywhere的下一块拼图
    摘要:本文介绍华为云函数工作流(FunctionGraph)的灵活、速度,如何让开发人员提升工程效率,缩短TTM等本文分享自华为云社区《华为云FunctionGraph函数工作流——Serverless“遇见”AI,释放AI生产力》,作者:华为云PaaS服务小智。华为云Serverless研发工程师朱安东在2023年A2M峰会上带来......
  • Serverless: AI everywhere的下一块拼图
    摘要:本文介绍华为云函数工作流(FunctionGraph)的灵活、速度,如何让开发人员提升工程效率,缩短TTM等本文分享自华为云社区《华为云FunctionGraph函数工作流——Serverless“遇见”AI,释放AI生产力》,作者:华为云PaaS服务小智。华为云Serverless研发工程师朱安东在2023年A2M峰会上带来了......
  • sqlServer用nacicat 导出表结构
    在我们写数据库设计文档时,我们可能得到一份特定表的表结构数据表格(如图),而Navicat并没有直接给我们提供这个功能,该怎么办呢?请看下面步骤1.打开Navicat,双击打开你要导出表结构的数据库(此时数据库名称变绿),点击“查询”——“新建查询”2、将以下SQL语句复制粘贴进查询编辑器,并修改数据......
  • 【Checkpoint】Command for log's checkpoint - SQLserver, Oracle, PostgreSQL
    文档引子最近,SQLserver环境中的SQLalwayson因事务爆满导致磁盘持续告警,通过这次事件,记载下SQLserverAG的事务日志处理的正确方式,同时也把Oracle以及PG的相关的checkpoint问题一并做个简单的总结,并且只从结果的角度给出过程,至于具体的理论,请移步官方文档查阅。SQLserver检......