当前位置: 首页 > 知识库问答 >
问题:

GCP dataproc与presto-有没有一种方法来运行查询远程通过python使用pyhive?

吉玉石
2023-03-14

我试图运行查询的presto集群我有运行在dataproc-通过python(使用presto从pyhive)在我的本地机器上。但是我似乎不知道主机的网址。GCP dataproc是否允许远程访问presto集群?

我试着在Presto的网络用户界面上使用网址,但那也不起作用。我还检查了关于使用Python云客户端库的文档。也没什么帮助https://cloud.google.com/dataproc/docs/tutorials/python-library-example

from pyhive import presto

query = '''select * FROM system.runtime.nodes'''

presto_conn = presto.Connection(host={host}, port=8060, username ={user})
presto_cursor = presto_conn.cursor()
presto_cursor.execute(query)

错误

ConnectionError: HTTPConnectionPool(host='https', port=80): Max retries exceeded with url: {url}
(Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fb41c0c25d0>: Failed to establish a new connection: [Errno 8] nodename nor servname provided, or not known'))

更新我能够在GCP计算上手动创建虚拟机,配置trino并设置防火墙规则和负载均衡器,以便能够访问群集。

必须检查dataproc是否允许类似配置。

共有1个答案

章城
2023-03-14

看起来谷歌防火墙正在阻止来自外部世界的连接。

只允许从IP访问端口8060到dataproc群集。

如果您使用的是公共IP地址,这可能无法扩展,但将允许您进行开发。

将“大数据”服务暴露在整个互联网面前是一个坏主意。你可能会被黑客攻击,谷歌会关闭这项服务。

创建一个小实例(一个来自空闲层),将SSH端口公开给inernet,并使用端口转发。

您的URL不会被删除https://dataproc-cluster:8060...但是https://localhost:forwarded_port

这很容易做到,您可以在不需要时关闭bastion vm。

 类似资料:
  • 问题内容: 我有一个查询,看起来像这样: 这就是我将数据显示给我的方式。 我正在尝试使用此处指定的分页,但无法解决。 有没有一种方法可以通过使用组合查询游标来对查询进行分页?这有可能吗? 问题答案: 正如@FrankvanPuffelen在您之前的问题]中已经回答的那样,您无法实现这一点,因为在您的情况下,您应该将2个不同的查询(和)传递给单个适配器,而使用不能实现。您可以将第一个查询或第二个查询

  • 我想在PHP中使用Elastic来处理来自我网站的搜索请求。例如,我有搜索参数 但是不应该总是搜索所有参数。 所以可能只有(< code >姓名和< code >年龄)有值,而(< code >身高和< code >体重)没有值。 有没有办法构建一个具有灵活/不断变化的输入值的查询? 当没有(和)的搜索值时,下面的查询将不起作用。

  • 我正在用SpringBoot构建一个应用程序。我有一个存储库,我通过以下方式从方法名称创建查询: 这样的查询可以工作,方法调用的结果是具有该名称的用户。在Spring Boot中是否可以按名称创建查询,其中输入是名称列表,输出是用户列表,其中每个用户至少对应于列表中的一个名称?例如: 我也试过这样的方法,但是行不通。

  • 问题内容: 我有一个这样的html代码段: html中此元素的唯一唯一标识是attribute ,因此我想使用 某种 Pythonselenium 方法 来定位它,如下所示: 我已经检查了selenium(python)文档以查找元素, 但是没有获得关于如何通过attr 定位此elem的线索。有没有在pythonselenium中找到该元素的明确方法? 问题答案: 您可以 通过xpath 获取它并

  • 问题内容: 我正在使用GhostDriver的Java绑定对PhantomJS运行Selenium接受测试。 如果PhantomJS请求的网页之一通过console.log登录到Javascript控制台,是否可以捕获或查看这些消息? 我想这的答案很简单,但我无法解决! 问题答案:

  • 问题内容: 现在我正在做: 有没有更有效的方法直接从Find(或其他搜索功能)中获取带有用户名的slice,而没有struct和range循环? 问题答案: MongoDB的结果始终是文档列表。因此,如果要获取值列表,则必须像以前一样手动将其转换。 使用自定义类型(源自) 另外请注意,如果您要创建自己的类型(从派生),则可以覆盖其取消编组逻辑,并仅从文档中“提取” 。 它看起来像这样: 然后将用户