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



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

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

当我尝试执行下面的命令来访问配置单元目录时,它可以成功地打开presto cli。

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

但在通过presto cli查询时,我得到了以下错误。

presto:默认>展示表格;

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

将对此提供任何帮助

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

  • 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

最新更新