Как я могу подключить Hive Metastore с помощью Kerberos и SSL? - PullRequest
0 голосов
/ 16 января 2019

Я подключаюсь к Hive Metastore с аутентификацией Kerberos. Я перепробовал несколько конфигураций, и мое текущее исключение:

java.lang.IllegalArgumentException: java.net.UnknownHostException: <principal_host>-ns
at org.apache.hadoop.security.SecurityUtil.buildTokenService(SecurityUtil.java:406)
at org.apache.hadoop.hdfs.NameNodeProxies.createNonHAProxy(NameNodeProxies.java:310)
at org.apache.hadoop.hdfs.NameNodeProxies.createProxy(NameNodeProxies.java:176)
at org.apache.hadoop.hdfs.DFSClient.<init>(DFSClient.java:735)
at org.apache.hadoop.hdfs.DFSClient.<init>(DFSClient.java:678)
at org.apache.hadoop.hdfs.DistributedFileSystem.initialize(DistributedFileSystem.java:158)
at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2816)
at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:98)
at org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:2853)

Я устанавливаю все следующие свойства

hive.metastore.use.SSL=true
hive.metastore.truststore.path=<path>
hive.metastore.truststore.password=<ssl_pass>

hive.metastore.kerberos.principal=<service_principal>
hive.support.concurrency=true
hive.enforce.bucketing=true
hive.exec.dynamic.partition.mode=nonstrict
hive.txn.manager=org.apache.hadoop.hive.ql.lockmgr.DbTxnManager
hive.compactor.initiator.on=true
hive.compactor.worker.threads=10
hive.txn.timeout=300

Для аутентификации клиента Kerberos я использую следующий код.

conf.set(HadoopConfig.SECURITY_AUTHENTICATION, HadoopConfig.SECURITY_AUTHENTICATION_KERBEROS);
conf.set(HadoopConfig.RPC_PROTECTION, HadoopConfig.RPC_PROTECTION_PRIVACY);

UserGroupInformation.setConfiguration(conf);
this.ugi = UserGroupInformation.loginUserFromKeytabAndReturnUGI(principal, keytabPath);

Несколько конфигураций параметров были опробованы без успеха. Мой сервер работает и работает правильно. Обычное соединение JDBC выполняется с теми же параметрами SSL и принципалом Kerberos.

...