集群已有hdfs和hive
下载安装准备
使用的是prestosql,开源版本(非Facebook prestodb),支持docker(后续可采用)
jdk11:最新的333版本需要jdk11+,332需要jdk8u161+,321需要jdk8u151+,集群环境都不匹配,于是做了多版本jdk。
新建一个文件夹 presto-server
放置三个东西
#pwd:/root
mkdir presto-server
cd presto-server
#jdk11
wget https://code.aliyun.com/kar/oracle-jdk/raw/3c932f02aa11e79dc39e4a68f5b0483ec1d32abe/jdk-11.0.7_linux-x64_bin.tar.gz
#presto-server
wget https://repo1.maven.org/maven2/io/prestosql/presto-server/333/presto-server-333.tar.gz
#presto-cli
wget https://repo1.maven.org/maven2/io/prestosql/presto-cli/333/presto-cli-333-executable.jar
tar xzf jdk-11.0.7_linux-x64_bin.tar.gz
tar xzf presto-server-333.tar.gz
mv presto-cli-333-executable.jar presto
chmod +x presto
配置
将jdk环境变量放在 bin/launcher
这个shell脚本里,添加在exec之前
export JAVA_HOME=/root/presto-server/jdk-11.0.7
export JRE_HOME=$JAVA_HOME/jre
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=./:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:/root/presto-server/presto-server-333/lib
官方部署文档:https://prestosql.io/docs/current/installation/deployment.html
相关配置:
mkdir etc
# etc/node.properties
node.environment=dev
node.id=baisheng5
node.data-dir=/mnt/disk10/presto/data
# etc/config.properties
coordinator=true
node-scheduler.include-coordinator=true
http-server.http.port=8765
query.max-memory=160GB
query.max-memory-per-node=16GB
query.max-total-memory-per-node=22GB
discovery-server.enabled=true
discovery.uri=http://baisheng5:8765
# etc/jvm.config
-server
-Xmx32G
-XX:-UseBiasedLocking
-XX:+UseG1GC
-XX:G1HeapRegionSize=32M
-XX:+ExplicitGCInvokesConcurrent
-XX:+HeapDumpOnOutOfMemoryError
-XX:+UseGCOverheadLimit
-XX:+ExitOnOutOfMemoryError
-XX:ReservedCodeCacheSize=512M
-Djdk.attach.allowAttachSelf=true
-Djdk.nio.maxCachedBufferSize=2000000
# etc/log.properties
io.prestosql=INFO
# etc/catalog/hive.properties
connector.name=hive-hadoop2
hive.metastore.uri=thrift://baisheng6:9083
hive.config.resources=/etc/hdfs1/conf/core-site.xml,/etc/hdfs1/conf/hdfs-site.xml
打包scp到其他节点,修改 node.properties
的 node.id
成对应名字,修改 config.properties
成worker模式
运行
#先启动scheduler,再启动worker
./presto-server/presto-server-333/bin/launcher start
#cli连接到hive
./presto-server/presto --server baisheng5:8765 --catalog hive --schema default
UI界面:http://baisheng5:8765/ui/ 用户名:root,密码留空
一些坑
-
如果把scheduler停掉了没有先停worker的话,咋一看是没有问题,但是后续重启worker的时候一旦出现not running,running的,使用jps查看新启动是PID不同,证明老的worker没有停止,需要kill掉。
-
由于集群的HDFS是HA模式,必须手动指定hive.config.resource才能解析nameservice1的问题。