如何让 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))"
我启动了一个 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))"