官网下载安装包
–https://prestodb.io/getting-started/
– presto-server-0.286.tar.gz
–上传到指定目录
- 解压
tar -zvxf presto-server-0.286.tar.gz
mv presto-server-0.286/ /opt/module/
rm -rf presto-server-0.286.tar.gz
server配置
persto-server启动需要node.properties、jvm.config、config.properties、log.properties以及连接数据源catalog配置(以下所有的配置都在etc目录下)
- 创建目录
mkdir etc # 用来存放配置文件
mkdir data # 用于存放日志和其他数据文件
etc下新建node.properties配置文件
vim node.properties
#环境名称,自己任取.集群中的所有 Presto 节点必须具有相同的环境名称.
node.environment=production
#支持字母,数字.对于每个节点,这必须是唯一的.这个标识符应该在重新启动或升级 Presto 时保持一致
node.id=1
#指定 presto 的日志和其它数据的存储目录,自己创建前面创建好的数据目录
node.data-dir=/opt/module/presto-server-0.286/data
新建jvm.config配置文件
vim jvm.config
-server
#最大 jvm 内存
-Xmx8G #根据本地内存进行设置
#指定 GC 的策略
-XX:+UseG1GC
-XX:G1HeapRegionSize=32M
-XX:+UseGCOverheadLimit
-XX:+ExplicitGCInvokesConcurrent
-XX:+HeapDumpOnOutOfMemoryError
-XX:+ExitOnOutOfMemoryError
-XX:ReservedCodeCacheSize=256M
创建config.properties
vim config.properties
#该节点是否作为 coordinator,如果是 true 就允许该 Presto 实例充当协调
coordinator=true
#是否允许在协调器上调度工作(单节点为true,多节点为false)
node-scheduler.include-coordinator=true
#指定 HTTP 服务器的端口.Presto 使用 HTTP 进行所有内部和外部通信
http-server.http.port=8088
#每个查询可以使用的最大分布式内存量
query.max-memory=8GB
#查询可在任何一台计算机上使用的最大用户内存量
query.max-memory-per-node=1GB
#查询可在任何一台计算机上使用的最大用户和系统内存量,其中系统内存是读取器,写入器和网络缓冲区等在执行期间使用的内存
query.max-total-memory-per-node=2GB
#discover-server 是 coordinator 内置的服务,负责监听
discovery-server.enabled=true
#发现服务器的 URI.因为已经在 Presto 协调器中启用了 discovery,所以这应该是 Presto 协调器的 URI
discovery.uri=http://hadoop102:8088
日志级别配置文件
vim log.properties
com.facebook.presto = INFO
分发到另外两个节点并修改配置
xsync presto-server-0.286/
# hadoop103(hadoop104也同理修改)
vim node.properties
node.id=2 #根据节点修改
vim config.properties
# 修改以下3点
coordinator=false
#node-scheduler.include-coordinator=true
#workerdiscovery-server.enabled=true
连接配置
etc目录下
mkdir catalog
hive配置
# 将hive的配置文件复制一份到hadoop下
cp /opt/module/hive/conf/hive-site.xml /opt/module/hadoop-3.1.3/etc/hadoop/
vim hive.properties
connector.name=hive-hadoop2
hive.metastore.uri=thrift://hadoop102:9083
hive.config.resources=/opt/module/hadoop-3.1.3/etc/hadoop/core-site.xml,/opt/module/hadoop-3.1.3/etc/hadoop/hive-site.xml,/opt/module/hadoop-3.1.3/etc/hadoop/hdfs-site.xml
MySQL配置
vim mysql.properties
#设置MySQL连接名称
connector.name=mysql
#设置MySQL连接地址
connection-url=jdbc:mysql://hadoop102:3306?characterEncoding=utf8&serverTimezone=UTC
#设置MySQL登录用户
connection-user=root
#设置MySQL登录密码
connection-password=000000
将配置分发到其他节点
xsync catalog/
启动
bin/launcher start #是用于在后台启动应用程序的命令
bin/launcher run #是用于在前台启动应用程序的命令
bin/launcher stop
- 查看是否启动成功
日志文件
进程 ps aux | grep presto
http://hadoop102:8088/ui/
问题记录
- 启动问题一:
errors:
1) Error: Invalid configuration property node.environment: is malformed (for class com.facebook.airlift.node.NodeConfig.environment)
2) Configuration property 'server.http.port' was not used
at com.facebook.airlift.bootstrap.Bootstrap.lambda$initialize$2(Bootstrap.java:244)
3) Configuration property 'workerdiscovery-server.enabled' was not used
at com.facebook.airlift.bootstrap.Bootstrap.lambda$initialize$2(Bootstrap.java:244)
3 errors
com.google.inject.CreationException: Unable to create injector, see the following errors:
1) Error: Invalid configuration property node.environment: is malformed (for class com.facebook.airlift.node.NodeConfig.environment)
2) Configuration property 'server.http.port' was not used
at com.facebook.airlift.bootstrap.Bootstrap.lambda$initialize$2(Bootstrap.java:244)
3) Configuration property 'workerdiscovery-server.enabled' was not used
at com.facebook.airlift.bootstrap.Bootstrap.lambda$initialize$2(Bootstrap.java:244)
3 errors
at com.google.inject.internal.Errors.throwCreationExceptionIfErrorsExist(Errors.java:543)
at com.google.inject.internal.InternalInjectorCreator.initializeStatically(InternalInjectorCreator.java:159)
at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:106)
at com.google.inject.Guice.createInjector(Guice.java:87)
at com.facebook.airlift.bootstrap.Bootstrap.initialize(Bootstrap.java:251)
at com.facebook.presto.server.PrestoServer.run(PrestoServer.java:143)
at com.facebook.presto.server.PrestoServer.main(PrestoServer.java:85)
-
(2)‘server.http.port’
-
原因:port名称不全
-
(3)workerdiscovery-server.enabled
修改配置文件为discovery-server.enabled -
启动问题二:
(base) [link999@hadoop102 presto-server-0.286]$ bin/launcher start
ERROR: [Errno 13] Permission denied: '/opt/module/presto-server-0.286/data/var/run/launcher.pid'
修改文件夹的用户和组,及权限
[root@hadoop102 presto-server-0.286]# chown -R link999:link999 /opt/module/presto-server-0.286/data
[root@hadoop102 presto-server-0.286]# chmod 777 /opt/module/presto-server-0.286/data
- 问题三:
- 有时候修改配置文件重新启动前,可以删掉var文件夹
参考
https://blog.csdn.net/qq_35754073/article/details/131536827
https://blog.csdn.net/weixin_42412601/article/details/112595357
https://zhuanlan.zhihu.com/p/587906011?utm_id=0