私はMySQL
への接続に使用するアプリを持っている、と私はこのようにそれのためにHibernate
設定 を持っている:私は代わりにHive/SparkSQL
に接続したい場合は、何がこれらのプロパティの 同等の値でしょう今Hive/SparkSQLのためのHibernate方言?
<hibernate-configuration>
<session-factory>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://somehost:3306/some_db</property>
...
あれ?
私は(我々はポート10000
を使用していると仮定)driver_class
とurl
上のいくつかのアイデアを持っているが、dialect
は何をすべきですか?
<property name="hibernate.connection.driver_class">org.apache.hive.jdbc.HiveDriver</property>
<property name="hibernate.connection.url">jdbc:hive2://someHost:10000</property>
更新
私は多くの異なる値を試みたが、それらのどれも動作しません。 (私はちょうど試行錯誤をしていた ので、ここでは、Apache Hiveのインストールが使用するメタストア何かを見つけるために は至っていない)
org.hibernate.dialect.MySQLDialect
org.hibernate.dialect.MySQLInnoDBDialect
org.hibernate.dialect.DerbyDialect
org.hibernate.dialect.DerbyTenFiveDialect
org.hibernate.dialect.Oracle10gDialect
org.hibernate.dialect.H2Dialect
org.hibernate.dialect.Dialect
私はすべての場合には、 休止状態からの警告があることに気づきましたそれは言った:
WARN JdbcServicesImpl,main:160 - \
HHH000341: Could not obtain connection metadata : \
Method not supported
そしてコードがorg.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure()
にNullPointerException
に(4.2.0.Finalでライン207)を実行します。
私はHibernateのソースコードをダウンロードし、ロジックをトレースしました。 例外が発生したため、先にいくつかのライン(タイプDialect
の) dialect
がnull
による にあると決定された変数ライン138を実行しようとしたときにキャッチされた例外:
metaReportsDDLCausesTxnCommit = meta.dataDefinitionCausesTransactionCommit();
例外で
(上記の警告メッセージの原因となった)java.sql.SQLException: Method not supported
ん私はを使用することはできませんを意味していますApache Hiveを使用した? これが当てはまる場合は、それになります。 (私はこの部分のHibernate
実装を交換するために を持っていると思います) しかし、私は正式な答え を知りたいのです。
インターネットでは、 人がApache HiveでHibernate
を正常に使用しているという強力な証拠を見つけることができませんでした。
Hastメタストア(SparkSQLなど)のみを気にする場合は、メタストアが使用する内容に応じてMysql、Oracle10、Derby、またはPostgresの方言を使用できます。 –
@ cricket_007 - ありがとう!メタストアが使用するものをどのように知ることができますか? (これはあまりにも無知に聞こえる場合は申し訳ありません - このデータレイクは他の誰かによって設定されています。)実行できるコマンドはありますか?または私が見上げることができるファイル? – leeyuiwah
通常、私はhive-site.xmlファイルと 'jdo'を含むいくつかのプロパティを見つけようとします。 SparkSQLがHiveServer2との会話にJDBCを使用していないということを私はあなたが必要としていることを示唆しているわけではありません。 –