Presto-CLI java.net.SocketException:GCP中的连接被拒绝

问题描述 投票:2回答:1

我使用带有可选组件presto的测试版gcloud创建了数据集群。

gcloud beta dataproc clusters create presto-test --optional-components=PRESTO --image-version=1.3-deb9

当我尝试执行以下命令来访问hive目录时,它可以成功打开presto-cli。

./presto \
    --server presto-cluster-m-0:8080 \
    --socks-proxy localhost:1080 \
    --catalog hive \
    --schema default 

但是在查询presto-cli时我遇到了错误。

presto:default> show tables;

运行命令时出错:java.net.SocketException:连接被拒绝(连接被拒绝)

任何帮助将不胜感激

google-cloud-platform presto google-cloud-dataproc
1个回答
2
投票

可能需要对连接设置进行一些小修复。

  • 当作为可选组件运行时,Presto在端口8060上运行
  • 您的群集创建命令未在HA模式下创建群集,因此主服务器的主机名只是-m,而不是-m-0

假设您的群集名为presto-test,那么该命令应如下所示

./presto \
--server presto-test-m:8060 \
--socks-proxy localhost:1080 \
--catalog hive \
--schema default 

如果这不起作用,您可能需要仔细检查socks代理和Presto是否正确运行。

  1. 运行curl -I -x socks5h://localhost:1080 presto-test-m:8088 - 它应该返回HTTP 302.如果您收到连接拒绝错误或找不到主机错误,则您的socks代理无法正常工作。
  2. 运行gcloud beta dataproc clusters describe presto-test并检查输出中是否出现以下行 softwareConfig: optionalComponents: - PRESTO
  3. Ssh进入Presto集群的主节点并运行which prestosudo systemctl status presto以验证Presto已安装并正在运行。

存在一个已知问题,即在指定为可选组件时可能无法安装Presto(在这种情况下,上面的步骤2和3将显示未在群集上激活Presto)。这应该在下一个Dataproc版本中修复 - 如果您现在遇到此问题,请尝试使用此命令来创建集群:

gcloud beta dataproc clusters create presto-test --properties dataproc:dataproc.components.activate=presto --image-version=1.3-deb9
© www.soinside.com 2019 - 2024. All rights reserved.