Проблемы подключения Jive к Hive при аутентификации Kerberos - R

Я пытаюсь подключить Hive через JDBC, используя пакет RJDBC в R. Hive настроен с проверкой подлинности Kerberos. Я использую CDH 5.6.0. Улей версия 1.1.0. я использую следующие банки

hive-jdbc-1.1.0-cdh5.6.0-standalone
hadoop-common-2.6.0-cdh5.6.0

мой код был

library(RJDBC) drv <- JDBC("com.cloudera.hive.jdbc4.HS2Driver",list.files("Jars/",pattern="jar$",full.names=T))url.dbc = paste0("jdbc:hive2://xx.xx.xx.xx:10000/default;principal=hive/xx.xx.xx.xx@XXX.COM"); conn=dbConnect(drv,url.dbc,"username","password")

при выполнении этого кода я получаю следующую ошибку,

Error in .jcall(drv@jdrv, "Ljava/sql/Connection;", "connect", as.character(url)[1], : java.sql.SQLException: [Cloudera][HiveJDBCDriver](500164) Error initialized or created transport for authentication: Peer indicated failure: Unsupported mechanism type PLAIN.

Я застрял здесь долгое время, Пожалуйста, помогите мне в этой ошибке

1 ответ

У меня есть доступ к кластеру с поддержкой Kerberos на моем рабочем месте. Я могу подключиться, используя следующий код..

Шаг 1: Загрузите последнюю версию драйвера JDBC от Cloudera. Я использовал 2.5.18 в Redhat 6 (x64)

Шаг 2: Распакуйте и используйте только API-интерфейс соединителя JDBC 4.

Шаг 3: выдать команду klist в терминале [я надеюсь, что вы используете Linux, если нет, возможно, вам придется настроить активную директорию] и посмотреть, есть ли активная заявка. Если тикета нет, сгенерируйте его [возможно, с помощью администратора]

Шаг 4: Как только у вас будет активная заявка [посмотрите, как описано в Шаге 3], поместите все банки, распакованные на Шаге 2, в папку. [здесь в моем случае это в Drivers/Cloudera-Simba/JDBC4/ внутри моего каталога R-проекта]

Шаг 5: Одна важная вещь: если у вас есть Sentry, управляющий кластером Cloudera, убедитесь, что вы вошли в систему и запустили следующий код R от того пользователя, который имеет желаемый уровень доступа.

Шаг 6: Запустите следующий код R с соответствующим именем хоста и т. Д., Настроенным в URL JDBC.

drvH <- JDBC(driverClass = "com.cloudera.hive.jdbc4.HS2Driver", 
             classPath = normalizePath(list.files("Drivers/Cloudera-Simba/JDBC4/", pattern = ".jar$", full.names = T, recursive = T)), 
             identifier.quote="`")

connH <- dbConnect(drvH, "jdbc:hive2://master.rbi.org.in:10000;AuthMech=1;KrbRealm=YOUR_REALM.COM;KrbHostFQDN=master.rbi.org.in;KrbServiceName=hive")

# test it
dbGetQuery(connH, "show databases")

Надеюсь это поможет.

Вы можете найти больше информации о конфигурации Kerberos здесь.

Другие вопросы по тегам