我正在尝试使用Airflow UI创建DB2 / DashDB连接。我添加了db2jcc4.jar驱动程序并提供了路径以及类名com.ibm.db2.jcc.DB2Driver.class
我尝试运行一个简单的查询(在ad hoc UI中)并始终得到相同的错误
java.lang.RuntimeException:找不到类com.ibm.db2.jcc.DB2Driver.class
之前是否有人需要在Apache Airflow中设置DB2 / DashDB连接?
网上没有发现任何相关信息。
由于
答案 0 :(得分:0)
检查可能是愚蠢的事情,但请确保在连接URL,驱动程序路径和驱动程序类中没有任何前导空格。此外,“气流”用户(或正在运行气流过程的用户应该可以访问驱动程序路径。
答案 1 :(得分:0)
如果您还没有想到这一点,我遇到了同样的问题。
通过一些调试,我发现文件jdbc_hook.py
在这里https://github.com/apache/incubator-airflow/blob/master/airflow/hooks/jdbc_hook.py#L55
缺少jaydebeapi.connect
方法调用中预期的1个参数。
特别是缺少第二个参数,它应该是连接的URL。
我将方法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
的调用中。
我正在考虑开设PR,但随后进行审核,他们已经在几个地方找到了一些东西(在Airflow的PR中搜索jdbc
):