华为云对象存储OBSPresto对接OBS_云淘科技
概述
Presto分为prestoSql(现更名为Trino)和PrestoDB两大分支或是发行版。
Presto on OBS仅支持prestoSql/Trino发行版,下述对接步骤以prestoSql-333版本为例(从prestoSql-332版本开始Presto服务端必须使用JDK 11)。
本章节中的Presto指prestoSql/Trino发行版。
前提条件
已安装Hadoop,具体请参见Hadoop对接OBS。
已安装Hive,具体请参见Hive对接OBS。
安装presto server
版本:prestoSQL-333
下载Presto客户端和服务端。
下载客户端
下载服务端
下载hadoop-huaweicloud插件:下载地址。
执行以下命令,解压Presto服务端。
tar –zxvf presto-server-333.tar.gz
在presto根目录/plugin/hive-hadoop2下放入如下两个jar包。
hadoop-huaweicloud-${hadoop.version}-hw-${version}.jar
Apache commons-lang-xxx.jar
可从maven中央仓库下载或从hadoop目录中拷贝。
配置presto
在安装目录里创建etc目录。这目录会有以下配置(自己创建):
节点配置文件:每个节点的环境配置
JVM配置文件:Java虚拟机的命令行选项
Server配置文件(Config Properties):Presto server的配置
Catalog配置文件:配置presto的各种Connector(数据源)
日志配置文件:配置presto日志
节点配置文件
节点属性文件etc/node.properties,包含每个节点的配置。一个节点是一个Presto实例。这文件一般是在Presto第一次安装时创建的。以下是最小配置:
node.environment=production node.id=ffffffff-ffff-ffff-ffff-ffffffffffff node.data-dir=/var/presto/data
解释:
node.environment:环境名字,Presto集群中的节点的环境名字都必须是一样的。
node.id:唯一标识,每个节点的标识都必须是唯一的。就算重启或升级Presto都必须还保持原来的标识。
node.data-dir:数据目录,Presto用它来保存log和其他数据
示例:
node.environment=presto_cluster
node.id=bigdata00
node.data-dir=/home/modules/presto-server-0.215/data #data需要自己手动创建
JVM配置文件
JVM配置文件etc/jvm.config,包含启动Java虚拟机时的命令行选项。格式是每一行是一个命令行选项。此文件数据是由shell解析,所以选项中包含空格或特殊字符会被忽略。
以下是参考配置:
-server -Xmx16G -XX:-UseBiasedLocking -XX:+UseG1GC -XX:G1HeapRegionSize=32M -XX:+ExplicitGCInvokesConcurrent -XX:+ExitOnOutOfMemoryError -XX:+UseGCOverheadLimit -XX:+HeapDumpOnOutOfMemoryError -XX:ReservedCodeCacheSize=512M -Djdk.attach.allowAttachSelf=true -Djdk.nio.maxCachedBufferSize=2000000
备注:以上参数都是官网参数,实际环境需要调整
Server配置文件
配置属性文件etc/config.properties,包含Presto server的配置。Presto server可以同时为coordinator和worker,但一个大集群里最好就是只指定一台机器为coordinator。
coordinator节点的配置文件
coordinator=true node-scheduler.include-coordinator=true http-server.http.port=5050 discovery-server.enabled=true discovery.uri=http://192.168.XX.XX:5050 query.max-memory=20GB query.max-memory-per-node=1GB query.max-total-memory-per-node=2GB
worker节点的配置文件
coordinator=false http-server.http.port=5050 discovery.uri=http://192.168.XX.XX:5050 query.max-memory=20GB query.max-memory-per-node=1GB query.max-total-memory-per-node=2GB
解释:
coordinator:是否运行该实例为coordinator(接受client的查询和管理查询执行)。
node-scheduler.include-coordinator:coordinator是否也作为work。对于大型集群来说,在coordinator里做worker的工作会影响查询性能。
http-server.http.port:指定HTTP端口。Presto使用HTTP来与外部和内部进行交流。
query.max-memory:查询能用到的最大总内存。
query.max-memory-per-node:查询能用到的最大单节点内存。
discovery-server.enabled:Presto使用Discovery服务去找到集群中的所有节点。每个Presto实例在启动时都会在Discovery服务里注册。这样可以简化部署,不需要额外的服务,Presto的coordinator内置一个Discovery服务。
discovery.uri:Discovery服务的URI。将example.net:8080替换为coordinator的host和端口。这个URI不能以斜杠结尾,这个错误需特别注意,不然会报404错误。
另外还有以下属性:
jmx.rmiregistry.port:指定JMX RMI的注册。JMX client可以连接此端口
jmx.rmiserver.port:指定JMX RMI的服务器。可通过JMX监听。
Catalog配置文件(重点)
hive connector配置如下:
在etc目录下创建catalog目录
创建一个hive connector的配置文件:hive.properties
# hive.properties #连接名 connector.name=hive-hadoop2 #配置hive metastore连接 hive.metastore.uri=thrift://192.168.XX.XX:9083 #指定hadoop的配置文件,注意core-site.xml需要按照https://github.com/huaweicloud/obsa-hdfs/tree/master/release/doc配置 hive.config.resources=/home/modules/hadoop-2.8.3/etc/hadoop/core-site.xml,/home/modules/hadoop-2.8.3/etc/hadoop/hdfs-site.xml,/home/modules/hadoop-2.8.3/etc/hadoop/mapred-site.xml #给删表权限 hive.allow-drop-table=true
日志配置文件
创建文件log.properties
写入内容:com.facebook.presto=INFO
备注:日志级别有四种:DEBUG、INFO、WARN和ERROR。
启动presto
步骤如下:
启动hive metastore:hive –service metastore &
启动presto server:bin/launcher start (如何关闭presto服务:bin/launcher stop)
启动presto client:
重命名presto-cli-333-executable.jar为presto,放在bin目录下,然后赋予执行权限:chmod +x presto
启动client:./presto –server XX.XX.XX.XX:5050 –catalog hive –schema default
Presto查询OBS
创建hive表
1 2 3 4 5 6 7 8 9 |
hive> CREATE TABLE sample01(id int,name string,address string) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS TEXTFILE LOCATION 'obs://obs-east-bkt001/sample01'; insert into sample01 values(1,'xiaoming','cd'); insert into sample01 values(2,'daming','sh'); |
presto查询hive表
./presto –server XX.XX.XX.XX:5050 –catalog hive –schema default
1 2 |
presto:default> select * from sample01; |
父主题: 对接大数据组件
同意关联代理商云淘科技,购买华为云产品更优惠(QQ 78315851)
内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家