zoukankan      html  css  js  c++  java
  • OLAP引擎:基于Presto组件进行跨数据源分析

    一、Presto概述

    1、Presto简介

    Presto是一个开源的分布式SQL查询引擎,适用于交互式分析查询,数据量支持GB到PB字节,Presto虽然具备解析SQL的能力,但它并不属于标准的数据库范畴。

    Presto支持在线数据查询,包括Hive,关系数据库以及专有数据存储。一条Presto查询可以将多个数据源的数据进行合并,可以跨越整个组织进行分析,Presto主要用来处理响应时间小于1秒到几分钟的场景。

    2、Presto架构

    Presto查询引擎是基于Master-Slave的架构,运行在多台服务器上的分布式系统,由一个Coordinator节点和多个Worker节点组成,Coordinator负责解析SQL语句,生成执行计划,分发执行任务给Worker节点执行,Worker节点负责实际执行查询任务。

    Coordinator节点

    Coordinator服务器是用来解析查询语句,执行计划分析和管理Presto的Worker结点,跟踪每个Work的活动情况并协调查询语句的执行。Coordinator为每个查询建立模型,模型包含多个Stage,每个Stage再转为Task分发到不同的Worker上执行,协调通信基于REST-API,Presto安装必须有一个Coordinator节点。

    Worker节点

    Worker负责执行查询任务和处理数据,从Connector获取数据,Worker间会交换中间数据。Coordinator从Worker获取结果并返回最终结果给Client端,当Worker启动时会广播自己并发现Coordinator,告知Coordinator可用状态,协调通信基于REST-API,Presto通常会安装多个Worker节点。

    数据源适配

    Presto可以适配多种不同的数据源,可以和数据源连接和交互,Presto是通过表的完全限定名处理table,Catalog对应类数据源,Schema对应数据库,Table对应数据表。

    Presto中处理的最小数据单元是一个Page对象,一个Page对象包含多个Block对象,每个Block对象是一个字节数组,存储一个字段的若干行,多个Block横切的一行是真实的一行数据。

    二、Presto安装

    1、安装包管理

    [root@hop01 presto]# pwd
    /opt/presto
    [root@hop01 presto]# ll
    presto-cli-0.196-executable.jar
    presto-server-0.189.tar.gz
    [root@hop01 presto]# tar -zxvf presto-server-0.189.tar.gz
    

    2、配置管理

    在presto安装目录中创建etc文件夹,并添加以下配置信息:

    /opt/presto/presto-server-0.189/etc
    

    节点属性

    每个节点的特定环境配置:etc/node.properties;

    [root@hop01 etc]# vim node.properties
    node.environment=production
    node.id=presto01
    node.data-dir=/opt/presto/data
    

    配置内容:环境名称,唯一ID,数据目录。

    JVM 配置

    JVM的命令行选项,用于启动Java虚拟机的命令行选项列表:etc/jvm.config。

    [root@hop01 etc]# vim jvm.config
    -server
    -Xmx16G
    -XX:+UseG1GC
    -XX:G1HeapRegionSize=32M
    -XX:+UseGCOverheadLimit
    -XX:+ExplicitGCInvokesConcurrent
    -XX:+HeapDumpOnOutOfMemoryError
    -XX:+ExitOnOutOfMemoryError
    

    配置属性

    Presto服务器的配置,每个Presto服务器都可以充当协调器和工作器,如果单独使用一台机器来执行协调工作可以在更大的集群上提供最佳性能,这里PrestoServer既当一个coordinator也是一个worker节点:etc/config.properties。

    [root@hop01 etc]# vim config.properties
    coordinator=true
    node-scheduler.include-coordinator=true
    http-server.http.port=8083
    query.max-memory=3GB
    query.max-memory-per-node=1GB
    discovery-server.enabled=true
    discovery.uri=http://hop01:8083
    

    这里coordinator=true表示当前Presto实例充当协调器角色。

    日志配置

    [root@hop01 etc]# vim log.properties
    com.facebook.presto=INFO
    

    Catalog属性

    /opt/presto/presto-server-0.189/etc/catalog
    

    配置hive适配:

    [root@hop01 catalog]# vim hive.properties
    connector.name=hive-hadoop2
    hive.metastore.uri=thrift://192.168.37.133:9083
    

    配置MySQL适配:

    [root@hop01 catalog]# vim mysql.properties
    connector.name=mysql
    connection-url=jdbc:mysql://192.168.37.133:3306
    connection-user=root
    connection-password=123456
    

    3、运行服务

    启动命令

    [root@hop01 /]# /opt/presto/presto-server-0.189/bin/launcher run
    

    启动日志

    这样presto就启动成功了。

    三、客户端安装

    1、Jar包管理

    [root@hop01 presto-cli]# pwd
    /opt/presto/presto-cli
    [root@hop01 presto-cli]# ll
    presto-cli-0.196-executable.jar
    [root@hop01 presto-cli]# mv presto-cli-0.196-executable.jar presto-cli.jar
    

    2、连接MySQL

    java -jar presto-cli.jar --server ip:9000 --catalog mysql --schema sq_export
    

    四、源代码地址

    GitHub·地址
    https://github.com/cicadasmile/big-data-parent
    GitEE·地址
    https://gitee.com/cicadasmile/big-data-parent
    

    阅读标签

    Java基础】【设计模式】【结构与算法】【Linux系统】【数据库

    分布式架构】【微服务】【大数据组件】【SpringBoot进阶】【Spring&Boot基础

    数据分析】【技术导图】【 职场

  • 相关阅读:
    今晚直播 | 揭秘携程应用路由生态系统
    OpenStack虚拟云桌面在携程呼叫中心的应用
    从设计到开发,硅谷技术专家教你做“声控”APP
    深度学习系列 | 诺亚面向语音语义的深度学习研究进展
    知识图谱中的推理技术及其在高考机器人中的应用
    用户在线广告点击行为预测的深度学习模型
    知识库上的问答系统:实体、文本及系统观点
    深度学习在搜狗无线搜索广告中的应用
    元旦三天假期,实现一个电商退单管理系统【四】-手机客户端实现
    元旦三天假期,实现一个电商退单管理系统【三】
  • 原文地址:https://www.cnblogs.com/cicada-smile/p/14673212.html
Copyright © 2011-2022 走看看