gpt4 book ai didi

hive - Airflow HiveCliHook 连接到远程配置单元集群?

转载 作者:行者123 更新时间:2023-12-04 17:43:10 25 4
gpt4 key购买 nike

我正在尝试从 Airflow 的本地副本连接到我的 Hive 服务器,但 HiveCliHook 似乎正在尝试连接到我的 Hive 本地副本。

我正跑到下面来测试它:

import airflow
from airflow.models import Connection
from airflow.hooks.hive_hooks import HiveCliHook

usr = 'myusername'
pss = 'mypass'

session = airflow.settings.Session()
hive_cli = session.query(Connection).filter(Connection.conn_id == 'hive_cli_default').all()[0]

hive_cli.host = 'hive_server.test.mydomain.com'
hive_cli.port = '9083'
hive_cli.login = usr
hive_cli.password = pss
hive_cli.schema = 'default'

session.commit()

hive = HiveCliHook()

hive.run_cli("select 1")

这是抛出这个错误:

[2018-11-28 13:23:22,667] {base_hook.py:83} INFO - Using connection to: hive_server.test.mydomain.com
[2018-11-28 13:24:50,891] {hive_hooks.py:220} INFO - hive -f /tmp/airflow_hiveop_2Fdl2I/tmpBFoGp7
[2018-11-28 13:24:55,548] {hive_hooks.py:235} INFO - Logging initialized using configuration in jar:file:/usr/local/apache-hive-2.3.4-bin/lib/hive-common-2.3.4.jar!/hive-log4j2.properties Async: true
[2018-11-28 13:25:01,776] {hive_hooks.py:235} INFO - FAILED: SemanticException org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient

有人知道我哪里出错了吗?

最佳答案

  • 虽然您可以使用 HiveCliOperator(未更改)在远程中连接和执行 HQL 语句> Hive-Server,唯一的要求是运行 Airflowbox worker 还必须包含 Hive 安装二进制文件

  • 这是因为 hive-cli command prepared by HiveCliHook将通过古老的 bashworker machine 中运行。 At this stage ,如果 Hive CLI 没有安装在运行此代码的机器(即您的 Airflow worker)中,它将像您的情况一样中断


直接的解决方法是实现您自己的 RemoteHiveCliOperator

  • 创建一个 SSHHook到远程 Hive 服务器机器
  • 并通过 SSHHook 执行您的 HQL 语句,如 this

事实上,这似乎是几乎所有 Airflow Operator 的普遍缺点,默认情况下,他们希望在每个 worker 中安装必要的包。 docs警告一下

For example, if you use the HiveOperator, the hive CLI needs to be installed on that box

关于hive - Airflow HiveCliHook 连接到远程配置单元集群?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53528673/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com