故障排除JDBC、ODBC连接

学习如何解决砖JDBC和ODBC连接错误。

写的亚当Pavlacka

去年发表在:2022年8月15日

本文提供的信息来帮助你解决你的砖JDBC / ODBC的服务器之间的连接和BI工具和数据来源。

语句执行后获取结果集是缓慢的

查询执行后,您可以通过调用获取结果行next ()方法返回的结果集反复。这种方法触发请求司机节俭服务器获取一批行如果缓冲的疲惫。我们发现批量的大小显著影响性能。默认值在大多数的JDBC / ODBC驱动程序过于保守,我们建议您至少100000。联系BI工具提供者如果你不能访问这个配置。

在创建连接超时/异常

一旦服务器主机名,您可以从一个终端运行以下测试来检查连接到仓库。

curl https:// <服务器主机>:<口> / sql / protocolv1 / o / 0 / < cluster-id > - h“授权:基本美元(echo - n '标记:< personal-access-token > ' | base64)”

如果连接超时,请检查您的网络连接的设置是否正确。

TTransportException

如果响应包含一个TTransportException(预计错误)如下,这意味着网关正常运转,通过有效身份证件。如果你不能够联系相同的凭证,检查客户端使用正确配置和使用最新的辛巴司机(> = 2.6.22版):

< h2 > HTTP错误:500 < / h2 > < p >访问/ cliservice问题。原因:< pre > javax.servlet。ServletException: org.apache.thrift.transport.TTransportException < / pre > < / p >

引用临时视图

如果响应包含消息表或视图了火花…temp_view这意味着一个临时的观点是不正确的客户端应用程序中引用。辛巴有一个内部配置参数UseNativeQuery决定是否查询翻译之前提交到节俭服务器。默认情况下,参数设置为0,在这种情况下,辛巴可以修改查询。特别是,辛巴创建一个自定义#临时模式为临时视图和预计的客户机应用程序引用一个临时视图模式。你可以通过设置避免使用这种特殊的别名UseNativeQuery = 1从修改查询,从而防止辛巴。在这种情况下,辛巴节俭直接将查询发送到服务器。然而,客户端需要确保查询都写在火花预计的方言,即HiveQL。

总之,你有以下选项来处理临时视图在辛巴和火花:

  • UseNativeQuery = 0和参考视图在名字前面加上与#临时
  • UseNativeQuery = 1并确保查询写在方言,火花预计。

其他错误

  • 如果你得到这个错误401年未经授权检查您使用的凭证:
    < h2 > HTTP错误:401 < / h2 > < p >问题访问/ sql / protocolv1 / o / 0 /测试集群。原因:< >以前未经授权< / pre > < / p >
    如果您使用个人访问令牌验证,验证用户名令牌(而不是你的用户名)和密码个人访问令牌(与dapi标记应该开始)。
  • 反应,如404年,没有找到通常表明问题定位指定集群:
    < h2 > HTTP错误:404 < / h2 > < p >问题访问/ sql / protocolv1 / o / 0 / missing-cluster。原因:< pre > RESOURCE_DOES_NOT_EXIST:集群没有发现匹配:missing-cluster < / pre > < / p >
  • 如果你看到以下错误在您的应用程序log4j日志:
    log4j:“org.apache.log4j错误。FileAppender”对象不分配一个“com.simba.spark.jdbc42.internal.apache.log4j.Appender”变量。
    可以忽略这些错误。辛巴内部log4j图书馆是阴影,以避免冲突与log4j库在应用程序中。然而,辛巴可能仍然加载log4j配置您的应用程序,并尝试使用一些定制的log4j输出源。这次尝试失败的阴影图书馆。相关的信息仍然是捕获日志中。
这篇文章有用吗?