Presto 下载安装部署

2024-04-24 14:38
文章标签 部署 下载安装 presto

本文主要是介绍Presto 下载安装部署,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.1 Presto 是什么

        Presto(或 PrestoDB)是一种开源的分布式 SQL 查询引擎,设计之初用于对任何规模的数据进行快速分析查询。支持关系型数据【Mysql、PostgreSQL等】及非关系型数据库【Hadoop分布式文件系统(HDFS)、HBase、MongoDB等】。Presto的一大优点是:Presto 设计采用了存储抽象化思想,构建可插入的连接器,可在数据的存储位置查询数据,无需将数据移动到独立的分析系统。且所有的查询执行处理都在内存中进行,大多数结果在几秒内即可返回。

1.2 Presto 工作原理

        Presto 是在 Hadoop 上运行的分布式系统,使用与经典大规模并行处理 (MPP) 数据库管理系统相似的架构。它有一个协调器节点(coordinate),与多个工作线程节点(worker)同步工作。用户将其 SQL 查询提交给协调器,由其使用自定义查询和执行引擎进行解析、计划并将分布式查询计划安排到工作线程节点之间。它设计用于支持标准 ANSI SQL 语义,包括复杂查询、聚合、联接、左/右外联接、子查询、开窗函数、不重复计数和近似百分位数。

1.3 Presto 架构图

source :Presto 安装配置 - 简书 (jianshu.com)

2.1 Presto 下载路径

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/

 2.2 本次安装在MobaX 2-120虚拟机上

(1)把安装包移到该虚拟机中并解压。

<MobaX 中可以把压缩包直接拉到左侧文件栏中;或者你用的是FinalShell 可以使用 “ rz -be ” 指令打开要文件夹,选择要上传的压缩包 >

[root@2-120 ~ ] cd /home/deploy

[root@2-120 deploy ] mkdir presto                 // 把所有presto放在这个文件夹内,目前应包括presto-server-0.245.tar.gz  、presto-cli-0.223.1.jar

[root@2-120 presto ] tar -zxvf presto-server-0.245.tar.gz -C ./

[root@2-120 presto ] tar -zxvf presto-cli-0.223.1.jar -C ./

解压完presto--cli之后,更名、加权限 ,即可使用了

更名
[root@2-120 opt]# mv  presto-cli-0.223.1.jar   presto-cli2
加权限
[root@2-120 opt]# chmod +x presto-cli2
启动:presto-cli2
[root@2-120 opt]# ./presto-cli2 --server 填你服务器地址,我的是120:8000 --catalog hive --schema default
presto:default>     // 这就通过cli客户端进来了

(2)在安装目录中创建一个etc目录, 在这个etc目录中放入以下配置文件:

整体目录结构为:
├── home
        ├── deploy
                ├── presto
                        ├── presto-cli2
                        ├── presto-datadir
                        ├── presto-server-0.254
                        ├── presto-server-0.254.tar.gz
                        ├── presto-server-0.254
                                 ├── bin     
                                 ├── lib
                                 ├── NOTICE
                                 ├── plugin
                                 ├── README.txt
                                 ├── etc
                                         ├── config.properties
                                         ├── core-site.xml
                                         ├── jvm.config
                                         ├── log.properties
                                         ├── node.properties
                                         ├── catalog   
                                                 ├── hive.properties
                                                 ├── jmx.properties

  1. config.properties :Presto 服务配置
  2. node.properties :环境变量配置,每个节点特定配置
  3. jvm.config :Java虚拟机的命令行选项
  4. log.properties: 允许你根据不同的日志结构设置不同的日志级别
  5. catalog目录 :每个连接者配置(data sources)   

(3-1)配置文件 config.properties  的内容:

coordinator=true
node-scheduler.include-coordinator=false
http-server.http.port=8000
query.max-memory=50GB
query.max-memory-per-node=8GB
query.max-total-memory-per-node=8GB
discovery-server.enabled=true
discovery.uri=http://IP:8000                // 8000这个端口号,在你当前虚拟机 / 服务器没有占用就行。至于设成什么可以自定义。

注意:若想查找欲设端口号是否被占用,在Linux 环境下可使用 “ lsof -i:8000 ”  来查端口号8000有无没当前服务器使用。

(3-2)配置文件 core-site.xml 的内容:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!--
            Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License. See accompanying LICENSE file.
-->

<!-- Put site-specific property overrides in this file. -->

<configuration>
  <!-- 指定hdfs的nameservice为ns -->
  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://ns</value>
  </property>

  <!--指定zookeeper地址-->
  <property>
        <name>ha.zookeeper.quorum</name>
        <value>填你复制后的sink服务器地址,我的是124:22</value>                        // ZK的ip:port,根据你服务器集群上的情况去更改。
  </property>
</configuration>

(3-3)配置文件  jvm.config 的内容:

-Xmx16G
-XX:+UseG1GC
-XX:G1HeapRegionSize=32M
-XX:+UseGCOverheadLimit
-XX:+ExplicitGCInvokesConcurrent
-XX:+HeapDumpOnOutOfMemoryError
-XX:+ExitOnOutOfMemoryError

(3-4)配置文件  log.properties 的内容:

com.facebook.presto.hive=DEBUG
org.apache=DEBUG

(3-5)配置文件 node.properties 的内容:        // presto-datadir  是放presto 产生的数据文件的。

node.environment=production
node.id=1001
node.data-dir=/home/deploy/presto/presto-datadir        

(3-6)配置文件 /etc/catalog/hive.properties 的内容:

connector.name=hive-hadoop2
hive.metastore.uri=thrift://2-120:9083                //2-120 是我当前服务器的名称,你也可以用全ip。172.16.2.120:9083 这样写也是可以的。
// core-site.xml   &&   hdfs-site.xml &&   hive-site.xml  --- 是hadoop和hive 的xml 文件,找到你服务器上hadoop和hive中交这个名字的xml文件,带着地址填到下面的就ok的啦hive.config.resources=/home/deploy/hadoop-2.9.2/etc/hadoop/core-site.xml,/home/deploy/hadoop-2.9.2/etc/hadoop/hdfs-site.xml,/home/deploy/hive2.3.8/conf/hive-site.xml   
hive.metastore-cache-ttl=0s
#hive.metastore-refresh-intervals=1s
hive.allow-drop-table=true
hive.parquet.use-column-names=true

(3-7)配置文件 /etc/catalog/jmx.properties 的内容:

connector.name=jmx

(4-1) 将该文件分发到其他机器

1.发送 2-124 机器    scp -r /home/deploy/presto/presto-server-0.245/ root@填你复制后的sink服务器地址,我的是124:/home/deploy/presto/
2.发送 2-123 机器  scp -r /home//deploypresto/presto-server-0.245/ root@填你复制后的sink服务器地址,我的是123:/home/deploy/presto/

(4-2-1) 在 2-124 机器需要修改的第一个文件:node.properties  

我的是在124上,你根据你复制的情况来看。

node.environment=production
node.id=master02                        // 主要配置node.id 配置不一样
node.data-dir=/home/presto/presto-datadir

(4-2-2) 在 2-124 机器需要修改的第一个文件:config.properties 

coordinator=false                                                    // 注释掉表示不是coordinator
#node-scheduler.include-coordinator=false            // 注释掉表示不是coordinator
http-server.http.port=8000
query.max-memory=50GB
query.max-memory-per-node=1GB
query.max-total-memory-per-node=2GB
#discovery-server.enabled=true                  // 注释掉
discovery.uri=http://填你主服务器ip,我的就是120:8000

(4-3-1) 在 2-123 机器需要修改的第一个文件:提示主要修改id 不能重复

我的是在123上,你根据你复制的情况来看。

路径: /home/deploy/presto/presto-server-0.245/etc
[root@2-123 etc]# vi node.properties 
node.environment=production
node.id=master03
node.data-dir=/home/presto/presto-datadir

(4-3-2) 在 2-123 机器需要修改的第二个文件

coordinator=false                                                    // 注释掉表示不是coordinator
#node-scheduler.include-coordinator=false            // 注释掉表示不是coordinator
http-server.http.port=8000
query.max-memory=50GB
query.max-memory-per-node=1GB
query.max-total-memory-per-node=2GB
#discovery-server.enabled=true                  // 注释掉
discovery.uri=http://填你主服务器ip,我的就是120:8000

(5-1)首先要启动 master01,slave01,slave02 机器上的presto service 服务

1.后台启动
[root@2-120 presto]$ bin/launcher run
[root@2-124 presto]$ bin/launcher run
[root@2-123 presto]$ bin/launcher run
2.前台启动
[root@2-120 presto]$ bin/launcher start
[root@2-124 presto]$ bin/launcher start
[root@2-123 presto]$ bin/launcher start
3. 日志位置:/home/deploy/presto/presto-datadir/var/log
4. tail -f  /home/deploy/presto/presto-datadir/var/log/server.log

把120、123、124 的都启动之后,就能在coordinate上操作使用了。这是我出现的结果

用到的些命令

// 查看端口号是否占用    lsof -i:8000
// 给 Presto 加权限  
chmod +x /presto/presto.jar  
//presto 启动命令
./presto-cli2 --server 我服务器ip:8000 --catalog hive --schema default
//退出presto
quit


参考文档:

Presto安装与配置_zyj8170的专栏-CSDN博客_presto配置

Presto 安装配置 - 简书 (jianshu.com)

这篇关于Presto 下载安装部署的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/932037

相关文章

python管理工具之conda安装部署及使用详解

《python管理工具之conda安装部署及使用详解》这篇文章详细介绍了如何安装和使用conda来管理Python环境,它涵盖了从安装部署、镜像源配置到具体的conda使用方法,包括创建、激活、安装包... 目录pytpshheraerUhon管理工具:conda部署+使用一、安装部署1、 下载2、 安装3

k8s部署MongDB全过程

《k8s部署MongDB全过程》文章介绍了如何在Kubernetes集群中部署MongoDB,包括环境准备、创建Secret、创建服务和Deployment,并通过Robo3T工具测试连接... 目录一、环境准备1.1 环境说明1.2 创建 namespace1.3 创建mongdb账号/密码二、创建Sec

Java中的Opencv简介与开发环境部署方法

《Java中的Opencv简介与开发环境部署方法》OpenCV是一个开源的计算机视觉和图像处理库,提供了丰富的图像处理算法和工具,它支持多种图像处理和计算机视觉算法,可以用于物体识别与跟踪、图像分割与... 目录1.Opencv简介Opencv的应用2.Java使用OpenCV进行图像操作opencv安装j

将Python应用部署到生产环境的小技巧分享

《将Python应用部署到生产环境的小技巧分享》文章主要讲述了在将Python应用程序部署到生产环境之前,需要进行的准备工作和最佳实践,包括心态调整、代码审查、测试覆盖率提升、配置文件优化、日志记录完... 目录部署前夜:从开发到生产的心理准备与检查清单环境搭建:打造稳固的应用运行平台自动化流水线:让部署像

LinuxMint怎么安装? Linux Mint22下载安装图文教程

《LinuxMint怎么安装?LinuxMint22下载安装图文教程》LinuxMint22发布以后,有很多新功能,很多朋友想要下载并安装,该怎么操作呢?下面我们就来看看详细安装指南... linux Mint 是一款基于 Ubuntu 的流行发行版,凭借其现代、精致、易于使用的特性,深受小伙伴们所喜爱。对

Python项目打包部署到服务器的实现

《Python项目打包部署到服务器的实现》本文主要介绍了PyCharm和Ubuntu服务器部署Python项目,包括打包、上传、安装和设置自启动服务的步骤,具有一定的参考价值,感兴趣的可以了解一下... 目录一、准备工作二、项目打包三、部署到服务器四、设置服务自启动一、准备工作开发环境:本文以PyChar

centos7基于keepalived+nginx部署k8s1.26.0高可用集群

《centos7基于keepalived+nginx部署k8s1.26.0高可用集群》Kubernetes是一个开源的容器编排平台,用于自动化地部署、扩展和管理容器化应用程序,在生产环境中,为了确保集... 目录一、初始化(所有节点都执行)二、安装containerd(所有节点都执行)三、安装docker-

在Ubuntu上部署SpringBoot应用的操作步骤

《在Ubuntu上部署SpringBoot应用的操作步骤》随着云计算和容器化技术的普及,Linux服务器已成为部署Web应用程序的主流平台之一,Java作为一种跨平台的编程语言,具有广泛的应用场景,本... 目录一、部署准备二、安装 Java 环境1. 安装 JDK2. 验证 Java 安装三、安装 mys

Jenkins中自动化部署Spring Boot项目的全过程

《Jenkins中自动化部署SpringBoot项目的全过程》:本文主要介绍如何使用Jenkins从Git仓库拉取SpringBoot项目并进行自动化部署,通过配置Jenkins任务,实现项目的... 目录准备工作启动 Jenkins配置 Jenkins创建及配置任务源码管理构建触发器构建构建后操作构建任务

若依部署Nginx和Tomcat全过程

《若依部署Nginx和Tomcat全过程》文章总结了两种部署方法:Nginx部署和Tomcat部署,Nginx部署包括打包、将dist文件拉到指定目录、配置nginx.conf等步骤,Tomcat部署... 目录Nginx部署后端部署Tomcat部署出现问题:点击刷新404总结Nginx部署第一步:打包