• CentOS部署集群版Presto


    前置条件
    安装到hadoop客户端

    1. 集群规划

    ip地址服务
    172.24.12.30coordinator,workor
    172.24.12.30workor
    172.24.12.30workor

    2、配置基础环境(presto需要java环境)(所有节点执行)

    java软件包 链接:https://pan.baidu.com/s/1Utcsz56jnWfGDLxTvdQPTw?pwd=j6rg
    提取码:j6rg

    [root@endemo-5 data1]# ll /opt/java
    lrwxrwxrwx 1 root root 12 Apr 11 20:29 /opt/java -> jdk1.8.0_131
    [root@endemo-5 data1]# cat /etc/profile.d/env_path.sh 
    export JAVA_HOME=/opt/java
    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$CLASSPATH
    export PATH=$JAVA_HOME/bin:$PATH
    export LANG=en_US.UTF-8
    [root@endemo-5 data1]# java -version
    java version "1.8.0_131"
    Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
    Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    3、上传并解压 (所有节点执行)

    presto官方下载地址
    百度云盘我安装的presto软件包 链接:https://pan.baidu.com/s/1DeUi1jL7QKB39yVT0ETa9Q?pwd=801r
    提取码:801r

    [root@endemo-5 data1]# ll /data1/presto-server-0.188.tar.gz 
    -rw-r--r-- 1 root hadoop 509296962 Jul 18 11:47 /data1/presto-server-0.188.tar.gz
    
    • 1
    • 2

    4、安装 (所有节点执行)

    1、创建配置目录(所有节点执行)

    tar xf presto-server-0.188.tar.gz
    cd presto-server-0.188
    mkdir etc
    [root@endemo-5 presto-server-0.188]# tree etc/
    etc/
    ├── catalog
    │   ├── hive.properties
    │   └── jmx.properties
    ├── config.properties
    ├── jvm.config
    ├── log.properties
    └── node.properties
    # 配置目录中包含四个配置文件和一个目录分别为node.properties、jvm.properties、config.properties、log.properties、catalog,作用分别是:
    # Node Properties:特定于每个节点的环境配置
    # JVM Config: Java虚拟机的命令行选项
    # Config Properties: Presto服务器的配置
    # Log Properties: 允许设置命名记录器层次结构的最小日志级别
    # Catalog Properties: 连接器(数据源)的配置
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    2、特定于每个节点的环境配置 (所有节点执行,修改node.id配置,每台不一样)

    node.environment=mediaforce #环境环境的名称。集群中的所有Presto节点必须具有相同的环境名称
    node.id=endemo-5 #id此Presto安装的唯一标识符。
    node.data-dir=/data1/presto/prestoData #数据目录的位置

    [root@endemo-5 presto-server-0.188]# cat etc/node.properties 
    node.environment=mediaforce  
    node.id=endemo-5    
    node.data-dir=/data1/presto/prestoData 
    [root@endemo-5 presto-server-0.188]# mkdir -p /data1/presto/prestoData # 创建一个data目录
    
    • 1
    • 2
    • 3
    • 4
    • 5

    3、Java虚拟机的命令行选项(所有节点执行)

    [root@endemo-5 presto-server-0.188]# cat etc/jvm.config 
    -server
    -Xmx16G
    -XX:+UseG1GC
    -XX:G1HeapRegionSize=32M
    -XX:+UseGCOverheadLimit
    -XX:+ExplicitGCInvokesConcurrent
    -XX:+HeapDumpOnOutOfMemoryError
    -XX:+ExitOnOutOfMemoryError
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    4、Presto服务器的配置(所有节点执行,数据节点修改coordinator)

    如果是Coordinator节点:注意 discovery.uri是指Coordinator节点的域名或者IP

    [root@endemo-5 presto-server-0.188]# cat etc/config.properties 
    coordinator=true
    node-scheduler.include-coordinator=true
    http-server.http.port=9098
    query.max-memory=20GB
    query.max-memory-per-node=1GB
    discovery-server.enabled=true
    discovery.uri=http://172.24.12.30:9098    #coordinator的host和端口
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    如果是worker节点:

    coordinator=false 
    node-scheduler.include-coordinator=true
    http-server.http.port=9098
    query.max-memory=20GB
    query.max-memory-per-node=1GB
    discovery-server.enabled=true
    discovery.uri=http://172.24.12.30:9098    #coordinator的host和端口
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    参数解释:

    coordinator: 是否运行该实例为coordinator(接受client的查询和管理查询执行)。
    node-scheduler.include-coordinator:coordinator是否也作为work。对于大型集群来说,在coordinator里做worker的工作会影响查询性能。
    http-server.http.port:指定HTTP端口。Presto使用HTTP来与外部和内部进行交流。
    query.max-memory: 查询能用到的最大总内存
    query.max-memory-per-node: 查询能用到的最大单结点内存
    discovery-server.enabled: Presto使用Discovery服务去找到集群中的所有结点。每个Presto实例在启动时都会在Discovery服务里注册。这样可以简化部署, 不需要额外的服务,Presto的coordinator内置一个Discovery服务。也是使用HTTP端口。
    discovery.uri: Discovery服务的URI。将example.net:8080替换为coordinator的host和端口。这个URI不能以斜杠结尾,这个错误需特别注意,不然会报404错误。

    另外还有以下属性:
    jmx.rmiregistry.port: 指定JMX RMI的注册。JMX client可以连接此端口
    jmx.rmiserver.port: 指定JXM RMI的服务器。可通过JMX监听。

    5、允许设置命名记录器层次结构的最小日志级别(所有节点执行)

    [root@endemo-5 presto-server-0.188]# cat etc/log.properties 
    com.facebook.presto=INFO
    
    • 1
    • 2

    6、 连接器(数据源)的配置(所有节点执行)

    [root@endemo-5 presto-server-0.188]# cat etc/catalog/hive.properties 
    connector.name=hive-hadoop2
    hive.metastore.uri=thrift://172.24.3.183:9083   #hive.metastore服务的ip加端口
    hive.config.resources=/usr/hdp/2.6.2.14-5/hadoop/conf/core-site.xml,/usr/hdp/2.6.2.14-5/hadoop/conf/hdfs-site.xml
    #hive.allow-drop-table=true
    [root@endemo-5 presto-server-0.188]# cat etc/catalog/jmx.properties 
    connector.name=jmx
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    5、守护进程启动(所有节点执行)

    [root@bdos6-endemo-5 presto-server-0.188]# bin/launcher start
    Started as 14723
    [root@bdos6-endemo-5 presto-server-0.188]# bin/launcher status
    Running as 14723
    
    • 1
    • 2
    • 3
    • 4

    6、测试

    在这里插入图片描述

    [root@host-172-24-12-30 bin]#  ./presto --server 172.24.12.30:9098 --catalog hive --schema default
    presto:default> show schemas from hive;
           Schema       
    --------------------
     default            
     information_schema 
    (2 rows)
    
    Query 20220920_025530_00001_id49k, FINISHED, 2 nodes
    Splits: 18 total, 18 done (100.00%)
    0:02 [2 rows, 35B] [0 rows/s, 17B/s]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    总结
    集群模式需要注意修改下面两个配置形成集群
    etc/config.properties
    etc/node.properties

  • 相关阅读:
    忆联再次与 OpenCloudOS 完成产品兼容性互认证
    移动文件路径却不破坏org file link的方法
    如何修改min.js或者压缩后的js,以便提高代码的可读性。
    MYSQL数据库的故障排除与优化
    【嵌入式Linux内核驱动】内核模块三要素与验证测试
    拓世AI|中秋节营销攻略,创意文案和海报一键生成
    提升设计性能的HDL编码方法
    React项目中使用Echarts
    Ubuntu快速安装MSF命令
    NPS:使用 Windows NPS Server 部署 802.1X 无线认证(4)
  • 原文地址:https://blog.csdn.net/a13568hki/article/details/126948673