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

时间:2018-12-06 12:44:39

标签: google-cloud-platform presto google-cloud-dataproc

我使用带有可选组件presto的gcloud beta版创建了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:default>显示表格;

     

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

在此方面的任何帮助将不胜感激

1 个答案:

答案 0 :(得分:2)

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

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

假设您的集群名为presto-test,则命令应类似于

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

如果这不起作用,您可能需要仔细检查一下袜子代理和Presto是否正常运行。

  1. 运行curl -I -x socks5h://localhost:1080 presto-test-m:8088-它应该返回HTTP302。如果出现连接拒绝错误或找不到主机错误,则您的袜子代理无法正常工作。

  2. 运行gcloud beta dataproc clusters describe presto-test并检查以下行是否出现在输出中

    softwareConfig:
      optionalComponents:
      - PRESTO
    
  3. Ssh进入Presto群集的主节点,然后运行which prestosudo systemctl status presto来验证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