Presto學習-presto的安裝
presto是一個SQL on Hadoop 的產品,現在我們瞭解一下presto的安裝過程
我們使用的版本是presto-server-0.187.tar.gz
1、先解壓
tar -zxvf presto-server-0.187.tar.gz
解壓以後再目錄下面的結構是
[root@druid presto-server-0.187]# ll
total 216
drwxr-xr-x. 3 root root 4096 Oct 20 03:17 bin
drwxr-xr-x. 2 root root 12288 Oct 20 03:17 lib
-rw-r--r--. 1 root root 191539 Oct 20 03:17 NOTICE
drwxr-xr-x. 26 root root 4096 Oct 20 03:17 plugin
-rw-r--r--. 1 root root 119 Oct 20 03:17 README.txt
2、建立目錄
在安裝目錄中建立一個etc目錄, 在這個etc目錄中放入以下配置檔案:
2.1、config.properties :Presto 服務配置
2.2、node.properties :環境變數配置,每個節點特定配置
2.3、jvm.config :Java虛擬機器的命令列選項
2.4、log.properties: 允許你根據不同的日誌結構設定不同的日誌級別
2.5、catalog目錄 :每個連線者配置(data sources)
3、每個檔案的配置資訊
3、1 config.properties 檔案修改
包含了Presto server的所有配置資訊。 每個Presto server既是一個coordinator也是一個worker。 但是在大型叢集中,處於效能考慮,建議單獨用一臺機器作為 coordinator,一個coordinator的etc/config.properties應該至少包含以下資訊:
1. coordinator:指定是否運維Presto例項作為一個coordinator(接收來自客戶端的查詢情切管理每個查詢的執行過程)
2. node-scheduler.include-coordinator:是否允許在coordinator服務中進行排程工作, 對於大型的叢集,在一個節點上的Presto server即作為coordinator又作為worke將會降低查詢效能。因為如果一個伺服器作為worker使用,那麼大部分的資源都會被worker佔用,那麼就不會有足夠的資源進行關鍵任務排程、管理和監控查詢執行
3. http-server.http.port:指定HTTP server的埠。Presto 使用 HTTP進行內部和外部的所有通訊
4. task.max-memory=1GB:一個單獨的任務使用的最大記憶體 (一個查詢計劃的某個執行部分會在一個特定的節點上執行)。 這個配置引數限制的GROUP BY語句中的Group的數目、JOIN關聯中的右關聯表的大小、ORDER BY語句中的行數和一個視窗函式中處理的行數。 該引數應該根據併發查詢的數量和查詢的複雜度進行調整。如果該引數設定的太低,很多查詢將不能執行;但是如果設定的太高將會導致JVM把記憶體耗光
5. discovery-server.enabled:Presto 通過Discovery 服務來找到叢集中所有的節點。為了能夠找到叢集中所有的節點,每一個Presto例項都會在啟動的時候將自己註冊到discovery服務。Presto為了簡化部署,並且也不想再增加一個新的服務程式,Presto coordinator 可以執行一個內嵌在coordinator 裡面的Discovery 服務。這個內嵌的Discovery 服務和Presto共享HTTP server並且使用同樣的埠
6. discovery.uri:Discovery server的URI。由於啟用了Presto coordinator內嵌的Discovery 服務,因此這個uri就是Presto coordinator的uri。注意:這個URI一定不能以“/“結尾
我這裡一臺機器進行測試,那麼這一臺機器將會即作為coordinator,也作為worker。配置檔案將會如下所示
[root@druid etc]# cat config.properties
coordinator=true
node-scheduler.include-coordinator=true
http-server.http.port=8001
query.max-memory=1GB
discovery-server.enabled=true
discovery.uri=http://192.168.18.145:8001
3、2 jvm.config 檔案修改
包含一系列在啟動JVM的時候需要使用的命令列選項。這份配置檔案的格式是:一系列的選項,每行配置一個單獨的選項。由於這些選項不在shell命令中使用。 因此即使將每個選項通過空格或者其他的分隔符分開,java程式也不會將這些選項分開,而是作為一個命令列選項處理,資訊如下:
[root@druid etc]# cat jvm.config
-server
-Xmx1G
-XX:+UseG1GC
-XX:G1HeapRegionSize=32M
-XX:+UseGCOverheadLimit
-XX:+ExplicitGCInvokesConcurrent
-XX:+HeapDumpOnOutOfMemoryError
-XX:+ExitOnOutOfMemoryError
3、3 log.properties 檔案修改
這個配置檔案中允許你根據不同的日誌結構設定不同的日誌級別。每個logger都有一個名字(通常是使用logger的類的全標示類名). Loggers通過名字中的“.“來表示層級和整合關係,資訊如下:
[root@druid etc]# cat log.properties
com.facebook.presto=INFO
3、4 node.properties 檔案修改
包含針對於每個節點的特定的配置資訊。 一個節點就是在一臺機器上安裝的Presto例項,etc/node.properties配置檔案至少包含如下配置資訊
1. node.environment: 叢集名稱, 所有在同一個叢集中的Presto節點必須擁有相同的叢集名稱
2. node.id: 每個Presto節點的唯一標示。每個節點的node.id都必須是唯一的。在Presto進行重啟或者升級過程中每個節點的node.id必須保持不變。如果在一個節點上安裝多個Presto例項(例如:在同一臺機器上安裝多個Presto節點),那麼每個Presto節點必須擁有唯一的node.id
3. node.data-dir: 資料儲存目錄的位置(作業系統上的路徑), Presto將會把日期和資料儲存在這個目錄下
[root@druid etc]# cat node.properties
node.environment=presto1
node.id=presto1
node.data-dir=/opt/presto/data
3、5 catalog 目錄增加檔案
配置catalog目錄下面的檔案
通過在etc/catalog目錄下建立catalog屬性檔案來完成catalogs的註冊。 例如:可以先建立一個etc/catalog/hive.properties檔案,檔案中的內容如下,完成在hive上掛載一個hiveconnector
[root@druid catalog]# pwd
/opt/presto-server-0.187/etc/catalog
[root@druid catalog]# cat hive.properties
connector.name=hive-hadoop2
hive.metastore.uri=thrift://192.168.18.145:9083
4、執行presto
4、1 在安裝目錄的bin/launcher檔案,就是啟動指令碼。Presto可以使用如下命令作為一個後臺程式啟動:
bin/launcher start
4、2 也可以在前臺執行, 可檢視具體的日誌
bin/launcher run
4、3 停止服務程式命令
bin/laucher stop
4、4 檢視程式: ps -aux|grep PrestoServer 或 jps
5、使用客戶端
1、 下載 presto-cli-0.188-executable.jar:Presto CLI為使用者提供了一個用於查詢的可互動終端視窗。CLI是一個 可執行 JAR檔案, 這也就意味著你可以像UNIX終端視窗一樣來使用CL
https://repo1.maven.org/maven2/com/facebook/presto/presto-cli/0.188/presto-cli-0.188-executable.jar
2、檔案下載後, 使用 chmod +x 命令設定可執行許可權
這裡需要先啟動 hive –service metastore
命令:./presto-cli-0.188-executable.jar –server 192.168.18.145:8001 –catalog hive –schema default
下面就是presto的操作了
presto:default> show tables;
Table
-------
test
test1
(2 rows)
Query 20171107_161804_00004_psubf, FINISHED, 1 node
Splits: 18 total, 18 done (100.00%)
0:02 [2 rows, 43B] [0 rows/s, 19B/s]
presto:default> select * from test1;
id
----
0
(1 row)
Query 20171107_161812_00005_psubf, FINISHED, 1 node
Splits: 17 total, 17 done (100.00%)
0:03 [1 rows, 2B] [0 rows/s, 0B/s]
6、可以使用quit退出
相關文章
- Presto學習-presto介紹REST
- Presto安裝與使用REST
- Presto學習筆記——Go客戶端連線PrestoREST筆記Go客戶端
- Presto 與 Hive 語法學習RESTHive
- Presto改造REST
- presto 架構REST架構
- Presto 函式開發REST函式
- Presto Event Listener開發REST
- Presto資源組配置REST
- Apache Hudi和Presto的前世今生ApacheREST
- Presto整合到Ambari介紹REST
- 在windows的IDEA執行PrestoWindowsIdeaREST
- Presto在滴滴的探索與實踐REST
- LEFT JOIN 需要注意的點(Presto)REST
- 探究Presto SQL引擎(1)-巧用AntlrRESTSQL
- Presto適配高斯資料庫REST資料庫
- Presto:Facebook的分散式SQL查詢引擎REST分散式SQL
- 探究Presto SQL引擎(2)-淺析JoinRESTSQL
- Presto通過RESTful介面新增ConnectorREST
- 探究Presto SQL引擎(3)-程式碼生成RESTSQL
- Presto上使用SQL遇到的一些坑RESTSQL
- ==Presto實現原理和美團的使用實踐 -REST
- Presto原始碼分析之資料型別REST原始碼資料型別
- 【乾貨】Linux中presto作用是什麼?LinuxREST
- presto官網閱讀記錄: Functions and Operators 部分RESTFunction
- 提升50%!Presto如何提升Hudi表查詢效能?REST
- Presto+Alluxio 加速 Iceberg 資料湖訪問RESTUX
- Alluxio Local Cache 加速 Presto 查詢在 Uber 的應用UXREST
- 優步分享基於Apache Kafka的Presto使用經驗ApacheKafkaREST
- Presto記憶體調優及原理(基礎篇)REST記憶體
- presto 轉換靜態catlog為動態catlogREST
- Presto 在位元組跳動的內部實踐與優化REST優化
- 新書上市 | 流行 SQL 引擎 Presto,官方實戰指南來了新書SQLREST
- Presto + Alluxio:B站資料庫系統效能提升實踐RESTUX資料庫
- Presto 標量函式註冊和呼叫過程簡述REST函式
- OLAP引擎:基於Presto元件進行跨資料來源分析REST元件
- 開源OLAP引擎測評報告(SparkSql、Presto、Impala、HAWQ、ClickHouse、GreenPlum)SparkSQLREST
- B站基於快取最佳化 PRESTO 叢集查詢效能快取REST