zoukankan      html  css  js  c++  java
  • presto对接TDH5.2.4版本

    Presto是什么?

    Presto是一个开源的分布式SQL查询引擎,适用于交互式分析查询,数据量支持GB到PB字节。

    Presto的设计和编写完全是为了解决像Facebook这样规模的商业数据仓库的交互式分析和处理速度的问题。

    它可以做什么?

    Presto支持在线数据查询,包括Hive, Cassandra, 关系数据库以及专有数据存储。 一条Presto查询可以将多个数据源的数据进行合并,可以跨越整个组织进行分析。

    Presto以分析师的需求作为目标,他们期望响应时间小于1秒到几分钟。 Presto终结了数据分析的两难选择,要么使用速度快的昂贵的商业方案,要么使用消耗大量硬件的慢速的“免费”方案。

    TDH中和presto一样的组件叫做inceptor,是星环科技的sql查询引擎

    由于inceptor上层程序连接,时不时会掉线,针对这个问题,现在通过presto进行数据查询

    以下给出presto的配置对接步骤:

    需要的包如下:

    jdk1.8.0_241

    presto-server-0.173.tar.gz

    presto-cli-0.161-executable.jar

    1.各节点: 创建 presto 用户,设置密码。

    useradd presto
    passwd presto
    
    mkdir -p /opt/presto/data
    chown -R presto:presto /opt/presto/data 

    2.修改用户资源(root 用户

    各节点:修改用户可用资源配置。主要涉及: 用户最大可用的进程数、进程
    能够打开文件的最大数目。
    vi /etc/security/limits.conf

    * soft noproc 10240
    * hard noproc 10240
    * soft nofile 10240
    * hard nofile 10240


    不同服务器的文件名有差异,本文以 90-nproc.conf 为例。
    vi /etc/security/limits.d/90-nproc.conf
    * soft nproc 10240
    配置完成后,需重新登陆服务器查验。

    su - presto
    ulimit -u
    ulimit -n 

     

    3.准备程序

    各节点: 上传 JDK Presto 程序包,并解压。
    tar -vxf jdk-8u111-linux-x64.tar.gz -C /opt/presto
    tar -vxf presto-server-0.173.tar.gz -C /opt/presto

    4.配置环境变量


    各节点: 配置 presto 用户的 Java 环境变量。
    vi /home/presto/.bash_profile

    export JAVA_HOME=/opt/presto/jdk1.8.0_111
    export PATH=$PATH:$JAVA_HOME/bin


    source /home/presto/.bash_profile
    java -version
    配置 Presto


    5.配置 JVM
    各节点: 新建 presto-server-0.173/etc 目录, 在该目录下新建、配置 jvm.conf
    ig 文件。
    mkdir /opt/presto/presto-server-0.173/etc
    vi /opt/presto/presto-server-0.173/etc/jvm.config

    -server
    -Xmx32G
    -XX:+UseG1GC
    -XX:G1HeapRegionSize=32M
    -XX:+UseGCOverheadLimit
    -XX:+ExplicitGCInvokesConcurrent
    -XX:+HeapDumpOnOutOfMemoryError
    -XX:OnOutOfMemoryError=kill -9 %p
    -DHADOOP_USER_NAME=hdfs


    6.配置日志级别

    各节点: 新建、 配置 log.propertis
    vi /opt/presto/presto-server-0.173/etc/log.propertis

    com.facebook.presto=INFO


    7.配置节点属性
    各节点: 新建、配置 node.properties(获取 node.id, 每个节点的 node.id 须不
    一样)。
    uuidgen
    vi /opt/presto/presto-server-0.173/etc/node.properties

    # presto 名称, 同一集群必须相同
    node.environment=production
    
    # presto 节点唯一标识, 执行命令 uuidgen 读取
    node.id=ffffffff-ffff-ffff-ffff-ffffffffffff
    # 日志目录、 计算临时存储目录, presto 用户有读写权限
    node.data-dir=/opt/presto/data 

     
    配置属性
    各节点: 新建、配置 config.properties
    vi /opt/presto/presto-server-0.173/etc/config.properties
    coordinator 节点

    coordinator=true
    # 是否复用为 worker 节点, false 为否。默认为 false
    node-scheduler.include-coordinator=false
    # 本节点 presto 服务端口号
    http-server.http.port=8888
    # query.max-memory-per-node * worker 节点的个数
    query.max-memory=54GB
    query.max-memory-per-node=18GB
    discovery-server.enabled=true
    # 本节点、 端口号
    discovery.uri=http://coordinator 节点 ip:8888


    worker 节点

    coordinator=false
    # 本节点 presto 服务端口号
    http-server.http.port=8888
    # query.max-memory-per-node * worker 节点的个数
    query.max-memory=54GB
    query.max-memory-per-node=18GB
    # Presto 中 coordinator 所在节点,以及其端口号
    discovery.uri=http://coordinator 节点 ip:8888 


    8.配置 hive 连接信息
    各节点: 创建 catalog 子目录, 在该目录新建、 配置 hive.properties
    mkdir /opt/presto/presto-server-0.173/etc/catalog
    vi /opt/presto/presto-server-0.173/etc/catalog/hive.properties

      1 connector.name=hive-hadoop2
      2 hive.metastore.uri=thrift://198.28.1.82:9083
      3 hive.config.resources=/opt/presto/core-site.xml,/opt/presto/hdfs-site.xml
      4 
      5 hive.metastore.authentication.type=KERBEROS
      6 hive.metastore.service.principal=hive/ht-28-tdh82@TDH
      7 hive.metastore.client.principal=hive@TDH
      8 hive.metastore.client.keytab=/opt/presto/inceptor.keytab
      9 
     10 hive.hdfs.authentication.type=KERBEROS
     11 #hive.hdfs.impersonation.enable=true
     12 hive.hdfs.presto.principal= hive@TDH
     13 hive.hdfs.presto.keytab=/opt/presto/inceptor.keytab

    注意hive.metastore.service.principal=hive/ht-28-tdh82@TDH 一定要加上hosname,这是与开源hive不同的地方

    注意#hive.hdfs.impersonation.enable=true 需要注释这行,否则会有错误:

     以上就是presto的配置流程

    各节点:启动 Presto 服务。
    /opt/presto/presto-server-0.173/bin/launcher start

    通过 Presto 客户端,访问 Hive 数据进行验证。
    上传客户端,授权。 示例如下,其中 default 为数据库名称。
    chmod +x presto-cli-0.161-executable.jar
    ./presto-cli-0.161-executable.jar --server coordinator 节点 ip:8888 --catalog hive  --schema default
    执行该语句后, 可在 Presto Shell 中执行:
    presto> show tables;

  • 相关阅读:
    3种方式提高页面加载速度
    CSS中的层叠、特殊性、继承、样式表中的@import
    jQuery从零开始(二)
    jQuery从零开始(一)
    设计模式
    Vue-cli3脚手架工具快速创建一个项目
    Git上传到码云及其常见问题详解
    eclipse导入本地的svn项目后不能在team提交更新
    js拖拽上传图片
    axure 动态面板制作图片轮播 (01图片轮播)
  • 原文地址:https://www.cnblogs.com/wang3680/p/12671502.html
Copyright © 2011-2022 走看看