Presto集群部署和配置

参考文档:1.https://blog.csdn.net/zzq900503/article/details/79403949 prosto部署与连接hive使用
                2. http://my.525.life/article?id=1510739741953 CDH目录结构
                    3. https://ilnba.iteye.com/blog/1711367    linux文件描述限制
 
环境准备
Presto 有以下几个基本要求: 
Linux 或者 Mac OS X 系统 
Java 8,64位

我的环境
操作系统:CentOS Linux release 7.3.1611 (Core)
Hadoop集群:CDH 5.15.2, Parcel
jdk版本:java version 1.8.0_111

Presto单节点安装配置

首先下载presto,本次我下载的最新的版0.218,  https://repo1.maven.org/maven2/com/facebook/presto/presto-server/,后来启动报错需要jdk1.85以上,所以换成0.195,
1 wget https://repo1.maven.org/maven2/com/facebook/presto/presto-server/0.195/presto-server-0.195.tar.gz 
2 tar zxvf presto-server-0.195.tar.gz 
3 mv presto-server-0.195 /opt/presto

配置Presto
在安装目录中创建一个etc的目录,在etc中配置一下配置信息:
JVM 配置:JVM的命令行选项
配置属性:Presto server的配置信息
Catalog属性:configuration forConnectors(数据源)的配置信息

Node Properties

vim etc/node.properties
#输入配置
node.environment=production
node.id=a001  #集群节点node.id不能相同
node.data-dir=/var/presto/data
JVM配置(Presto集群coordinator和worker的JVM配置是一致的)
vim  etc/jvm.config
#添加如下配置输入配置:
-server
-Xmx16G
-XX:+UseG1GC
-XX:G1HeapRegionSize=32M
-XX:+UseGCOverheadLimit
-XX:+ExplicitGCInvokesConcurrent
-XX:+HeapDumpOnOutOfMemoryError
-XX:+ExitOnOutOfMemoryError

Config Properties

vim etc/config.properties
#输入配置:
coordinator=true #是否作为coordinator,worker节点为false
node-scheduler.include-coordinator=false  #是否允许在coordinator上调度节点只负责调度时node-scheduler.include-coordinator设置为false,调度节点也作为worker时node-scheduler.include-coordinator设置为true
http-server.http.port=8080 #指定HTTP server 端口。Presto通过HTTP协议进行所有的内部和外部通信
query.max-memory=50GB
query.max-memory-per-node=1GB
query.max-total-memory-per-node=2GB
discovery-server.enabled=true          #Presto 通过Discovery 服务来找到集群中所有的节点
discovery.uri=http://cdh-1.digidite.com:8080  #coordinator的URL

日志级别
vim etc/log.properties
#输入配置:
com.facebook.presto=INFO

Catalog Properties
mkdir etc/catalog
vim  etc/catalog/hive.properties
#输入配置:
connector.name=hive-hadoop2
hive.metastore.uri=thrift://cdh-1:9083

启动运行Presto
后台启动: 
bin/launcher start
或者前台启动:
bin/launcher run
 (输出日志方便查看启动问题)
停止:
bin/launcher stop
 
查看进程:
jps
输出进程:
137442 PrestoServer
停止:
bin/launcher stop

启动完之后,日志将会写在/var/presto/data/var/log目录下:
launcher.log: 这个日志文件由launcher创建,并且server的stdout和stderr都被重定向到了这个日志文件中。 这份日志文件中只会有很少的信息,包括:在server日志系统初始化的时候产生的日志和JVM产生的诊断和测试信息。
server.log: 这个是Presto使用的主要日志文件。一般情况下,该文件中将会包括server初始化失败时产生的相关信息。这份文件会被自动轮转和压缩。
http-request.log: 这是HTTP请求的日志文件,包括server收到的每个HTTP请求信息,这份文件会被自动轮转和压缩。

连接hive测试验证
下载 presto-cli-0.100-executable.jar:Presto CLI为用户提供了一个用于查询的可交互终端窗口。
https://repo1.maven.org/maven2/com/facebook/presto/presto-cli/0.195/presto-cli-0.195-executable.jar
 
mv presto-cli-0.195-executable.jar /opt/presto/presto
使用presto连接hive:
./presto --server cdh-1:8080 --catalog hive --schema hivedemo_1
.....
presto:test> show schemas from hive;
....
presto:hivedemo_1> show tables from hive.hivedemo_1;
....
 
在hive中查一下hive default库中的表 ,hive自带了一个thrift的客户端———-beeline ,打开beeline ,使用命令
beeline
连接hiveserver2,使用命令
!connect jdbc:hive2://cdh-1:10000
输入当前linux用户名和密码后,正常连接后会出现0: jdbc:hive2://cdh-1:10000>
这时可以尝试操作数据库,使用命令:
show tables;
结果如下
 
 

Presto多节点安装配置

集群节点分配:
cdh-1 (10.215.43.1):coordinator调度节点
cdh-2 (10.215.43.2):worker节点
cdh-3 (10.215.43.3):worker节点

节点部署
将cdh-1部署配置好的打包传到worker节点
scp cdh-1:/opt/presto.zip /opt/

配置修改
node properties
vim etc/node.properties
内容如下:
node.environment=production
node.id=a002    #每个节点需要不同
node.data-dir=/var/presto/data
 

Config Properties
vim etc/config.properties
内容如下:
coordinator=false   #work节点需要填写false
node-scheduler.include-coordinator=true
http-server.http.port=8080
query.max-memory=50GB
query.max-memory-per-node=1GB
discovery-server.enabled=true
discovery.uri=http://cdh-1:8080
作为work时,coordinator配置应为false
discovery.uri与coordinator调度节点的ip对应。
调度节点只负责调度时node-scheduler.include-coordinator设置为false
调度节点也作为worker时node-scheduler.include-coordinator设置为true

启用与使用

启动方式与单点的一样,每台都启动起来即可使用。

管理

presto提供了Web的管理界面,可以查看多节点的情况。 
根据端口来访问,比如8080,则访问 

猜你喜欢

转载自www.cnblogs.com/silgogo/p/10682579.html