Presto 安装配置

1.Presto简介:

1.presto是一个开源的分布式SQL查询引擎,适用于交互式分析查询,数据量支持GB到PB字节。
2.presto的设计和编写完全是为了解决像Facebook这样规模的商业数据仓库的交互式分析和处理速度的问题。
3.主要用来处理秒级查询场景。

下入在官网:
https://prestodb.io/overview.html

Presto 安装配置_第1张图片
presto简介.png

2.Presto 架构

Presto 安装配置_第2张图片
presto架构图.png

详细的架构图


Presto 安装配置_第3张图片
详细架构图.png

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. 创建存储的文件夹:
6. 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

  1. 编辑vi log.properties
com.facebook.presto=INFO

11.编辑文件:vi node.properties

node.environment=production
node.id=master01
node.data-dir=/home/presto/presto-datadir
  1. 在/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/ [email protected]:/home/presto/
2.发送slave01机器  scp -r /home/presto/presto-server-0.245/ [email protected]:/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/

Presto 安装配置_第4张图片
presto服务端.png

4. 启动presto client 客户端

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
  错误如下:
Presto 安装配置_第5张图片
presto 报错.png

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
重启服务就可以了


你可能感兴趣的:(Presto 安装配置)