概述
1.Presto简介:
1.presto是一个开源的分布式SQL查询引擎,适用于交互式分析查询,数据量支持GB到PB字节。
2.presto的设计和编写完全是为了解决像Facebook这样规模的商业数据仓库的交互式分析和处理速度的问题。
3.主要用来处理秒级查询场景。
下入在官网:
https://prestodb.io/overview.html
2.Presto 架构
详细的架构图
3.presto 安装部署
部署规划:
名称 | 服务器ip | 角色 |
---|---|---|
master01 | 192.168.1.151 | Coordinator |
master02 | 192.168.1.152 | presto Worker |
slave01 | 192.168.1.153 | presto Worker |
3.1 需要的文件:
presto-server-0.245.tar.gz 下载地址:;
https://repo1.maven.org/maven2/com/facebook/presto/presto-server/
presto-cli-0.223.1.jar
下载地址:https://repo1.maven.org/maven2/com/facebook/presto/presto-cli/
3.2 下载后上传服务器:
1.presto-server-0.245.tar.gz presto-cli-0.223.1.jar
2.解压: tar -zxvf presto-server-0.245.tar.gz
3.在 cd /home/presto/presto-server-0.245 中创建etc 文件夹 mkdir etc
4. 在/home/presto/presto-server-0.245/etc 下面创建文件:
5. config.properties jvm.config log.properties node.properties
6. 创建存储的文件夹:
7. mkdir -p /home/presto/presto-datadir
7.在etc 下面创建三个文件 :
config.properties jvm.config log.properties node.properties
8.编辑文件vim jvm.config
-server
-Xmx16G
-XX:+UseG1GC
-XX:G1HeapRegionSize=32M
-XX:+UseGCOverheadLimit
-XX:+ExplicitGCInvokesConcurrent
-XX:+HeapDumpOnOutOfMemoryError
-XX:+ExitOnOutOfMemoryError
-DHADOOP_USER_NAME=hdfs
9. 编辑文件vim config.properties
coordinator=true
node-scheduler.include-coordinator=false
http-server.http.port=10008
query.max-memory=50GB
query.max-memory-per-node=1GB
query.max-total-memory-per-node=2GB
discovery-server.enabled=true
discovery.uri=http://192.168.1.151:10058
10.编辑vi log.properties
com.facebook.presto=INFO
11.编辑文件:vi node.properties
node.environment=production
node.id=master01
node.data-dir=/home/presto/presto-datadir
12. 在/home/presto/presto-server-0.245/etc 下面创建catalog 文件夹 并且创建文件
创建 hive.properties 并且编辑
[root@master01 etc]# pwd
/home/presto/presto-server-0.245/etc
[root@master01 etc]# cd catalog/
[root@master01 catalog]# ll
总用量 8
-rw-r--r-- 1 root root 181 1月 28 00:45 hive.properties
-rw-r--r-- 1 root root 20 1月 28 00:45 jmx.properties
[root@master01 catalog]# vi hive.properties
connector.name=hive-hadoop2
hive.metastore.uri=thrift://master02.pxx.com:9083
hive.config.resources=/etc/hadoop/3.1.4.0-315/0/core-site.xml,/etc/hadoop/3.1.4.0-315/0/hdfs-site.xml
12.2 在/home/presto/presto-server-0.245/etc/目录下面创建 catalog/ 创建文件 jmx.properties
[root@master01 etc]# pwd
/home/presto/presto-server-0.245/etc
[root@master01 etc]# cd catalog/
[root@master01 catalog]# ll
总用量 8
-rw-r--r-- 1 root root 181 1月 28 00:45 hive.properties
-rw-r--r-- 1 root root 20 1月 28 00:45 jmx.properties
[root@master01 catalog]# vi jmx.properties
connector.name=jmx
3.3 将该文件分发到其他机器
1.发送master02机器 scp -r /home/presto/presto-server-0.245/ root@master02.com:/home/presto/
2.发送slave01机器 scp -r /home/presto/presto-server-0.245/ root@slave01.com:/home/presto/
3.4 需要 修改的文
3.4.1master02 机器需要修改的第一个文件:
master02 机器需要修改的第一个文件:
在这个路径下面:/home/presto/presto-server-0.245/etc
[root@master02 etc]# ls
catalog config.properties jvm.config log.properties node.properties
编辑文件 vim node.properties 主要配置node.id 配置不一样
node.environment=production
node.id=master02
node.data-dir=/home/presto/presto-datadir
3.4.2 master02 机器需要修改的第二个文件:
路径:/home/presto/presto-server-0.245/etc/
编辑文件
[root@master02 etc]# vi config.properties
coordinator=false # 注释掉表示不是coordinator
#node-scheduler.include-coordinator=false # 注释掉表示不是coordinator
http-server.http.port=10008
query.max-memory=50GB
query.max-memory-per-node=1GB
query.max-total-memory-per-node=2GB
#discovery-server.enabled=true # 注释掉
discovery.uri=http://192.168.1.151:10058
3.4.3 Slave01 机器需要修改的第一个文件:提示主要修改id 不能重复
路径: /home/presto/presto-server-0.245/etc
[root@master02 etc]# vi node.properties
node.environment=production
node.id=master03
node.data-dir=/home/presto/presto-datadir
3.44 Slave01 机器需要修改的第二个文件
路径:/home/presto/presto-server-0.245/etc
编辑文件
[root@slave01 etc]# vi config.properties
coordinator=false # 注释掉表示不是coordinator
#node-scheduler.include-coordinator=false # 注释掉表示不是coordinator
http-server.http.port=10008
query.max-memory=50GB
query.max-memory-per-node=1GB
query.max-total-memory-per-node=2GB
#discovery-server.enabled=true # 注释掉
discovery.uri=http://192.168.1.151:10058
3.5 首先要启动hive 的Hive Metastore 服务:
nohup bin/hive --service metastore >/dev/null 2>&1 &
3.6 首先要启动master01,master02,slave01 机器上的presto service 服务
1.前台启动
[root@master01 presto]$ bin/launcher run
[root@master02 presto]$ bin/launcher run
[root@slave01 presto]$ bin/launcher run
2.后台启动
[root@master01 presto]$ bin/launcher start
[root@master02 presto]$ bin/launcher start
[root@slave01 presto]$ bin/launcher start
3. 日志位置:/home/presto/presto-datadir/var/log
4. tail -f /home/presto/presto-datadir/var/log/server.log
访问服务端:http://192.168.1.151:10058/ui/
4. 启动presto client 客户端
查询命令:./prestocli --server 192.168.1.151:10058 --catalog hive --schema db_wudl;
4.1 下载客户端 --> presto-cli-0.223.1.jar
1.地址:https://repo1.maven.org/maven2/com/facebook/presto/presto-cli/
2.修改名称
[root@master01 opt]# mv presto-cli-0.223.1.jar prestocli
3.赋值权限
[root@master01 opt]# chmod +x prestocli
4.启动:prestocli
[root@master01 opt]# ./prestocli --server 192.168.1.151:10058 --catalog hive --schema db_wudl;
presto:db_wudl> show tables;
可以看到你建的表表示成功:
5.遇到的问题:
启动客户端的时候 会出现乱码情况,原因是客户端的版本太高,可以换成低版本的presto-cli
错误如下:
6. 还会遇到一个错误:
查询的时候会遇到lzo 压缩问题:
错入如下:
Query 20210106_113208_00005_s5r85 failed: Unable to create input format com.hadoop.mapred.DeprecatedLzoTextInputFormat
这时候需要将 hadoop-lzo-0.4.20.jar 加入到presto service 中
hadoop-lzo-0.4.20.jar 下载
路径:/home/presto/presto-server-0.245/plugin/hive-hadoop2
重启服务就可以了
7.presto 的web 安装:
简介:
yanagishima 是presto的一个客户端web工具,目前支持相对较好,部署一下。
7.1 编译过程略
7.2 主要的配置文件
注意:
注意一定要在这个目录下新建一个空的hive_setup_query_your-hive文件
解压:
unzip yanagishima-18.0.zip
vi /opt/software/yanagishima-18.0/conf/yanagishima.properties
# yanagishima web port
jetty.port=38080
# 30 minutes. If presto query exceeds this time, yanagishima cancel the query.
presto.query.max-run-time-seconds=1800
# 1GB. If presto query result file size exceeds this value, yanagishima cancel the query.
presto.max-result-file-byte-size=1073741824
presto.datasources=pxx-presto
auth.your-presto=false
# presto coordinator url
presto.coordinator.server.pxx-presto=http://master01.pxx.com:10008
# almost same as presto coordinator url. If you use reverse proxy, specify it
presto.redirect.server.pxx-presto=http://master01.pxx.com:10008
# presto catalog name
catalog.pxx-presto=hive
# presto schema name
schema.pxx-presto=default
# if query result exceeds this limit, to show rest of result is skipped
select.limit=500
# http header name for audit log
audit.http.header.name=some.auth.header
use.audit.http.header.name=false
# limit to convert from tsv to values query
to.values.query.limit=500
# authorization feature
check.datasource=false
hive.jdbc.url.pxx-hive=jdbc:hive2://master02.pxx.com:10000/default;auth=noSasl
hive.jdbc.user.pxx-hive=hive
hive.jdbc.password.pxx-hive=hive
hive.query.max-run-time-seconds=3600
hive.query.max-run-time-seconds.your-hive=3600
resource.manager.url.pxx-hive=http://master01.pxx.com:8088
sql.query.engines=presto,hive
hive.datasources=your-hive
hive.disallowed.keywords.your-hive=insert,drop
# 1GB. If hive query result file size exceeds this value, yanagishima cancel the query.
hive.max-result-file-byte-size=1073741824
# 注意一定要在这个目录下新建一个空的hive_setup_query_your-hive文件
hive.setup.query.path.your-hive=/opt/software/yanagishima-18.0/conf/hive_setup_query_pxx-hive
cors.enabled=false
7.3 启动停止
启动
nohup bin/yanagishima-start.sh >y.log 2>&1 &
停止:
/opt/software/yanagishima-18.0/bin/yanagishima-shutdown.sh
7.4 web 访问页面:
第一次加载比较慢需要等一会
http://master01.com:38080/
最后
以上就是明理钢笔为你收集整理的Presto 安装配置的全部内容,希望文章能够帮你解决Presto 安装配置所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复