我使用带有可选组件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是否正确运行。
运行
curl -I -x socks5h://localhost:1080 presto-test-m:8088
-它应该返回HTTP 302。如果您收到拒绝连接错误或找不到主机错误,则说明您的socks代理无法正常工作。运行
gcloud beta dataproc clusters describe presto-test
并检查输出中是否出现以下行softwareConfig: optionalComponents: - PRESTO
Ssh到Presto集群的主节点,并运行
which presto
和sudo 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