presto对接TDH5.2.4版本

Presto是什么?

Presto是一个开源的分布式SQL查询引擎,适用于交互式分析查询,数据量支持GB到PB字节。

Presto的设计和编写完全是为了解决像Facebook这样规模的商业数据仓库的交互式分析和处理速度的问题。

它可以做什么?

Presto支持在线数据查询,包括Hive, Cassandra, 关系数据库以及专有数据存储。 一条Presto查询可以将多个数据源的数据进行合并,可以跨越整个组织进行分析。

Presto以分析师的需求作为目标,他们期望响应时间小于1秒到几分钟。 Presto终结了数据分析的两难选择,要么使用速度快的昂贵的商业方案,要么使用消耗大量硬件的慢速的“免费”方案。

TDH中和presto一样的组件叫做inceptor,是星环科技的sql查询引擎

由于inceptor上层程序连接,时不时会掉线,针对这个问题,现在通过presto进行数据查询

以下给出presto的配置对接步骤:

需要的包如下:

jdk1.8.0_241

presto-server-0.173.tar.gz

presto-cli-0.161-executable.jar

1.各节点: 创建 presto 用户,设置密码。

useradd presto
passwd presto

mkdir -p /opt/presto/data
chown -R presto:presto /opt/presto/data 

 

2.修改用户资源(root 用户

各节点:修改用户可用资源配置。主要涉及: 用户最大可用的进程数、进程
能够打开文件的最大数目。
vi /etc/security/limits.conf

* soft noproc 10240
* hard noproc 10240
* soft nofile 10240
* hard nofile 10240


不同服务器的文件名有差异,本文以 90-nproc.conf 为例。
vi /etc/security/limits.d/90-nproc.conf
* soft nproc 10240
配置完成后,需重新登陆服务器查验。

su - presto
ulimit -u
ulimit -n 

 

3.准备程序

各节点: 上传 JDK Presto 程序包,并解压。
tar -vxf jdk-8u111-linux-x64.tar.gz -C /opt/presto
tar -vxf presto-server-0.173.tar.gz -C /opt/presto

4.配置环境变量


各节点: 配置 presto 用户的 Java 环境变量。
vi /home/presto/.bash_profile

export JAVA_HOME=/opt/presto/jdk1.8.0_111
export PATH=$PATH:$JAVA_HOME/bin

 


source /home/presto/.bash_profile
java -version
配置 Presto


5.配置 JVM
各节点: 新建 presto-server-0.173/etc 目录, 在该目录下新建、配置 jvm.conf
ig 文件。
mkdir /opt/presto/presto-server-0.173/etc
vi /opt/presto/presto-server-0.173/etc/jvm.config

-server
-Xmx32G
-XX:+UseG1GC
-XX:G1HeapRegionSize=32M
-XX:+UseGCOverheadLimit
-XX:+ExplicitGCInvokesConcurrent
-XX:+HeapDumpOnOutOfMemoryError
-XX:OnOutOfMemoryError=kill -9 %p
-DHADOOP_USER_NAME=hdfs


6.配置日志级别

各节点: 新建、 配置 log.propertis
vi /opt/presto/presto-server-0.173/etc/log.propertis

com.facebook.presto=INFO

 


7.配置节点属性
各节点: 新建、配置 node.properties(获取 node.id, 每个节点的 node.id 须不
一样)。
uuidgen
vi /opt/presto/presto-server-0.173/etc/node.properties

# presto 名称, 同一集群必须相同
node.environment=production

# presto 节点唯一标识, 执行命令 uuidgen 读取
node.id=ffffffff-ffff-ffff-ffff-ffffffffffff
# 日志目录、 计算临时存储目录, presto 用户有读写权限
node.data-dir=/opt/presto/data 

 

 
配置属性
各节点: 新建、配置 config.properties
vi /opt/presto/presto-server-0.173/etc/config.properties
coordinator 节点

coordinator=true
# 是否复用为 worker 节点, false 为否。默认为 false
node-scheduler.include-coordinator=false
# 本节点 presto 服务端口号
http-server.http.port=8888
# query.max-memory-per-node * worker 节点的个数
query.max-memory=54GB
query.max-memory-per-node=18GB
discovery-server.enabled=true
# 本节点、 端口号
discovery.uri=http://coordinator 节点 ip:8888

 


worker 节点

coordinator=false
# 本节点 presto 服务端口号
http-server.http.port=8888
# query.max-memory-per-node * worker 节点的个数
query.max-memory=54GB
query.max-memory-per-node=18GB
# Presto 中 coordinator 所在节点,以及其端口号
discovery.uri=http://coordinator 节点 ip:8888 

 


8.配置 hive 连接信息
各节点: 创建 catalog 子目录, 在该目录新建、 配置 hive.properties
mkdir /opt/presto/presto-server-0.173/etc/catalog
vi /opt/presto/presto-server-0.173/etc/catalog/hive.properties

  1 connector.name=hive-hadoop2
  2 hive.metastore.uri=thrift://198.28.1.82:9083
  3 hive.config.resources=/opt/presto/core-site.xml,/opt/presto/hdfs-site.xml
  4 
  5 hive.metastore.authentication.type=KERBEROS
  6 hive.metastore.service.principal=hive/ht-28-tdh82@TDH
  7 hive.metastore.client.principal=hive@TDH
  8 hive.metastore.client.keytab=/opt/presto/inceptor.keytab
  9 
 10 hive.hdfs.authentication.type=KERBEROS
 11 #hive.hdfs.impersonation.enable=true
 12 hive.hdfs.presto.principal= hive@TDH
 13 hive.hdfs.presto.keytab=/opt/presto/inceptor.keytab

注意hive.metastore.service.principal=hive/ht-28-tdh82@TDH 一定要加上hosname,这是与开源hive不同的地方

注意#hive.hdfs.impersonation.enable=true 需要注释这行,否则会有错误:

 

 以上就是presto的配置流程

各节点:启动 Presto 服务。
/opt/presto/presto-server-0.173/bin/launcher start

通过 Presto 客户端,访问 Hive 数据进行验证。
上传客户端,授权。 示例如下,其中 default 为数据库名称。
chmod +x presto-cli-0.161-executable.jar
./presto-cli-0.161-executable.jar --server coordinator 节点 ip:8888 --catalog hive  --schema default
执行该语句后, 可在 Presto Shell 中执行:
presto> show tables;

posted @ 2020-04-10 09:59  Tim&Blog  阅读(786)  评论(1编辑  收藏  举报