Presto是一个分布式SQL查询引擎,用于对各种数据源进行交互式分析查询。它最初由Facebook开发,旨在提供快速、低延迟的查询性能。Presto可以连接到多个数据源,包括HDFS、Hive、Cassandra、MySQL、PostgreSQL等。
下载Presto
从Presto的GitHub页面下载最新版本:https://prestosql.io/download.html
wget https://repo1.maven.org/maven2/io/prestosql/presto-server/348/presto-server-348.tar.gz
解压Presto
tar -xzf presto-server-348.tar.gz
mv presto-server-348 /usr/local/presto
安装Presto CLI
Presto CLI用于执行SQL查询。
wget https://repo1.maven.org/maven2/io/prestosql/presto-cli/348/presto-cli-348-executable.jar
mv presto-cli-348-executable.jar /usr/local/presto/presto-cli
chmod +x /usr/local/presto/presto-cli
创建配置目录
mkdir -p /usr/local/presto/etc
配置节点属性
编辑/usr/local/presto/etc/node.properties
文件:
node.environment=production
node.id=ffffffff-ffff-ffff-ffff-ffffffffffff
node.data-dir=/usr/local/presto/data
配置JVM属性
编辑/usr/local/presto/etc/jvm.config
文件:
-server
-Xmx16G
-XX:-UseBiasedLocking
-XX:+UseG1GC
-XX:G1HeapRegionSize=32M
-XX:+UseGCOverheadLimit
-XX:+ExplicitGCInvokesConcurrent
-XX:+HeapDumpOnOutOfMemoryError
-XX:+ExitOnOutOfMemoryError
配置节点角色
编辑/usr/local/presto/etc/config.properties
文件:
coordinator=true
node-scheduler.include-coordinator=true
http-server.http.port=8080
query.max-memory=5GB
query.max-memory-per-node=1GB
discovery-server.enabled=true
discovery.uri=http://localhost:8080
配置日志属性
编辑/usr/local/presto/etc/log.properties
文件:
com.facebook.presto=INFO
配置连接器
创建Hive连接器配置文件/usr/local/presto/etc/catalog/hive.properties
:
connector.name=hive-hadoop2
hive.metastore.uri=thrift://localhost:9083
启动Presto服务器
/usr/local/presto/bin/launcher start
检查Presto服务器状态
/usr/local/presto/bin/launcher status
访问Presto UI
打开浏览器,访问http://localhost:8080
,进入Presto的Web UI。
启动Presto CLI
/usr/local/presto/presto-cli --server localhost:8080 --catalog hive --schema default
执行SQL查询
在Presto CLI中执行SQL查询,例如:
SELECT * FROM my_table LIMIT 10;
创建MySQL连接器配置文件
编辑/usr/local/presto/etc/catalog/mysql.properties
:
connector.name=mysql
connection-url=jdbc:mysql://localhost:3306
connection-user=root
connection-password=your_password
重启Presto服务器
/usr/local/presto/bin/launcher restart
在Presto CLI中查询MySQL数据
SELECT * FROM mysql.information_schema.tables LIMIT 10;
修改config.properties
文件中的内存配置
query.max-memory=10GB
query.max-memory-per-node=2GB
设置并行度
task.max-worker-threads=16
安装Apache Ranger
安装并配置Apache Ranger,用于集中管理Presto的访问控制。
配置Ranger插件
在Presto配置目录中,编辑Ranger插件配置文件,启用权限管理。
通过掌握Presto的基本概念、安装与配置方法,以及如何使用Presto进行交互式查询,你可以构建一个高效的分布式查询平台。Presto的多数据源支持和高性能查询能力,使其成为大数据分析的理想工具。