目录

Presto

Presto 参考文献 https://cloud.tencent.com/developer/article/1158360 https://medium.com/@ilkkaturunen/integrating-presto-with-hue-61702b244839 https://tech.meituan.com/presto.html http://dyingbleed.com/presto-4/ 美团 https://tech.meituan.com/2014/06/16/presto.html

1 概述

Presto是由Facebook开源,完全基于内存的并行计算以及分布式SQL交互式查询引擎。它可以共享Hive的元数据,然后直接访问HDFS中的数据,同时支持Hadoop中常见的文件格式比如文本,ORC和Parquet。同Impala一样,作为Hadoop之上的SQL交互式查询引擎,通常比Hive要快5-10倍。另外,Presto不仅可以访问HDFS,还可以访问RDBMS中的数据,以及其他数据源比如CASSANDRA。

Presto是一个运行在多台服务器上的分布式系统。 完整安装包括一个coordinator和多个worker。 由客户端提交查询,从Presto命令行CLI提交到coordinator。 coordinator进行解析,分析并执行查询计划,然后分发处理队列到worker。

2 Presto Hive 【CDH5】

2.1.1 download

wget https://repo1.maven.org/maven2/com/facebook/presto/presto-server/0.205/presto-server-0.205.tar.gz
IP 角色
10.10.10.1 coordinator
10.10.10.2 worker
10.10.10.3 worker
10.10.10.4 worker
10.10.10.5 worker
10.10.10.6 worker

2.1.2 install JAVA

忽略不写

2.1.3 配置文件

#需要新增一下配置worker-config.properties && coordinator-config.properties 部署在对应的角色服务器上,并重命名为config.properties

[root@ presto]# tree -L 2 etc/
etc/
├── catalog
│   ├── hive.properties
│   └── jmx.properties
├── coordinator-config.properties
├── jvm.config
├── log.properties
├── node.properties
└── worker-config.properties

1 directory, 7 files
[root@ etc]# cat config.properties
coordinator=true
node-scheduler.include-coordinator=false
http-server.http.port=8080
query.max-memory=4GB
query.max-memory-per-node=1GB
discovery-server.enabled=true
discovery.uri=http://xxx:8080
[root@etc]# cat jvm.config
-server
-Xmx8G
-XX:+UseConcMarkSweepGC
-XX:+ExplicitGCInvokesConcurrent
-XX:+CMSClassUnloadingEnabled
-XX:+AggressiveOpts
-XX:+HeapDumpOnOutOfMemoryError
-XX:OnOutOfMemoryError=kill -9 %p
-XX:ReservedCodeCacheSize=150M
[root@etc]# cat log.properties
com.facebook.presto=INFO
[root@ etc]# cat node.properties
node.environment=t_presto
node.id=$hostname
node.data-dir=/data/datum/presto
[root@etc]# cat worker-config.properties
coordinator=false
http-server.http.port=8080
query.max-memory=4GB
query.max-memory-per-node=1GB
discovery.uri=http://xxxx:8080
[root@ etc]# cat config.properties
coordinator=true
node-scheduler.include-coordinator=false
http-server.http.port=8080
query.max-memory=4GB
query.max-memory-per-node=1GB
discovery-server.enabled=true
discovery.uri=http://xxxxx:8080
[root@ etc]# cat catalog/hive.properties
connector.name=hive-hadoop2
hive.metastore.uri=thrift://xxxx:9083
hive.config.resources=/etc/hadoop/conf/core-site.xml,/etc/hadoop/conf/hdfs-site.xml
[root@ etc]# cat catalog/jmx.properties
connector.name=jmx

2.1.3 start

presto/bin/launcher run/start

2.1.4 client

wget https://repo1.maven.org/maven2/com/facebook/presto/presto-cli/0.205/presto-cli-0.205-executable.jar
mv presto-cli-0.205-executable.jar presto-cli&& chmod 755 presto-cli


[root@ presto-etc]# ./presto-cli --server localhost:8080 --catalog=hive --schema=default

访问web UI

2.1.5 s3

connector.name=hive-hadoop2
hive.metastore.uri=
hive.config.resources=/etc/hadoop/conf/core-site.xml,/etc/hadoop/conf/hdfs-site.xml
hive.s3.connect-timeout=2m
hive.s3.max-backoff-time=10m
hive.s3.pin-client-to-current-region=false
hive.s3.aws-access-key=xxxxx
hive.s3.aws-secret-key=xxxxxxxx
hive.s3.endpoint=s3.cn-north-1.amazonaws.com.cn

2.1.6 Hue presto hive 【未通过】

yum install https://download.postgresql.org/pub/repos/yum/9.4/redhat/rhel-7-x86_64/pgdg-redhat94-9.4-3.noarch.rpm
yum install postgresql94-server postgresql94-contrib postgresql94-devel postgresql94-plpython

3 presto安全认证

3.1.1 Kerberos

  • Hive配置文件新增以下内容../etc/catalog/hive.properties
hive.metastore.authentication.type=KERBEROS
hive.metastore.service.principal=hive/xxx@xxxx.COM
hive.metastore.client.principal=presto@xxxx.COM
hive.metastore.client.keytab=/etc/presto/presto.keytab


hive.hdfs.authentication.type=KERBEROS
hive.hdfs.impersonation.enabled=false
hive.hdfs.presto.principal=presto@xxxx.COM
hive.hdfs.presto.keytab=/etc/presto/presto.keytab
hive.fs.cache.max-size=10
hive.max-partitions-per-scan=100
  • core-site中添加以下

然后可以查询成功

4 性能测试

4.1 presto hive

-w1157