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/
前提準備
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。
相關文章
- Presto學習-presto介紹REST
- Ambari 常用的 REST API 介紹RESTAPI
- springboot整體介紹Spring Boot
- TiDB整體架構介紹TiDB架構
- Presto學習-presto的安裝REST
- C 語言整數與字串的相互轉換介紹字串
- QuickTask動態指令碼支援框架整體介紹篇UI指令碼框架
- Presto改造REST
- launchpad圖示大小怎麼調整?mac圖示調整大小方法介紹Mac
- 系統程式設計-網路-內容概要、整體介紹程式設計
- 忘憂大陸-功能完備的社交專案整體介紹
- javascript將浮點數數變為整數簡單介紹JavaScript
- presto 架構REST架構
- Ambari叢集搭建
- Ambari部署HadoopHadoop
- DM 原始碼閱讀系列文章(二)整體架構介紹原始碼架構
- Scrapy原始碼閱讀分析_1_整體框架和流程介紹原始碼框架
- 隱私計算+AI工程技術實踐指南--整體介紹AI
- 介紹
- ambari2.8+ambari-metrics3.0+bigtop3.2編譯、打包、安裝S3編譯
- Presto學習筆記——Go客戶端連線PrestoREST筆記Go客戶端
- Ambari 架構(譯文)架構
- 安裝ambari的時候遇到的ambari和hadoop問題集Hadoop
- LAMP架構介紹、MYSQL介紹、安裝LAMP架構MySql
- 第5講回顧:FATE整體架構介紹與系統實踐架構
- go微服務框架go-micro深度學習(一) 整體架構介紹Go微服務框架深度學習架構
- php介紹PHP
- CSRedisCore 介紹Redis
- BitMap介紹
- GeoServer介紹Server
- RabbitMQ 介紹MQ
- 模式介紹模式
- Pyzmq介紹MQ
- Java介紹Java
- css介紹CSS
- kafka介紹Kafka
- 【RESTEasy 介紹】REST
- Kafka 介紹Kafka