Подключение к Hive Metastore (с проверкой подлинности Kerberos) с помощью Pyspark в Windows - PullRequest
0 голосов
/ 21 октября 2018

Я пытаюсь подключиться к базе данных Hive с проверкой подлинности Kerberos с помощью Pyspark в Windows 10. До сих пор я сделал следующее:

(1) Установите переменные среды: SPARK_HOME = C: \ sparkHADOOP_HOME = C: \ spark \ hadoop Добавил C: \ spark \ bin в переменные PATH MAVEN_HOME = C: \ apache-maven-3.3.9

(2) Сохранил файл hive-site.xml в C: \ spark \ conf

(3) Загруженные двоичные файлы (https://github.com/steveloughran/winutils/tree/master/hadoop-2.7.1) для версии hadoop, используемой spark (hadoop 2.7), и я сохранил эти файлы в HADOOP_HOME \ bin

(4) Я выполнил следующую команду: winutils.exe -R 777 C: \ tmp \ hive

(5) Я запустил команду kinit, чтобы получить билет Kerberos. Затем я запустил:

from pyspark import SparkCOntext, SparkConf
sparkSession =SparkSession.builder.enableHiveSupport().getOrCreate()
d_load = sparkSession.sql("select count(*) from table")

После выполнения этого я получаю сообщения об ошибках:

"...

Caused by: GSSException: No valid credentials provided (Mechanism level: Failed to find any kerberos tgt)
at sun.security.jss.krb5.Krb5InitCredential.getInstance(Unknown Source)
at sun.security.jgss.krb5.Krb5MechFactory.getCredentialElement(Unknown Source)
at sun.security.jgss.krb5.Krb5MechFactory.getMechanismContext( Unknown Source)
at sun.security.jss.GSSManagerImpl.getMechanismContext( Unknown Source)
at sun.security.jgss.GSSContextImpl.initSecContext( Unknown Source)
at sun.security.jgss.GSSContextImpl.initSecContext( Unknown Source)
...67 more
18/10/20 22:35:25 WARN metastore: Failed to connect to the Metastore Server...
Traceback (most recent call):
File "<stdin>", line 1, in <module>
File "C:\spark\python\pyspark\sql\session.py", line 710, in sql
return DataFrame(self._jsparkSession.sql(sqlQuery), self_wrapped)
File "C:\spark\python\lib\py4j-0.10.7-src.zip\py4j\java_gateway.py", line 1257, in __call__
File "C:\spark\python\pyspark\sql\utils.py, line 69, in deco
raise AnalysisException(s.split(': ', 1)[1], stackTrace)
pyspark.sql.utils.AnalysisException: u'java.lang.RUnTimeException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetastoreClient;
  • Не могли бы вы помочь мне попытаться выяснить, почему я получил этоошибка? Есть ли способ убедиться, что pyspark читает файл hive-site.xml? Я прочитал, что мне также может понадобиться добавить переменную для KRB5_KTNAME но у меня нигде нет файла keytab - кто-нибудь знает, как мне его настроить?

  • Кроме того, я прочитал в ветке, что мне нужно было сохранять двоичные файлы вПапка SPARK_HOME \ bin (в дополнение к HADOOP_HOME), но они совпадают с файлами, которые я скачал и сохранил в HADOOP_HOME \ bin.Что правильно делать здесь?Что такое файлы binaries / winutils.exe, которые находятся в HADOOP_HOME \ bin, и файлы, которые находятся в SPARK_HOME \ bin?(Я читал противоречивые версии этого.)

Большое спасибо за вашу помощь !!

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