Не удалось создать подключаемый модуль хранилища apache-drill

Я пытался создать конфигурацию плагина хранилища в apache-drill (1.6) для oracle jdbc. Я уже скопировал ojdbc7.jar в каталог apache-drill-1.6.0/jars/3rdparty.

Но получаю ошибку

Повторите попытку: ошибка (невозможно создать/обновить хранилище)

при попытке создать плагин хранилища!

Вот конфигурация плагина хранилища:

   {
      "type": "jdbc",
      "driver": "oracle.jdbc.OracleDriver",
      "url": "jdbc:oracle:thin:username/[email protected]:1521:***",
      "enabled": true
    }

и вот файл drill-override.conf:

drill.exec: {
  cluster-id: "drillbits1",
  zk.connect: "localhost:2181",
  sys.store.provider.local.path="/data/drill"
}

Я перезапустил сверло после копирования файла ojdbc7.jar в сторонний каталог сверла!

Я обнаружил некоторые похожие проблемы здесь, в stackoverflow.. ( сбой хранилища_плагина & drill-1.3&Oracle jdbc) Но у меня ничего не получилось!!

Вы имеете какое-нибудь представление об этом?

[Я использую apache-drill версии 1.6 в распределенном режиме, centOS 7 и java_version 1.8]


person Arun Ramachandran    schedule 29.04.2016    source источник
comment
Я уверен, что вы должны были подтвердить свои учетные данные, и ваш пароль не содержит @. Вы нашли что-нибудь в логах?   -  person Dev    schedule 30.04.2016
comment
Я проверил учетные данные для входа... пароль не содержит '@'. Я попытался подключиться с помощью разработчика Oracle SQL, используя те же данные, и это сработало! В файлах журнала бурения также больше не отображаются ошибки! :( Есть ли что-нибудь с версией для сверления? Я недавно перешел на сверло 1.6 [Изначально я использовал сверло 1.4, и я смог без особых проблем создавать там плагины конфигурации]   -  person Arun Ramachandran    schedule 01.05.2016
comment
@devツ: Я забыл упомянуть одну вещь! Я делаю это на облачном сервере (Microsoft Azure). Итак, нужно ли открывать какой-либо порт для создания этого плагина хранилища? До сих пор я открывал порты 2181 (как входящие, так и исходящие), 5433 (для драйвера jdbc - как входящие, так и исходящие), часть портов для базового использования! Должен ли я открывать какие-либо другие порты для установления соединения между сервером сверления и базой данных оракула?   -  person Arun Ramachandran    schedule 02.05.2016
comment
У меня нет опыта работы с облачным сервером Arun. Но здесь приведены подробности о портах, используемых Drill.   -  person Dev    schedule 03.05.2016
comment
@devツ: Что, если часовой пояс oracle db отличается от часового пояса сервера, на котором работает apache-drill? Вы имеете какое-нибудь представление об этом? Я только что создал код Java для подключения к той же базе данных оракула, используя те же учетные данные, которые я упомянул в вопросе. Этот код не удался, когда я запустил его в первый раз, выдав ошибку: ORA-01882: часовой пояс не найден. Затем я добавил эти две строки в свой код - TimeZone timeZone = TimeZone.getTimeZone("Asia/Kolkata"); TimeZone.setDefault(timeZone); , после чего он начал работать, и я смог подключиться к БД.   -  person Arun Ramachandran    schedule 03.05.2016
comment
Drill не предоставляет никакой конфигурации (например, часового пояса) для СУБД. Вы должны изменить его с конца Oracle.   -  person Dev    schedule 03.05.2016


Ответы (1)


Я решил эту проблему самостоятельно. Вот изменения, которые я сделал, чтобы решить эту проблему:

  1. Я изменил конфигурацию подключаемого модуля хранилища (в соответствии с этим POST)

    {    
      "type": "jdbc", 
      "driver": "oracle.jdbc.driver.OracleDriver",
      "url": "jdbc:oracle:thin:@<IP>:<PORT>:<SID>", 
      "username": "<USERNAME>", 
      "password": "<PASSWORD>",
      "enabled": true
    }
    
  2. Только что изменил Drill-Override.conf

    drill.exec: {
       cluster-id: "drillbits1",
       zk.connect: "localhost:2181",
      drill.exec.sys.store.provider.local.path="/data/drill"
    }
    

3 . Кроме того, я заменил ojdbc7.jar на ojdbc6.jar (я пытался подключить версию Oracle DB. 11.2.0.4 -

person Arun Ramachandran    schedule 04.05.2016