@zhangyy
2020-09-27T14:03:06.000000Z
字数 2836
阅读 271
大数据运维专栏
一 : Presto 简介
二:CDH 6.3.2 与presto的集成
Presto是一个开源的分布式SQL查询引擎,适用于交互式分析查询,数据量支持GB到PB字节。
Presto的设计和编写完全是为了解决像Facebook这样规模的商业数据仓库的交互式分析和处理速度的问题。
Presto支持在线数据查询,包括Hive, Cassandra, 关系数据库以及专有数据存储。 一条Presto查询可以将多个数据源的数据进行合并,可以跨越整个组织进行分析。
Presto以分析师的需求作为目标,他们期望响应时间小于1秒到几分钟。 Presto终结了数据分析的两难选择,要么使用速度快的昂贵的商业方案,要么使用消耗大量硬件的慢速的“免费”方案。
硬件架构
大内存、万兆网络、高计算能力
软件架构
presto 查询引擎是一个Master-Slave的拓扑架构
下载prestop工具
wget https://repo1.maven.org/maven2/com/facebook/presto/presto-server/0.99/presto-server-0.99.tar.gz
在 CDH 的所有节点上都执行
tar -zxvf presto-server-0.99.tar.gz
mv presto-server-0.99 /opt/cloudera/parcels
cd /opt/cloudera/parcels/
ln -s presto-server-0.99 presto
在/opt/cloudera/parcels/presto/bin/launcher文件如下位置添加JAVA环境变量
vim /opt/cloudera/parcels/presto/bin/launcher
---
export JAVA_HOME=/usr/java/jdk1.8.0_181-cloudera
export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin
----
1.新建node.properties文件,内容如下:
mkdir /root/presto-etc
mkdir -p /data/disk1/
cd /root/presto-etc
vim etc/node.properties
----
node.environment=flyfishpresto
node.id=presto-test01
node.data-dir=/data/disk1/prestonode.environment=flyfishpresto
node.id=presto-test01
node.data-dir=/data/disk1/presto
---
配置Presto的JVM参数,创建jvm.config文件,内容如下:
vim jvm.config
---
-server
-Xmx10G
-XX:+UseConcMarkSweepGC
-XX:+ExplicitGCInvokesConcurrent
-XX:+CMSClassUnloadingEnabled
-XX:+AggressiveOpts
-XX:+HeapDumpOnOutOfMemoryError
-XX:OnOutOfMemoryError=kill -9 %p
-XX:ReservedCodeCacheSize=200M
-----
vim coordinator-config.properties
----
coordinator=true
node-scheduler.include-coordinator=false
http-server.http.port=9090
query.max-memory=4GB
query.max-memory-per-node=1GB
discovery-server.enabled=true
discovery.uri=http://192.168.11.37:9090
----
vim worker-config.properties
-----
coordinator=false
http-server.http.port=8080
query.max-memory=4GB
query.max-memory-per-node=1GB
discovery.uri=http://192.168.11.37:8080
----
vim log.properties
----
com.facebook.presto=INFO
-----
所有节点执行:
mkdir -p /opt/cloudera/parcels/presto/etc
scp node.properties root@192.168.11.38:/opt/cloudera/parcels/presto/etc/
scp node.properties root@192.168.11.40:/opt/cloudera/parcels/presto/etc/
准备master 节点的 配置文件
192.168.11.37 节点:
将coordinator-config.properties并充命名为config.properties
cp coordinator-config.properties /opt/cloudera/parcels/presto/etc/config.properties
将worker-config.properties 复制到work 节点 的 /opt/cloudera/parcels/presto/etc/ 下面
scp worker-config.properties root@192.168.11.38:/opt/cloudera/parcels/presto/etc/
scp worker-config.properties root@192.168.11.40:/opt/cloudera/parcels/presto/etc/
登录到 192.168.11.38 与 192.168.11.40 上面
cd /opt/cloudera/parcels/presto/etc/
mv worker-config.properties config.properties
完成presto 的配置
在Presto集群的所有节点执行如下命令启动Presto服务