1、准备一个5节点的cassandra集群
略
node1,node2,node3,node4,node5
2、在node1上下载presto
wget https://repo1.maven.org/maven2/com/facebook/presto/presto-server/0.131/presto-server-0.131.tar.gz
3、解压缩
tar zxvf presto-server-0.131.tar.gz
mv presto-server-0.131 /presto
4、更改属主为nosql
chown nosql.nosql /presto
5、建立数据目录
mkdir /prestodata
chown nosql.nosql /prestodata
在node2、node3、node4、node5上也要建立
6、配置文件编辑
node.properties:每个节点的环境配置
jvm.config:jvm 参数
config.properties:配置 Presto Server 参数
log.properties:配置日志等级
Catalog Properties:Catalog 的配置
mkdir /presto/etc/
vim /presto/etc/node.properties
加入:
node.environment=production
node.id=1
node.data-dir=/prestodata
vim /presto/etc/jvm.config
加入:
-server
-Xmx2G
-XX:+UseConcMarkSweepGC
-XX:+ExplicitGCInvokesConcurrent
-XX:+CMSClassUnloadingEnabled
-XX:+AggressiveOpts
-XX:+HeapDumpOnOutOfMemoryError
-XX:OnOutOfMemoryError=kill -9 %p
-XX:ReservedCodeCacheSize=150M
vim /presto/etc/config.properties
加入:
coordinator=true
node-scheduler.include-coordinator=false
http-server.http.port=8080
discovery-server.enabled=true
discovery.uri=http://node1:8080
vim /presto/etc/log.properties
加入:
com.facebook.presto=INFO
vim /presto/etc/jmx.properties
加入:
connector.name=jmx
mkdir /presto/etc/catalog
vim /presto/etc/catalog/cassandra.properties
加入:
connector.name=cassandra
cassandra.contact-points=node2,node3,node4,node5
7、分发
scp -r /presto node2:/
scp -r /presto node3:/
scp -r /presto node4:/
scp -r /presto node5:/
前往node2、node3、node4、node5更改属主
chown nosql.nosql /presto -R
8、更改每个节点各自的配置文件
vim /presto/etc/node.properties
更改
node.id=2(node.id=3、4、5,建议使用uuid)
vim config.properties
更改:
coordinator=false
http-server.http.port=8080
discovery.uri=http://node1:8080
9、启动
先启动coordinator
在node1上
/presto/bin/launcher run
再启动worker
在node2/3/4/5上
/presto/bin/launcher run
10、其它
下载cli
wget https://repo1.maven.org/maven2/com/facebook/presto/presto-cli/0.100/presto-cli-0.100-executable.jar
mv presto-cli-0.100-executable.jar presto-cli
./presto-cli --server node1:8080 --catalog cassandra --schema default
输入SQL:
use mykeyspace;
select count(*) from users;