복붙노트

[HADOOP] Hive / SparkSQL에 대한 최대 절전 모드?

HADOOP

Hive / SparkSQL에 대한 최대 절전 모드?

MySQL에 연결하는 데 사용한 앱이 있고 최대 절전 모드가 있습니다. 이것처럼 :

<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>
       ...

이제 Hive / SparkSQL에 대신 연결하려면 이러한 속성에 해당하는 값은?

driver_class와 url (포트 10000을 사용한다고 가정)에 대한 아이디어가 있지만 방언은 무엇입니까?

<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

그런 다음 코드가 NullPointerException으로 실행됩니다. org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure () (4.2.0의 207 행. 최종).

나는 최대 절전 모드의 소스 코드를 다운로드하고 논리를 추적했다. 변수 앞에 몇 줄이 있기 때문에 예외가 발생했습니다. (방언 유형의) 방언이 138 행을 실행할 때 예외가 발생했습니다.

metaReportsDDLCausesTxnCommit = meta.dataDefinitionCausesTransactionCommit();

예외는

java.sql.SQLException: Method not supported

(위의 경고 메시지가 발생했습니다)

이것이 아파치 하이브와 함께 Hibernate를 사용할 수 없다는 것을 의미합니까? 이 경우에 해당하십시오. (내가 가진 것 같아 이 부분에 대한 Hibernate 구현을 바꾸려면) 그러나 나는 권위있는 대답을 알고 싶어합니다. 이에.

인터넷에서 나는 다음과 같은 강력한 증거를 찾을 수 없었다 사람들은 Apache Hive에서 Hibernate를 성공적으로 사용하고 있습니다.

해결법

  1. ==============================

    1.나는 내 자신의 질문에 대답하고 있습니다.

    나는 내 자신의 질문에 대답하고 있습니다.

    나는 최대 절전 모드에 대한 대답이 "아니오-Hive / SparkSQL에 대한 방언이 없다"고 생각합니다. 분명히 최대 절전 모드에서는 HiveServer2 (즉, Hive Metastore가 아님)가 지원되지 않습니다. 나는 현재 (2017-10-19) 현재 이것이 사실이라고 생각합니다 (95 % 신뢰).

    필자의 경우 코드를 다시 작성하고 Hibernate 코드를 대체하여 JDBC 코드를 대신 지시했습니다. 나는 간단한 DB 쿼리 (session.createSQLQuery ())가 심각한 ORM이 아니기 때문에 Hibernate 코드가 있었기 때문에 운이 좋았으므로 변경이 비교적 쉬웠다.

  2. from https://stackoverflow.com/questions/46739044/hibernate-dialect-for-hive-sparksql by cc-by-sa and MIT license