安装和部署Presto
1. 安装环境
- 操作系统:CentOs6.5
- Hadoop 集群:CDH5.3
- JDK 版本:jdk1.8.0_31
为了测试简单,我是将 Presto 的 coordinator 和 worker 都部署在 cdh1
节点上,并且该节点上部署了 hive-metastore 服务。下面的安装和部署过程参考自 http://prestodb.io/docs/current/installation.html。
2. 安装 Presto
下载 Presto 的压缩包,目前最新版本为 presto-server-0.90,然后解压为 presto-server-0.90 。
wget https://repo1.maven.org/maven2/com/facebook/presto/presto-server/0.90/presto-server-0.90.tar.gz
tar zxvf presto-server-0.90.tar.gz
解压后的目录结构为:
[$ presto-server-0.90]# tree -L 2
.
├── bin
│ ├── launcher
│ ├── launcher.properties
│ ├── launcher.py
│ └── procname
├── lib
├── NOTICE
├── plugin
│ ├── cassandra
│ ├── example-http
│ ├── hive-cdh4
│ ├── hive-cdh5
│ ├── hive-hadoop1
│ ├── hive-hadoop2
│ ├── kafka
│ ├── ml
│ ├── mysql
│ ├── postgresql
│ ├── raptor
│ └── tpch
└── README.txt
从 plugin 目录可以看到所有 Presto 支持的插件有哪些,这里我主要使用 hive-cdh5 插件,也成为连接器。
3. 配置 Presto
在 presto-server-0.90 目录创建 etc 目录,并创建以下文件:
-
node.properties
:每个节点的环境配置 -
jvm.config
:jvm 参数 -
config.properties
:配置 Presto Server 参数 -
log.properties
:配置日志等级 -
Catalog Properties
:Catalog 的配置
etc/node.properties
示例配置如下:
node.environment=production
node.id=ffffffff-ffff-ffff-ffff-ffffffffffff
node.data-dir=/var/presto/data
参数说明:
-
node.environment
:环境名称。一个集群节点中的所有节点的名称应该保持一致。 -
node.id
:节点唯一标识的名称。 -
node.data-dir
:数据和日志存放路径。
etc/jvm.config
示例配置如下:
-server
-Xmx16G
-XX:+UseConcMarkSweepGC
-XX:+ExplicitGCInvokesConcurrent
-XX:+CMSClassUnloadingEnabled
-XX:+AggressiveOpts
-XX:+HeapDumpOnOutOfMemoryError
-XX:OnOutOfMemoryError=kill -9 %p
-XX:ReservedCodeCacheSize=150M
etc/config.properties
包含 Presto Server 相关的配置,每一个 Presto Server 可以通时作为 coordinator 和 worker 使用。你可以将他们配置在一个极点上,但是,在一个大的集群上建议分开配置以提高性能。
coordinator 的最小配置:
coordinator=true
node-scheduler.include-coordinator=false
http-server.http.port=8080
task.max-memory=1GB
discovery-server.enabled=true
discovery.uri=http://cdh1:8080
worker 的最小配置:
coordinator=false
http-server.http.port=8080
task.max-memory=1GB
discovery.uri=http://cdh1:8080
可选的,作为测试,你可以在一个节点上同时配置两者:
coordinator=true
node-scheduler.include-coordinator=true
http-server.http.port=8080
task.max-memory=1GB
discovery-server.enabled=true
discovery.uri=http://cdh1:8080
参数说明:
-
coordinator
:Presto 实例是否以 coordinator 对外提供服务 -
node-scheduler.include-coordinator
:是否允许在 coordinator 上进行调度任务 -
http-server.http.port
:HTTP 服务的端口 -
task.max-memory=1GB
:每一个任务(对应一个节点上的一个查询计划)所能使用的最大内存 -
discovery-server.enabled
:是否使用 Discovery service 发现集群中的每一个节点。 -
discovery.uri
:Discovery server 的 url
etc/log.properties
可以设置某一个 java 包的日志等级:
com.facebook.presto=INFO
关于 Catalog 的配置,首先需要创建 etc/catalog 目录,然后根据你想使用的连接器来创建对应的配置文件,比如,你想使用 jmx 连接器,则创建 jmx.properties:
connector.name=jmx
如果你想使用 hive 的连接器,则创建 hive.properties:
connector.name=hive-cdh5
hive.metastore.uri=thrift://cdh1:9083 #修改为 hive-metastore 服务所在的主机名称,这里我是安装在 cdh1节点
hive.config.resources=/etc/hadoop/conf/core-site.xml,/etc/hadoop/conf/hdfs-site.xml
更多关于连接器的说明,请参考 Connectors 。
4. 运行 Presto
你可以使用下面命令后台启动:
bin/launcher start
也可以前台启动,观察输出日志:
bin/launcher run
另外,你也可以通过下面命令停止:
bin/launcher stop
更多命令,你可以通过 --help
参数来查看。
[root@cdh1 presto-server-0.90]# bin/launcher --help
Usage: launcher [options] command
Commands: run, start, stop, restart, kill, status
Options:
-h, --help show this help message and exit
-v, --verbose Run verbosely
--launcher-config=FILE
Defaults to INSTALL_PATH/bin/launcher.properties
--node-config=FILE Defaults to INSTALL_PATH/etc/node.properties
--jvm-config=FILE Defaults to INSTALL_PATH/etc/jvm.config
--config=FILE Defaults to INSTALL_PATH/etc/config.properties
--log-levels-file=FILE
Defaults to INSTALL_PATH/etc/log.properties
--data-dir=DIR Defaults to INSTALL_PATH
--pid-file=FILE Defaults to DATA_DIR/var/run/launcher.pid
--launcher-log-file=FILE
Defaults to DATA_DIR/var/log/launcher.log (only in daemon mode)
--server-log-file=FILE
Defaults to DATA_DIR/var/log/server.log (only in daemon mode)
-D NAME=VALUE Set a Java system property
启动之后,你可以观察 /var/presto/data/ 目录:
[root@cdh1 /var/presto/data/]# tree
.
├── etc -> /opt/presto-server-0.90/etc
├── plugin -> /opt/presto-server-0.90/plugin
└── var
├── log
│ ├── http-request.log
│ ├── launcher.log
│ └── server.log
└── run
└── launcher.pid
5 directories, 4 files
在 /var/presto/data/var/log 目录可以查看日志:
-
launcher.log
:启动日志 -
server.log
:Presto Server 输出日志 -
http-request.log
:HTTP 请求日志
5. 测试 Presto CLI
下载 presto-cli-0.90-executable.jar 并将其重命名为 presto-cli(你也可以重命名为 presto),然后添加执行权限。
运行下面命令进行测试:
[root@cdh1 bin]# ./presto-cli --server localhost:8080 --catalog hive --schema default
presto:default> show tables;
Table
-------
(0 rows)
Query 20150126_062137_00012_qgwvy, FINISHED, 1 node
Splits: 2 total, 2 done (100.00%)
0:00 [0 rows, 0B] [0 rows/s, 0B/s]
在 执行 show tables 命令之前,你可以查看 http://cdh1:8080/ 页面:
然后在执行该命令之后再观察页面变化。单击第一行记录,会跳转到明细页面:
可以运行 --help
命令查看更多参数,例如你可以在命令行直接运行下面命令:
./presto-cli --server localhost:8080 --catalog hive --schema default --execute "show tables;"
默认情况下,Presto 的查询结果是使用 less
程序分页输出的,你可以通过修改环境变量 PRESTO_PAGER
的值将其改为其他命令,如 more
,或者将其置为空以禁止分页输出。
6. 测试 jdbc
使用 jdbc 连接 Presto,需要下载 jdbc 驱动 presto-jdbc-0.90 并将其加到你的应用程序的 classpath 中。
支持以下几种 JDBC URL 格式:
jdbc:presto://host:port
jdbc:presto://host:port/catalog
jdbc:presto://host:port/catalog/schema
连接 hive 数据库中 sales 库,示例如下:
jdbc:presto://cdh1:8080/hive/sales
7. 总结
本文主要记录 Presto 的安装部署过程,并使用 hive-cdh5 连接器进行简单测试。下一步,需要基于一些生产数据做一些功能测试以及和 impala 做一些对比测试。
相关推荐
Presto on YARN 安装部署指南 Presto on YARN 是 Presto 的分布式实现,能够在 Hadoop 生态系统中运行。...通过本指南,可以成功安装和部署 Presto on YARN,並且了解 Presto on YARN 的配置和调度策略。
本篇文章将详细介绍如何部署Presto并将其连接到PostgreSQL数据库,同时也会提及配置文件的设置和官方文档的参考。 首先,部署Presto涉及到以下几个步骤: 1. **获取Presto源码或二进制分发版**:你可以从Presto的...
安装和部署Presto Server 0.223时,你需要解压文件,根据`etc/config.properties`配置你的协调器和工作节点,配置数据源连接,然后启动服务。在生产环境中,通常还需要调整JVM参数、设置合理的资源限制、配置日志...
将Presto集成到Ambari中,可以实现对Presto服务的自动化部署、管理和监控,极大地提高运维效率。 #### 二、Presto集成到Ambari的步骤详解 ##### 1. 下载集成包 首先,需要从GitHub上下载Presto集成到Ambari的...
在现代大数据处理领域,Apache Flink、Hudi和Presto是三款重要的开源工具,它们各自承担着不同的职责,但又能完美地协同工作,构建出高效、实时的数据处理和分析流水线。本文将详细阐述这三者之间的协同机制以及它们...
本文详细介绍了如何将Presto最新版集成到Ambari中,包括下载集成包、安装Presto Server和CLI、配置服务等关键步骤。通过这些步骤,用户可以顺利地在Ambari环境中部署和管理Presto,进而利用其强大的查询能力处理复杂...
它在自动伸缩组中部署协调器和工作人员。 产品特点 使用自动扩展生命周期管理,可以正常关闭工作人员。 在该工作者上完成所有查询之前,Presto工作者将不会关闭。 高度可用的协调器节点。 根据presto的内存和CPU...
总的来说,"Ambari集成presto.rar"这个资源是为了简化和自动化Presto在Hadoop集群中的部署和管理,使得大数据分析团队能更高效地利用Presto进行大规模数据查询和分析。正确集成和配置Presto,对于提升大数据处理能力...
Apache Ranger 是一个强大的安全框架,主要用于管理大数据生态系统中的访问控制和策略管理。它支持多种数据存储和服务,...通过下载这个预编译的插件包,用户可以快速地在自己的环境中部署Ranger,提升Presto的安全性。
12. 在部署Presto节点时,必须安装Kerberos客户端。这是因为在Presto中启用Kerberos认证后,为了保证服务的安全性,客户端和服务端都必须能够支持并正确处理Kerberos认证流程。 13. 在Presto中进行参数优化是一个...
最后,`部署.txt`文件可能包含了部署到生产环境的注意事项和最佳实践,例如确保所有依赖项已正确安装,安全地存储数据库凭据,以及在多线程环境中正确管理和关闭数据库连接等。 总结来说,配置和使用Presto的ODBC...
在部署Presto服务器时,你需要先解压这个tar归档文件,然后按照官方文档的指导进行配置。配置主要包括设置配置文件`config.properties`(定义协调节点和worker节点)、`jvm.config`(JVM参数设置)和`node....
2. 快速部署:Presto 容器化后,可以快速部署 Presto 集群,只需要在 k8s 的管理平台上,点击页面,填入集群名称,几分钟内就可以拉起一个标准化的 Presto 集群。 3. 安全可靠:Presto 容器化后,可以提供更高的安全...
然而,在实际部署过程中可能会遇到各种问题,比如尽管已经成功安装了ODBC驱动,但Tableau Server仍然无法识别该驱动的情况。 #### 二、问题描述与分析 根据提供的信息,“安装ODBC驱动后,Server还是未能识别驱动”...
1. Presto的基本概念:了解Presto的架构、工作原理和安装部署方法。 2. Oracle数据库知识:熟悉Oracle的数据库设计、SQL语法以及管理工具。 3. Java编程:因为Presto是用Java编写的,所以理解Java基础和相关开发工具...
在实际应用中,"Presto-Oracle-master" 可能是一个包含插件源码和构建文件的版本仓库,用户可以通过编译源码来生成可部署的Presto插件。在部署和使用过程中,开发者需要了解Presto的扩展机制,以及Oracle数据库的...
这款插件允许开发者顺利地执行`clean install`命令,将项目构建并安装到本地仓库,从而简化了Presto的开发和部署流程。 在开源社区中,Maven是广泛使用的Java项目管理和集成工具,它通过管理项目的构建、报告和文档...
Presto 采用Java 8作为开发语言,具有良好的可扩展性和互操作性。 1.1 关键字解析 - Facebook:Presto最初由Facebook开源,用于处理其内部大数据查询需求。 - OLAP:在线分析处理,用于支持复杂的分析查询,通常...
这些步骤对于实际部署和运行Presto至关重要,确保了系统能够在生产环境中稳定运行。 Presto的查询优化是其性能的关键。书中会介绍如何利用Presto的优化器来生成高效的执行计划,包括列剪枝、连接重排序、物化视图等...
2. **安装与配置**:在部署`presto-server-0.196`之前,你需要配置环境变量,如设置`PRESTO_HOME`,并修改配置文件`etc/config.properties`,设定数据源、协调节点和工作节点的相关参数。 3. **数据源连接**:...