如何让 Dataproc 将 Python-Hive 连接检测为 Yarn 作业?

How to make Dataproc detect Python-Hive connection as a Yarn Job?

我启动了一个 Dataproc 集群并在其上运行 Hive。从我使用 Pyhive 或 PyODBC 的任何机器远程连接到 Hive 并执行操作。这不仅仅是一个查询。它可能是一个带有间歇性查询的长时间会话。 (查询本身有问题,另行询问。)

即使在单个活动查询期间,该操作也不会在仪表板上显示为“作业”(我猜是 Yarn)。相反,当我通过 Pyspark“提交”任务时,它们显示为“工作”。

除了缺乏任务可见性之外,我还怀疑 w/o 一个作业,集群可能无法可靠地检测到 Python 客户端“连接”到它,因此集群的自动删除可能会过早启动。

有没有办法“注册”一个工作来伴随我的 Python 会话,并在我选择的时间 cancel/delete 该工作?就我而言,这是一个什么都不做的“虚拟”、“名义”工作。

或者也许有更合适的方法让 Yarn 检测我的 Python 客户端的连接并为其创建作业?

谢谢。

目前不支持此功能,您需要通过 Dataproc Jobs API 提交作业,以使其在作业 UI 页面上可见,并被集群 TTL 功能考虑在内。

如果您不能使用 Dataproc 作业 API 来执行您的实际作业,那么您可以提交一个虚拟的 Pig 作业,它会休眠所需的时间(在下面的示例中为 5 小时)以防止集群删除最多空闲时间功能:

gcloud dataproc jobs submit pig --cluster="${CLUSTER_NAME}" \
    --execute="sh sleep $((5 * 60 * 60))"