【问题标题】:nhibernate odbc connection stringnhibernate odbc 连接字符串
【发布时间】:2015-01-07 06:37:37
【问题描述】:

我需要使用 nHibernate 连接到 Hadoop 数据库。我正在尝试使用 NHibernate.Driver.OdbcDriver 来做到这一点。我们使用的驱动是 Cloudera ODBC Driver for Impala。

通过代码使用的连接字符串如下:

DRIVER=Cloudera ODBC Driver for Impala;
          Host=<Server>;
          Port=<port>;
          Schema=<schema>;
          AuthMech=0;
          CAIssuedCertNamesMismatch=0;
          TrustedCerts=C:\Program Files (x86)\Cloudera ODBC Driver for Impala\lib\cacerts.pem;

我想将此连接字符串保留在 nHibernate 配置中,因此添加了以下内容:

<property name="connection.driver_class">
            NHibernate.Driver.OdbcDriver
        </property>
        <property name="connection.connection_string">
          DRIVER=Cloudera ODBC Driver for Impala;
          Host=<Server>;
          Port=<port>;
          Schema=<schema>;
          AuthMech=0;
          CAIssuedCertNamesMismatch=0;
          TrustedCerts=C:\Program Files (x86)\Cloudera ODBC Driver for Impala\lib\cacerts.pem;
        </property>

但这会因 Exception 而失败:

Message=ERROR [IM002] [Microsoft][ODBC Driver Manager] 
Data source name not found and no default driver specified . 

请注意,如果没有 nHibernate,此连接字符串也可以正常工作。我错过了什么明显的东西?

【问题讨论】:

    标签: hadoop nhibernate odbc connection-string


    【解决方案1】:

    问题是应用程序是为 64 位配置构建的,而安装的驱动程序是 32 位的。更改配置并重新构建它,它工作。

    【讨论】:

      【解决方案2】:

      如果它对其他人有帮助;我安装了 x64 位驱动程序,文档说

      Driver=Cloudera Impala ODBC Driver;
      

      但 64 位 ODBC 管理器使用

      Driver=Cloudera ODBC Driver for Impala;
      

      一旦我切换到合适的名称,它就可以无缝运行

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-21
        • 1970-01-01
        相关资源
        最近更新 更多