Presto集成到Ambari介绍

简介: 在Ambari中集成Presto,能在Ambari UI中方便地安装部署Presto到集群,并能方便修改Presto相关配置

在Ambari中集成Presto,能在Ambari UI中方便地安装部署Presto到集群,并能方便修改Presto相关配置。


Presto官方介绍文档


ambari-presto-service的官方文档


Presto在京东的实践


Presto在美团的应用


Presto使用


前提准备


Red Hat Enterprise Linux6.x 64-bit或者CentOS


已安装Ambari,并满足Ambari相关要求.


Presto 0.148版后需要安装Oracle JDK 1.8u60+,0.148之前版本需要JDK 1.8u40+。理解JDK配置了解Presto和Ambari JDK之间的关系。


禁用requiretty。在Red Hat Enterprise Linux6.x上能通过编辑/etc/sudoers文件,注释掉Defaults requiretty。


节点已安装wget。


添加Presto Service


下载文件


官网下载Ambari集成包


确保Ambari已安装好HDP2.3,在ambari-server运行的服务器上创建如下目录/var/lib/ambari-server/resources/stacks/HDP/2.3/services/PRESTO

$ mkdir /var/lib/ambari-server/resources/stacks/HDP/2.3/services/PRESTO$ cd /var/lib/ambari-server/resources/stacks/HDP/2.3/services/PRESTO

将集成文件ambari-presto-1.2.tar.gz放于/var/lib/ambari-server/resources/stacks/HDP/2.3/services/PRESTO目录下。


此处下载Teradata版本,或者此处下载0.148版集成包,上传集成文件到集群中,并解压:

$ tar -xvf /path/to/integration/package/ambari-presto-1.1.tar.gz -C /var/lib/ambari-server/resources/stacks/HDP/2.3/services/PRESTO$ mv /var/lib/ambari-server/resources/stacks/HDP/2.3/services/PRESTO/ambari-presto-1.1/* /var/lib/ambari-server/resources/stacks/HDP/2.3/services/PRESTO$ rm -rf /var/lib/ambari-server/resources/stacks/HDP/2.3/services/PRESTO/ambari-presto-1.1


最后,将所有集成文件添加可执行权限,并重启Ambari-server。


$ chmod -R +x /var/lib/ambari-server/resources/stacks/HDP/2.3/services/PRESTO/*$ ambari-server restart


上述包是默认集成presto0.161版,这里可修改到最新版本,并配置下载最新的rpm和cli包。


#修改presto版本$ cd/var/lib/ambari-


server/resources/stacks/HDP/2.5/services/PRESTO$ makedistVERSION=0.168


#修改下载包的对应版本和路径$ cd/var/lib/ambari-


server/resources/stacks/HDP/2.5/services/PRESTO/package/scripts修改:download.ini[download]presto_rpm_url=http://search.maven.org/remotecontent?filepath=com/facebook/presto/presto-server-rpm/0.168/presto-server-rpm-0.168.rpmpresto_cli_url=http://search.maven.org/remotecontent?filepath=com/facebook/presto/presto-cli/0.168/presto-cli-0.168-executable.jar为:[download]presto_rpm_url=http://dpnode08/presto/0.168/presto-server-rpm-0.168.rpmpresto_cli_url=http://dpnode08/presto/0.168/presto-cli-0.168-executable.jar


重启Ambari server后,在浏览器UI界面,点击Add Service,根据指示安装Presto。

添加服务


选择主节点安装Coordinator


分配Worker节点和客户端节点


自定义配置


自定义配置,主要配置discovery-uri.


主要配置信息有:

#配置Connector{'hive':['connector.name=hive-hadoop2','hive.metastore.uri=thrift://dpnode03:9083','hive.config.resources=/etc/hadoop/conf/core-site.xml,/etc/hadoop/conf/hdfs-site.xml','hive.allow-drop-table=true','hive.storage-format=ORC'],'jmx':['connector.name=jmx']}#配置JVM-server-Xmx16G-XX:+UseConcMarkSweepGC-XX:+ExplicitGCInvokesConcurrent-XX:+CMSClassUnloadingEnabled-XX:+AggressiveOpts-XX:+HeapDumpOnOutOfMemoryError-XX:OnOutOfMemoryError=kill-9%p-XX:ReservedCodeCacheSize=150M#discovery.urihttp://dpnode02:8285


启动安装


启动安装


安装完成


运行客户端


$ presto-client


执行sql语句,然后在URI上查看相关运行情况。


访问URI


/var/log/presto 日志/usr/lib/presto 安装目录/var/lib/presto 数据目录/etc/presto     配置文件


拓扑


以下两步可在群集中的节点之间分配Presto进程。一旦选择了Presto的拓扑并完成安装过程,就不可能修改该拓扑。


Presto由协调器coordinator和工作进程worker组成。同一代码运行所有节点,因为为worker和coordinator安装了相同的PrestoRPM包。每个节点上的配置决定了特定节点的行为方式。 Presto可以以伪分布式模式运行,其中一个节点上的单个Presto进程充当coordinator和worker,或者可以以分布式模式运行,其中Presto coordinator在一个节点上运行,而Presto worker在其他节点上运行。


Presto的客户端组件是presto-cli可执行文件JAR。您应该将其放置在您希望通过此命令行访问Presto服务器的所有节点上。 presto-cli可执行文件JAR不需要与工作者或协调器共同定位,它可以自己安装。安装后,可以在/usr/ lib/presto/bin/presto-cli找到CLI。

不要将worker放置在与coordinator相同的节点上。这样的尝试将失败安装,因为集成软件将尝试安装RPM两次。为了安排Presto coordinator的工作,有效地将过程变成双工/协调器,请在配置中启用node-scheduler.include-coordinator。


伪分布式


在一个节点上安装Presto coordinator,不安装其他的worker。在配置页面启用node-scheduler.include-coordinator


分布式


在一个节点上安装Presto coordinator,在其他若干节点(非coordinator节点)上安装Presto worker。


Presto配置


没有缺省值并且需要输入的一个配置属性是discovery.uri。预期值为http://:8285。注意,它是http而不是https,端口是8285.如果更改http-server.http.port的值,请确保在disovery.uri中进行相应更改。


一些最常用的属性显示在“设置”选项卡中(默认情况下是打开的)。在“高级”选项卡中,通过打开正确的下拉列表并指定键和值来设置自定义属性。请注意,指定Presto无法识别的属性将导致安装失败,或者部分或所有服务器无法启动。


安装后,通过选择Presto服务,然后选择Configs选项卡,更改Presto配置。更改配置选项后,请确保重新启动Presto以使更改生效。


如果您运行的Ambari版本早于2.1(版本号小于2.1),则在设置以下内存相关配置时必须忽略内存后缀(GB):query.max-memory-per-node和query.max-memory。对于这两个属性,内存后缀由集成软件自动添加。对于您添加为自定义属性的所有其他内存相关配置,在指定值时必须包括内存后缀。


添加删除Connectors


要添加连接器,请修改connectors.to.add属性,其格式如下:{'connector1':['key1 = value1','key2 = value2'等],'connector2':['key3 = value3 ','key4 = value4']等}。请注意每个单个元素周围的单引号。此属性仅添加连接器,不会删除连接器。因此,如果添加connector1,保存配置,重新启动Presto,然后为此属性指定{},connector1不会被删除。如果在连接器设置中指定了不正确的值,例如将Hive连接器中的hive.metastore.uri设置为指向无效的主机名,则Presto将无法启动。


例如,要添加Hive和Kafka连接器,请将connectors.to.add属性设置为:


{'hive': ['connector.name=hive-cdh4',

'hive.metastore.uri=thrift://example.net:9083'],'kafka': ['connector.name=kafka', 'kafka.table-names=table1,table2', 'kafka.nodes=host1:port,host2:port']}


要删除连接器,请修改connectors.to.delete属性,格式如下:


['connector1','connector2'等]。再次,注意每个元素周围的单引号。上述值将删除连接器connector1和connector2。请注意,tpch连接器不能删除,因为它用于在启动Presto之后。 tpch连接器的存在对系统的影响可以忽略不计。


例如,要删除Hive和Kafka连接器,请将connectors.to.delete属性设置为:


['hive','kafka']。


HIVE连接器


针对不同的hadoop版本,Presto都有对应的hive connector:


hive-hadoop1: Apache Hadoop 1.x

hive-hadoop2: Apache Hadoop 2.x

hive-cdh4: Cloudera CDH 4

hive-cdh5: Cloudera CDH 5


创建一个包含有以下内容的文件:etc/catalog/hive.properties,从而在hivecatalog中挂载hive-cdh4的connector。根据你实际的hadoop版本和环境替换掉hive-cdh4和example.net:9083:


connector.name=hive-cdh4hive.metastore.uri=thrift://example.net:9083

HDFS Configuration


hive.config.resources=/etc/hadoop/conf/core-site.xml,/etc/hadoop/conf/hdfs-site.xml


#创建新表时,表的文件存储格式hive.storage-format=ORC


Mysql连接器


connector.name=mysqlconnection-url=jdbc:mysql://example.net:3306connection-user=rootconnection-password=secret


/usr/lib/presto/bin/presto-cli --server dpnode02:8285 --catalog hive --schema default


JDK配置


在Ambari的安装过程中,用户可以选择Ambari将使用的JDK以及其控制的其他服务。此JDK可以在安装后随时通过在运行Ambari服务器进程的主机上运行ambari-server设置进行编辑,然后通过运行ambari-server restart以重新启动该进程,以使更改生效。


当选择要运行的JDK版本时,用户会看到三个选项:1.8,1.7或自定义JDK。如果选择1.8或1.7选项,Ambari将下载该主版本的JDK。但是,JDK的更新(次要)版本根据Ambari的版本而有所不同。例如,Ambari 2.2.0+将下载1.8u60,之前的版本将下载1.8u40。


当Ambari安装Presto时,使用的JDK将是Ambari配置的JDK(具体来说,是/etc/ambari-server/conf/ambari.properties中的java.home的值)。


但是,与其他服务不同,一旦安装Presto,它将使用与安装的JDK相同的JDK,即使Ambari的JDK已重新配置。原因是在RPM安装期间,Presto的JDK设置


/etc/presto/env.sh中。要重新配置Presto的JDK,在Presto将运行的所有主机上编辑/etc/presto/env.sh




目录
相关文章
|
SQL 消息中间件 Kafka
atlas 集成cdh
atlas 集成cdh
atlas 集成cdh
|
SQL 分布式计算 Java
ambari集成kylin服务
kylin服务集成
376 0
|
Linux 开发工具 git
ambari集成alluxio服务
alluxio集成到ambari
336 0
|
SQL 消息中间件 分布式计算
Atlas 2.1.0 实践(3)—— Atlas集成HIve
Atlas 2.1.0 实践(3)—— Atlas集成HIve
448 0
Atlas 2.1.0 实践(3)—— Atlas集成HIve
|
SQL 存储 分布式计算
Presto介绍,使用及安装部署
Presto通过使用分布式查询,可以快速高效的完成海量数据的查询。如果你需要处理TB或者PB级别的数据,那么你可能更希望借助于Hadoop和HDFS来完成这些数据的处理。
667 0
Presto介绍,使用及安装部署
|
SQL 存储 分布式计算
Presto 架构
Coordinator担当 Master 角色,负责解析 SQL,生成查询计划,提交查询任务给 Worker 执行,管理 Worker 节点。
163 0
|
流计算
Ambari部署Flink
Ambari部署Flink
701 0
Ambari部署Flink
|
消息中间件 存储 Kafka
Ambari部署Atlas
Ambari部署Atlas
379 0
Ambari部署Atlas
|
SQL 关系型数据库 MySQL
Ambari部署Hive
Ambari部署Hive
128 0
Ambari部署Hive
|
流计算
Ambari部署Storm
Ambari部署Storm
96 0
Ambari部署Storm