我正在尝试使用Airflow UI创建DB2 / DashDB连接。我尝试运行简单查询(在即席UI中),但总是得到相同的错误java.lang.RuntimeException:未找到类com.ibm.db2.jcc.DB2Driver.class以前有没有人需要在Apache Airflow中设置DB2 / DashDB连接?在网上找不到这方面的资料。谢谢
hgtggwj01#
可能是愚蠢的事情检查,但要确保你没有任何前导空格在连接url,驱动程序路径和驱动程序类。同样“气流”用户(或任何人正在运行气流进程应该有访问驱动程序路径。
bz4sfanl2#
如果您还没弄明白,我也遇到了同样问题经过一些调试,我发现www.example.com中的文件jdbc_hook.pyhttps://github.com/apache/incubator-airflow/blob/master/airflow/hooks/jdbc_hook.py#L55缺少jaydebeapi.connect方法调用中所需的1个参数。特别是缺少第二个参数,该参数应该是连接的URL。我将方法get_conn中的代码更改为以下代码进行了测试,结果成功了。
jdbc_hook.py
jaydebeapi.connect
get_conn
def get_conn(self): ...... conn = jaydebeapi.connect(jdbc_driver_name, host, driver_args=[str(login), str(psw)], jars=jdbc_driver_loc) return conn
请注意,host已加入至jaydebeapi.connect的呼叫。我想打开一个公关,但后来审查,他们已经在几个地方的东西(搜索jdbc在Airflow的公关):https://github.com/apache/incubator-airflow/pull/2227
host
jdbc
2条答案
按热度按时间hgtggwj01#
可能是愚蠢的事情检查,但要确保你没有任何前导空格在连接url,驱动程序路径和驱动程序类。同样“气流”用户(或任何人正在运行气流进程应该有访问驱动程序路径。
bz4sfanl2#
如果您还没弄明白,我也遇到了同样问题
经过一些调试,我发现www.example.com中的文件
jdbc_hook.py
https://github.com/apache/incubator-airflow/blob/master/airflow/hooks/jdbc_hook.py#L55缺少jaydebeapi.connect
方法调用中所需的1个参数。特别是缺少第二个参数,该参数应该是连接的URL。
我将方法
get_conn
中的代码更改为以下代码进行了测试,结果成功了。请注意,
host
已加入至jaydebeapi.connect
的呼叫。我想打开一个公关,但后来审查,他们已经在几个地方的东西(搜索
jdbc
在Airflow的公关):https://github.com/apache/incubator-airflow/pull/2227