Ошибка при взаимодействии от улья до друида - PullRequest
0 голосов
/ 14 октября 2019

Я пытаюсь создать источник данных Druid из Hive и использую для него таблицу Hive.

Сначала я создал базу данных Hive: database_hive Затем я создал таблицу в этой базе данных. .

CREATE TABLE database_hive.hive_table (
    timemachine int,
    userId String,
    lang String,
    location String,
    name String,
    network String,
    posted String,
    sentiment String,
    text String,
);

Во второй раз я пытаюсь использовать hive_table для создания нового источника данных на Druid.

SET hive.druid.broker.address.default = 10.1.123.30:8082; --fake ip for example
SET hive.druid.metadata.username = druid;
SET hive.druid.metadata.password = druidpassword;
SET hive.druid.metadata.db.type = derby;
SET hive.druid.metadata.uri = jdbc:mysql://10.1.123.30:3306/druid?createDatabaseIfNoExist=true;

CREATE TABLE druid_table
STORED BY 'org.apache.hadoop.hive.druid.DruidStorageHandler'
TBLPROPERTIES (
    "druid.segment.granularity" = "MONTH",
    "druid.query.granularity" = "DAY")
    AS
    SELECT
    cast(timemachine as timestamp) as `__time`,   
    cast(userId as string) userId,
    cast(lang as string) lang,
    cast(location as string) location,
    cast(name as string) name,
    cast(network as string) network,
    cast(posted as string) posted,
    cast(sentiment as string) sentiment,
    cast(text as string) text
    FROM hive_table
;

Этот запрос возвращает мне ошибку:

Error: Error while processing statement: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. org.skife.jdbi.v2.exceptions.UnableToObtainConnectionException: java.sql.SQLException: Cannot create JDBC driver of class 'org.apache.derby.jdbc.ClientDriver' for connect URL 'jdbc:mysql://10.1.123.30:3306/druid?createDatabaseIfNoExist=true' (state=08S01,code=1)

В моем репозитории Hive у меня есть mysql-connector-java.jar, поэтому я не понимаю, в чем проблема. Я пробовал некоторые предложения, которые я прочитал на другие темы, но я не нашел решения. У кого-то есть предложения?

Спасибо за помощь!

1 Ответ

1 голос
/ 14 октября 2019

Проблема в конфигурации базы данных метаданных Druid. Hive необходим доступ к реляционной базе данных, которую Druid использует для хранения всех метаданных. Он может быть установлен на derby на стороне друида, но Derby похож на SQLite, поэтому Hive не может получить к нему доступ. Таким образом, Hive не допускает derby в качестве допустимого аргумента для свойства hive.druid.metadata.db.type. Допустимы только mysql и postgresql.

. Чтобы решить эту проблему, вам необходимо:

  • Убедитесь, что ваш кластер Druid использует MySQL или PSQL для хранения метаданных
  • Установите hive.druid.metadata.db.type для правильного типа дБ
  • Установите hive.druid.metadata.uri для правильного URL базы данных
...