Presto - 查询...没有可用的工作节点
Presto - Query ... No worker nodes available
使用 Amazon EMR、Hive .13、Hadoop 2.x 和 Presto Server 0.89。尝试设置 Presto 以查询通常通过 Hive 查询的数据。 Hive 元数据存储在 MySQL 中。 Presto Server 安装在所有节点上。大多数情况下,一切都按照 prestodb.io 上的记录进行设置。
我首先在所有节点(协调器和工作器)上启动服务器,然后在 coordinator/name 节点上启动 CLI。当我尝试使用以下命令 运行 查询时,出现 "Query ... No worker nodes available" 错误:
presto-cli presto-cli --server localhost:8080 --catalog jmx --schema default
presto:default> SELECT * FROM sys.node;
"Query ... No worker nodes available"
如果我在我的协调器 config.properties 文件中包含 node-scheduler.include-coordinator=true
,则此查询返回 1 个节点。
配置:
etc/config.properties(仅在协调器上)
coordinator=true
node-scheduler.include-coordinator=false
http-server.http.port=8080
task.max-memory=1GB
discovery-server.enabled=true
discovery.uri=http://aws.internal.ip.of.coordinator:8080
etc/config.properties(仅限工人)
coordinator=false
http-server.http.port=8080
task.max-memory=1GB
discovery.uri=http://aws.internal.ip.of.coordinator:8080
etc/catalog/hive.properties(所有节点)
connector.name=hive-hadoop2
hive.metastore.uri=thrift://aws.internal.ip.of.coordinator:9083
etc/catalog/jmx.properties(所有节点)
connector.name=jmx
etc/jvm.config(所有节点)
-server
-Xmx16G
-XX:+UseConcMarkSweepGC
-XX:+ExplicitGCInvokesConcurrent
-XX:+CMSClassUnloadingEnabled
-XX:+AggressiveOpts
-XX:+HeapDumpOnOutOfMemoryError
-XX:OnOutOfMemoryError=kill -9 %p
-XX:ReservedCodeCacheSize=150M
etc/log.properties
com.facebook.presto=INFO
etc/node.properties
node.environment=production
node.id=unique-uuid #used uuidgen
node.data-dir=/mnt/presto-data
我的一个简单错误导致这不是 运行。我的 aws.internal.ip.of.coordinator
IP 地址中有一个随机的分号而不是句点。查看我的配置,我只是没有看到它。
以上代码将在与上述类似的 Amazon EMR 多节点集群上运行。
使用 Amazon EMR、Hive .13、Hadoop 2.x 和 Presto Server 0.89。尝试设置 Presto 以查询通常通过 Hive 查询的数据。 Hive 元数据存储在 MySQL 中。 Presto Server 安装在所有节点上。大多数情况下,一切都按照 prestodb.io 上的记录进行设置。
我首先在所有节点(协调器和工作器)上启动服务器,然后在 coordinator/name 节点上启动 CLI。当我尝试使用以下命令 运行 查询时,出现 "Query ... No worker nodes available" 错误:
presto-cli presto-cli --server localhost:8080 --catalog jmx --schema default
presto:default> SELECT * FROM sys.node;
"Query ... No worker nodes available"
如果我在我的协调器 config.properties 文件中包含 node-scheduler.include-coordinator=true
,则此查询返回 1 个节点。
配置:
etc/config.properties(仅在协调器上)
coordinator=true
node-scheduler.include-coordinator=false
http-server.http.port=8080
task.max-memory=1GB
discovery-server.enabled=true
discovery.uri=http://aws.internal.ip.of.coordinator:8080
etc/config.properties(仅限工人)
coordinator=false
http-server.http.port=8080
task.max-memory=1GB
discovery.uri=http://aws.internal.ip.of.coordinator:8080
etc/catalog/hive.properties(所有节点)
connector.name=hive-hadoop2
hive.metastore.uri=thrift://aws.internal.ip.of.coordinator:9083
etc/catalog/jmx.properties(所有节点)
connector.name=jmx
etc/jvm.config(所有节点)
-server
-Xmx16G
-XX:+UseConcMarkSweepGC
-XX:+ExplicitGCInvokesConcurrent
-XX:+CMSClassUnloadingEnabled
-XX:+AggressiveOpts
-XX:+HeapDumpOnOutOfMemoryError
-XX:OnOutOfMemoryError=kill -9 %p
-XX:ReservedCodeCacheSize=150M
etc/log.properties
com.facebook.presto=INFO
etc/node.properties
node.environment=production
node.id=unique-uuid #used uuidgen
node.data-dir=/mnt/presto-data
我的一个简单错误导致这不是 运行。我的 aws.internal.ip.of.coordinator
IP 地址中有一个随机的分号而不是句点。查看我的配置,我只是没有看到它。
以上代码将在与上述类似的 Amazon EMR 多节点集群上运行。