1. 環(huán)境要求
- Mac OS X or Linux
- Java 8 Update 151 or higher (8u151+), 64-bit. Both Oracle JDK and OpenJDK are supported.
- Maven 3.3.9+ (for building)
- Python 2.4+ (for running with the launcher script)
githup:https://github.com/prestodb/presto
2.安裝
2.1 下載presto
https://prestodb.github.io/download.html
2.2安裝presto
官方安裝文檔:https://prestodb.github.io/docs/current/installation/deployment.html
2.1.1 解壓presto
#1.上傳文件至/opt/soft
rz -be presto-server-0.223.tar.gz
#2.解壓文件
tar -zxvf presto-server-0.223.tar.gz
#3.創(chuàng)建數(shù)據(jù)目錄及配置目錄
cd /opt/soft/presto-server-0.223
mkdir data && mkdir etc
2.2.2創(chuàng)建配置文件
presto的節(jié)點(diǎn)分為兩種coordinator(主節(jié)點(diǎn))蜓氨、worker(從節(jié)點(diǎn))
如果是搭建集群的話兩種節(jié)點(diǎn)都需要配置,如果只是搭建單節(jié)點(diǎn)presto測試的話那么只需要coordinator節(jié)點(diǎn)即可
presto的基礎(chǔ)配置文件大概有如下幾種
都放在剛創(chuàng)建的etc目錄下
配置文件 | 說明 |
---|---|
config.properties | presto服務(wù)配置 |
node.properties | 集群節(jié)點(diǎn)環(huán)境配置 |
jvm.config | JVM運(yùn)行參數(shù) |
log.properties | server日志級別 |
catalog*.properties | 數(shù)據(jù)源配置文件(如mysql.properties ) |
2.2.3主節(jié)點(diǎn)配置
如果只是搭建單節(jié)點(diǎn)presto測試的話那么只需要如下配置即可
config.properties
coordinator=true #是否主節(jié)點(diǎn)
node-scheduler.include-coordinator=true #coordinator節(jié)點(diǎn)是否作為任務(wù)執(zhí)行節(jié)點(diǎn)
http-server.http.port=9000 #端口
query.max-memory=20GB #最大使用內(nèi)存
query.max-memory-per-node=10GB #最大用戶內(nèi)存
query.max-total-memory-per-node=10GB`#最大用戶和系統(tǒng)內(nèi)存量 必須大于query.max-memory-per-node
discovery-server.enabled=true #discovery-server是否開啟
discovery.uri=http://ip:9000 #webui
node.properties
node.environment=presto_test #集群名稱
node.id=persto01 #節(jié)點(diǎn)名稱 必須唯一
node.data-dir=/opt/soft/presto-server-0.223/data #數(shù)據(jù)存儲目錄
jvm.config
-server
-Xmx16G
-XX:+UseConcMarkSweepGC
-XX:+ExplicitGCInvokesConcurrent
-XX:+CMSClassUnloadingEnabled
-XX:+AggressiveOpts
-XX:+HeapDumpOnOutOfMemoryError
-XX:OnOutOfMemoryError=kill -9 %p
-XX:ReservedCodeCacheSize=150M
log.properties
com.facebook.presto=INFO #server日志級別
2.2.4從節(jié)點(diǎn)配置
從節(jié)點(diǎn)配置只需要將主節(jié)點(diǎn)的config.properties澎胡、node.properties修改即可
config.properties
coordinator=false
http-server.http.port=9000
query.max-memory=20GB
query.max-memory-per-node=10GB
query.max-total-memory-per-node=10GB
discovery.uri=http://ip:9000
node.properties
node.environment=presto_test
node.id=persto02
node.data-dir=/opt/soft/presto-server-0.223/data
以上就是presto的基礎(chǔ)配置
2.2.5啟動presto
presto的啟動需要依賴其根目錄下的bin/launcher文件,實(shí)際時(shí)調(diào)用了bin/launcher.py文件
一共有如下命令 'run', 'start', 'stop', 'restart', 'kill', 'status'
run:是前臺啟動聂受、所有日志會在控制臺打印,Ctrl+C后停止進(jìn)程
start:的是臺啟動、直接顯示進(jìn)程id,可用過jps、ps -ef | grep presto等命令查看
這里為了方便排查presto是否成功安裝選擇前臺啟動
bin/launcher run
如果出現(xiàn)SERVER STARTED 代表成功啟動,否則對著報(bào)錯(cuò)信息調(diào)整環(huán)境及配置文件即可
3.連接mysql
Ctrl+C停掉之前的presto啟動進(jìn)程
在/opt/soft/presto-server-0.223/etc下新建catalog,并創(chuàng)建mysql.properties文件
mkdir /opt/soft/presto-server-0.223/etc/catalog
vim mysql.properties
#輸入如下內(nèi)容
connector.name=mysql
connection-url=jdbc:mysql://ip:3306?useUnicode=true&characterEncoding=UTF-8&useSSL=false&autoReconnect=true&failOverReadOnly=false
connection-user=username
connection-password=password
重新啟動presto,為了方便調(diào)試還是前臺啟動
bin/launcher run
如果出現(xiàn)上述內(nèi)容說明mysql連接配置成功,如果出現(xiàn)連接異常請檢查mysql.properties配置參數(shù)
4.執(zhí)行命令行
presto命令行需要下載額外的jar包
地址如下:https://repo1.maven.org/maven2/com/facebook/presto/presto-cli/0.224/presto-cli-0.224-executable.jar
在presto跟目錄新建cli目錄
#創(chuàng)建cli目錄
mkdir /opt/soft/presto-server-0.223/cli
#下載jar包
wget 'https://repo1.maven.org/maven2/com/facebook/presto/presto-cli/0.224/presto-cli-0.224-executable.jar'
#連接mysql schema 即為mysql的庫名
java -jar presto-cli-0.224-executable.jar --server ip:9000 --catalog mysql --schema data_tmp
#在命令行界面執(zhí)行sql;
show tables;
出現(xiàn)表信息代表mysql連接配置成功
q退出顯示
quit 退出命令行客戶端
如果是多個(gè)節(jié)點(diǎn)一樣的配置即可
5.客戶端連接
如果想直接以客戶端連接的話推薦dbeaver工具
5.1配置presto連接信息
進(jìn)行如上操作直接點(diǎn)擊完成即可自動下載jdbc驅(qū)動,下載過程可能會失敗,多試幾次即可
驅(qū)動下載完畢即可連接presto,然后就可以執(zhí)行查詢了
到此presto安裝及連接mysql測試結(jié)束,如果寫的有不對之處還望不吝指正