1 部署 JDK7
/usr/local/jdk7
2 待下载软件列表:
presto-server:
discovery-server:
presto-cli-executable:
3 准备工作
# mkdir -p /opt/presto /opt/presto/data /opt/presto/config
|
4 安装discovery-server
下载完成后,选择一台机器部署discovery-server,用来处理集群发现
# cd /opt/presto
# tar xvf /root/discovery-server-
1.16
.tar.gz
# ln -s discovery-server-
1.16
discovery-server
# mkdir config/discovery-server
# cd discovery-server
# ln -s ../config/discovery-server etc
|
编辑配置文件:
node.environment=production
node.id=ffffffff-
0000
-
0000
-
0000
-ffffffffffff
node.data-dir=/opt/presto/data/discovery/
|
http-server.http.port=
8411
|
-server
-Xmx1G
-XX:+UseConcMarkSweepGC
-XX:+ExplicitGCInvokesConcurrent
-XX:+AggressiveOpts
-XX:+HeapDumpOnOutOfMemoryError
-XX:OnOutOfMemoryError=kill -
9
%p
|
修改启动脚本,在exec一行之前加上
PATH=/usr/local/jdk7/bin/:$PATH
|
5 安装presto-coordinator 和 presto-worker
coordinator是管事的,worker是干活的
找台机器
# cd /opt/presto
# tar xvf /root/presto-server-
0.54
.tar.gz
# ln -s presto-server-
0.54
presto-server
# mkdir config/presto-coordinator config/presto-worker
|
在coordinator上
# cd presto-server
# ln -s ../config/presto-coordinator etc
|
worker上
# cd presto-server
# ln -s ../config/presto-worker etc
|
公用的配置:
-server
-Xmx16G
-XX:+UseConcMarkSweepGC
-XX:+ExplicitGCInvokesConcurrent
-XX:+CMSClassUnloadingEnabled
-XX:+AggressiveOpts
-XX:+HeapDumpOnOutOfMemoryError
-XX:OnOutOfMemoryError=kill -
9
%p
-XX:PermSize=150M
-XX:MaxPermSize=150M
-XX:ReservedCodeCacheSize=150M
|
com.facebook.presto=DEBUG
|
node.environment=production
node.id=ffffffff-
0000
-
0000
-
0000
-ffffffffffff
node.data-dir=/opt/presto/data/discovery/
|
确保每台机器node.id都不一样
catalog配置:
connector.name=jmx
|
connector.name=hive-cdh4
hive.metastore.uri=thrift:
//hadoop4.lecai.com:9083
hive.config.resources=/etc/hadoop/conf/core-site.xml,/etc/hadoop/conf/hdfs-site.xml
|
如果CDH使用了nameservice HA,一定要包含最后一行的配置,否则可能会报主机名找不到。有这行配置的前提是所在的服务器是hadoop的节点机。
coordinator的配置
coordinator=
true
datasources=jmx
http-server.http.port=
28282
presto-metastore.db.type=h2
presto-metastore.db.filename=/opt/presto/data/presto/var/db/MetaStore
task.max-memory=1GB
discovery-server.enabled=
true
discovery.uri=http:
//hadoop4.lecai.com:8411
|
worker的配置
coordinator=
false
datasources=jmx,hive-cdh4
http-server.http.port=
28282
presto-metastore.db.type=h2
presto-metastore.db.filename=/opt/presto/data/presto/var/db/MetaStore
task.max-memory=1GB
discovery.uri=http:
//hadoop4.lecai.com:8411
|
按官方的说法,coordinator的datasource不要加hive-cdh4,这样coordinator能高效地coordinates。
datasource的名字就是catalog配置的文件名。
修改启动脚本,在exec一行之前加上
PATH=/usr/local/jdk7/bin/:$PATH
|
6 启动程序
由于launch脚本都已经加上了JDK7的环境变量设置,所以所有的都是使用
# ./bin/launch start
|
就行了
如果要以非daemon方式工作,使用
# ./bin/launch run
|
7 使用CLI客户端
/usr/local/jdk7/bin/java -jar /root/presto-cli-
0.54
-executable.jar --server hadoop4.lecai.com:
28282
--catalog hive-cdh4 --schema lecai_stats_source
|
功能很有限,速度还行
presto:lecai_stats_source> help
Supported commands:
QUIT
EXPLAIN [FORMAT {TEXT | GRAPHVIZ}] <query>
DESCRIBE <table>
SHOW COLUMNS FROM <table>
SHOW FUNCTIONS
SHOW SCHEMAS
SHOW PARTITIONS FROM <table> [WHERE ...] [ORDER BY ...] [LIMIT n]
SHOW TABLES [LIKE <pattern>]
|
8 故障排查
新装的时候data目录清空就好,免得出问题。升级的时候可以重新link目录。