Presto集成到Ambari介绍

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

Presto官方介绍文档

英文http://teradata.github.io/presto/docs/current/index.html

中文http://prestodb-china.com/docs/current/index.html#

ambari-presto-service的官方文档

https://prestodb.io/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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,015评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,262评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,727评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,986评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,363评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,610评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,871评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,582评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,297评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,551评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,053评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,385评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,035评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,079评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,841评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,648评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,550评论 2 270

推荐阅读更多精彩内容