Невозможно создать внешнюю таблицу Hive с помощью jdbcStorageHandler - PullRequest
0 голосов
/ 26 сентября 2019

Я запускаю небольшой кластер в Amazone EMR, чтобы поиграть с Apache Hive 2.3.5.Насколько я понимаю, Apache Hive может импортировать данные из удаленной базы данных и иметь кластер для выполнения запросов.Я следовал примеру, приведенному в веб-документации Apache Hive (https://cwiki.apache.org/confluence/display/Hive/JdbcStorageHandler)), и создал следующий код:

CREATE EXTERNAL TABLE hive_table
(
  col1 int,
  col2 string,
  col3 date
)
STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler'
TBLPROPERTIES (
    'hive.sql.database.type'='POSTGRES',
    'hive.sql.jdbc.driver'='org.postgresql.Driver',
    'hive.sql.jdbc.url'='jdbc:postgresql://<url>/<dbname>',
    'hive.sql.dbcp.username'='<username>',
    'hive.sql.dbcp.password'='<password>',
    'hive.sql.table'='<dbtable>',
    'hive.sql.dbcp.maxActive'='1'
);

Но я получаю следующую ошибку:

FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. java.lang.RuntimeException: MetaException(message:org.apache.hadoop.hive.serde2.SerDeException java.lang.IllegalArgumentException: Property hive.sql.query is required.)

Согласно документации, мне нужно указать либо «hive.sql.table», либо «hive.sql.query», чтобы указать, как получить данные из базы данных jdbc, но если я заменим hive.sql.table на hive.sql.запрос Я получаю следующую ошибку:

FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. java.lang.RuntimeException: MetaException(message:org.apache.hadoop.hive.serde2.SerDeException java.lang.IllegalArgumentException: No enum constant org.apache.hive.storage.jdbc.conf.DatabaseType.POSTGRES)

Я попытался найти решение в Интернете, и не похоже, чтобы кто-то испытывал те же проблемы, что и у меня. Нужно ли изменять файл конфигурации?или я что-то упустил в своем коде?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...