尝试使用独立的协调器/多个工作节点运行 Presto。Coordinator 节点启动,但无法向 Discovery 服务宣布自己(在同一节点上运行)。在另一个节点上启动 presto worker 也无法向 Discovery 服务宣布,因此当 qyerying: failed: No nodes available to run query时出现此问题。
协调器/发现节点配置:
coordinator=true
datasources=jmx
http-server.http.port=8000
presto-metastore.db.type=h2
presto-metastore.db.filename=var/db/MetaStore
task.max-memory=1GB
discovery-server.enabled=true
discovery.uri=http://10.0.0.11:8000
启动日志:
2013-11-11T16:54:57.999+0000 INFO main com.facebook.presto.server.PrestoServer ======== SERVER STARTED ========
2013-11-11T16:54:58.002+0000 ERROR Announcer-0 io.airlift.discovery.client.Announcer Cannot connect to discovery server for announce: Announcement failed with status code 404: <html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/>
<title>Error 404 Not Found</title>
</head>
<body>
<h2>HTTP ERROR: 404</h2>
<p>Problem accessing /v1/announcement/presto-coordinator. Reason:
<pre> Not Found</pre></p>
<hr /><i><small>Powered by Jetty://</small></i>
服务器似乎在端口 8000 上运行:
[root@ip-10-0-0-11 ~]# curl http://10.0.0.11:8000
<!DOCTYPE html>
<head>
<meta charset="utf-8">
...
<body>
<div class="container">
<div class="page-header">
<h1>Presto</h1>
</div>
...
PS 在 Azure 集群上看到同样的问题,看起来不是亚马逊或网络问题。
这是对这个问题的跟进,Presto 可以在同一节点上与 Coordinator/Worker 正常工作(但仍然存在上述问题)。