前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Presto之分布式安装查询Hive

Presto之分布式安装查询Hive

作者头像
克虏伯
发布2019-07-29 16:28:59
1.3K0
发布2019-07-29 16:28:59
举报

工作需要使用Presto,记录下。Presto需要Hive,安装Hive的步骤略,可参考我的这篇博客

    Hadoop的版本是2.7.2,Hive的版本是2.1.1,Presto的版本是0.197。Presto是个master-slave结果的查询引擎,所以我们用三台机器来安装,如下List-1

List-1

192.168.33.34 presto-coordinator
192.168.33.35 presto-slave1
192.168.33.36 presto-slave2

如下图1

                                                                                图1

    每台上都要安装JDK,我使用的JDK版本是1.8.0_131,步骤略;将Hadoop集群上的Hadoop包拷贝到/opt上,将Hadoop加入到PATH中,每台都是。

presto-coordinator

在presto-coordinator上,将presto安装包放在/opt下,解压,

1、config.properties,在etc下新建config.properties文件,文件内容如下List-2

List-2

coordinator=true
node-scheduler.include-coordinator=false
http-server.http.port=18080
query.max-memory=1GB
discovery-server.enabled=true
discovery.uri=http://192.168.33.34:18080
#是否允许presto server服务中即作为coordinator有作为worker,我们这是为false
node-scheduler.include-coordinator=false

2、jvm.config,在etc下新建jvm.config,文件内容如下List-3

List-3

-server
-XX:+UseConcMarkSweepGC
-XX:+ExplicitGCInvokesConcurrent
-XX:+CMSClassUnloadingEnabled
-XX:+AggressiveOpts
-XX:+HeapDumpOnOutOfMemoryError
-XX:OnOutOfMemoryError=kill -9 %p
-XX:ReservedCodeCacheSize=256M

3、log.properties,在etc下新建log.properties,文件内容如下List-4

List-4

com.facebook.presto=INFO

4、node.properties,在etc下新建node.properties,文件内容如下List-5

List-5

node.environment=production
node.id=node_master
node.data-dir=/opt/prestoserver/data

5、在etc下新建catalog目录,在etc/catalog下新建hive.properties,如下List-6所示,192.168.33.33:9083是hive的metastore服务地址

List-6

connector.name=hive-hadoop2
hive.metastore.uri=thrift://192.168.33.33:9083
hive.config.resources=/opt/hadoop/core-site.xml,/opt/hadoop/etc/hadoop/hdfs-site.xml

presto-slave1

    和presto-coordinator一样,在etc下新建config.properties、jvm.config、log.properties、node.properties、catalog/hive.properties,只是config.properties的内容和coordinator的不同,如下List-7,node.properties的值和coordinator的不同,如下List-8所示

List-7  coordinator的值为false

coordinator=false
http-server.http.port=18080
query.max-memory=1GB
discovery-server.enabled=true
discovery.uri=http://192.168.33.34:18080
node-scheduler.include-coordinator=false

List-8 node-id要修改

node.environment=production
node.id=node_node1
node.data-dir=/opt/prestoserver/data

presto-slave2

    在slave2上和slave1的一样,只是node.properties的值和slave1的不同,如下List-9所示,将node.id修改为自己的

List-9

node.environment=production
node.id=node_node2
node.data-dir=/opt/prestoserver/data

启动

  1. presto-coordinator上执行"bin/launcher  run",这样会将日志打印到控制台,我们好调试,如果是launcher  start则后台运行,看不到日志。
  2. presto-slave1上执行"bin/launcher run"
  3. presto-slave2上执行"bin/launcher run"

之后浏览器中访问192.168.33.34:18080

Presto由三部分组成,

  1. 一个Coordinator节点,Coordinator: 负责解析SQL语句,生成执行计划,分发执行任务给Worker节点执行
  2. 一个Discovery Server节点,Discovery Server: 通常内嵌于Coordinator节点中,worker会将自己注册到这里
  3. 多个Worker节点,负责实际执行查询任务,负责与HDFS交互读取数据

Presto查询引擎低延迟的原因:

  1. 基于内存的并行计算
  2. 流水线式计算作业
  3. 本地化计算
  4. 动态编译执行计划

Hive是存储、计算引擎,不过Persto不做存储。

Reference

  1. https://blog.51cto.com/simplelife/1967220
  2. https://www.liangzl.com/get-article-detail-40387.html
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • presto-coordinator
  • presto-slave1
  • presto-slave2
  • 启动
  • Reference
相关产品与服务
GPU 云服务器
GPU 云服务器(Cloud GPU Service,GPU)是提供 GPU 算力的弹性计算服务,具有超强的并行计算能力,作为 IaaS 层的尖兵利器,服务于深度学习训练、科学计算、图形图像处理、视频编解码等场景。腾讯云随时提供触手可得的算力,有效缓解您的计算压力,提升业务效率与竞争力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档