临时有更改presto端口的需求,配置文件config.properties,
配置文件所在路径:/home/bigdata/local/presto/presto-data/etc
coordinator=true
node-scheduler.include-coordinator=falsehttp-server.http.port=8091query.max-memory=96GBquery.max-memory-per-node=16GBdiscovery-server.enabled=truediscovery.uri=http://hostname:8091#hostname:presto主节点
简单将8091替换为8095端口,用salt下发到所有的presto节点,然后出现presto服务不可用的情况。
1.查看presto的worker节点,日志中出现:
2017-12-05T18:12:35.394+0800 DEBUG Query-20171205_101235_00029_9p57n-243 com.facebook.presto.execution.QueryStateMachine Query 20171205_101235_00029_9p57n failed
com.facebook.presto.spi.PrestoException: No worker nodes available at com.facebook.presto.util.Failures.checkCondition(Failures.java:87) at com.facebook.presto.sql.planner.SystemPartitioningHandle.getNodePartitionMap(SystemPartitioningHandle.java:149) at com.facebook.presto.sql.planner.NodePartitioningManager.getNodePartitioningMap(NodePartitioningManager.java:105) at com.facebook.presto.execution.scheduler.SqlQueryScheduler.lambda$null$0(SqlQueryScheduler.java:140) at java.util.HashMap.computeIfAbsent(HashMap.java:1126) at com.facebook.presto.execution.scheduler.SqlQueryScheduler.lambda$new$1(SqlQueryScheduler.java:140) at com.facebook.presto.execution.scheduler.SqlQueryScheduler.createStages(SqlQueryScheduler.java:241) at com.facebook.presto.execution.scheduler.SqlQueryScheduler.<init>(SqlQueryScheduler.java:131) at com.facebook.presto.execution.SqlQueryExecution.planDistribution(SqlQueryExecution.java:434) at com.facebook.presto.execution.SqlQueryExecution.start(SqlQueryExecution.java:274) at com.facebook.presto.execution.QueuedExecution.lambda$start$1(QueuedExecution.java:62) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745)和
2017-12-05T18:31:37.551+0800 WARN http-worker-240 com.facebook.presto.execution.SqlTaskManager Switching coordinator affinity from x4cpe to tendi
2017-12-05T18:31:37.613+0800 WARN http-worker-239 com.facebook.presto.execution.SqlTaskManager Switching coordinator affinity from tendi to qgh2a2017-12-05T18:31:37.764+0800 WARN http-worker-240 com.facebook.presto.execution.SqlTaskManager Switching coordinator affinity from qgh2a to mfu69原因:worker节点配置文件错误,错把coordinator设置为true。这样就启动了多个master节点,导致master不断切换。
主节点的配置coordinator=true
worker节点的配置coordinator=false
重新替换后presto工作正常。
2.启动的worker节点数少于预期,部分work节点仍然无法启动。
日志中出现:
Caused by: java.net.BindException: Address already in use
常见错误,端口被其他应用占用。
使用lsof -i:8095 查看到tomcat在使用该接口(需切换到root用户下 )。