Presto是一種用於大數據的高性能分佈式SQL查詢引擎。其架構容許用戶查詢各類數據源,如Hadoop,AWS S3,Alluxio,MySQL,Cassandra,Kafka和MongoDB,甚至能夠在單個查詢中查詢來自多個數據源的數據,真是功能強大。java
這裏梳理一下安裝過程,官網http://prestodb.github.io/,上篇已經寫了怎麼安裝kudu,之下是我安裝presto的過程:node
在官網先下載presto-server-0.225.tar.gz和presto-cli-0.225-executable.jargit
解壓以後,在該文件夾下添加相應的配置:github
在 presto-server-0.90 目錄建立 etc 目錄,並建立如下文件:sql
node.properties
:每一個節點的環境配置jvm.config
:jvm 參數config.properties
:配置 Presto Server 參數log.properties
:配置日誌等級Catalog Properties
:Catalog 的配置 etc/node.properties
示例配置以下:架構
node.environment=production node.id=ffffffff-ffff-ffff-ffff-ffffffffffff node.data-dir=/var/presto/data
參數說明:jvm
node.environment
:環境名稱。一個集羣節點中的全部節點的名稱應該保持一致。node.id
:節點惟一標識的名稱。node.data-dir
:數據和日誌存放路徑。 etc/jvm.config
示例配置以下:分佈式
-server -Xmx16G -XX:+UseConcMarkSweepGC -XX:+ExplicitGCInvokesConcurrent -XX:+CMSClassUnloadingEnabled -XX:+AggressiveOpts -XX:+HeapDumpOnOutOfMemoryError -XX:OnOutOfMemoryError=kill -9 %p -XX:ReservedCodeCacheSize=150M
etc/config.properties
包含 Presto Server 相關的配置,每個 Presto Server 能夠通時做爲 coordinator 和 worker 使用。oop
coordinator=true node-scheduler.include-coordinator=true http-server.http.port=8090 discovery-server.enabled=true discovery.uri=http://cdh1:8090
參數說明:性能
coordinator
:Presto 實例是否以 coordinator 對外提供服務node-scheduler.include-coordinator
:是否容許在 coordinator 上進行調度任務http-server.http.port
:HTTP 服務的端口discovery-server.enabled
:是否使用 Discovery service 發現集羣中的每個節點。discovery.uri
:Discovery server 的 url不要加這條配置task.max-memory=1GB,否則會報錯,具體不知道爲何解析有問題。
etc/log.properties
能夠設置某一個 java 包的日誌等級:
com.facebook.presto=INFO
關於 Catalog 的配置,首先須要建立 etc/catalog 目錄,而後根據你想使用的鏈接器來建立對應的配置文件,好比,你想使用 jmx 鏈接器,則建立 jmx.properties:
connector.name=jmx
若是你想使用 kudu 的鏈接器,則在 etc/catalog 建立 kudu.properties:
connector.name=kudu kudu.client.master-addresses=localhost:7051
能夠看到在presto的根目錄下有不少鏈接器:
這裏咱們啓動一下sudo bin/launcher run,sudo bin/launcher start可與後臺運行
而後咱們可使用presto-cli-0.225-executable.jar來操做,固然我把這麼長的jar縮短一下改爲presto-cli,爲了方面用
./presto-cli --server localhost:8090 --catalog kudu --schema default
上面那那個users是我這樣建立的:
而後像使用sql查詢同樣,插入兩條數據而且查詢:
未完待續,後面複雜的使用再寫!
參考: