Невозможно получить доступ к внешнему хранилищу метаданных Hive с помощью Pyspark

Я пытаюсь запустить простой код, чтобы просто показать базы данных, которые я создал ранее на моем сервере hive2. (обратите внимание, что в этом примере есть оба примера на python и scala с одинаковыми результатами).

Если я вхожу в оболочку улья и перечисляю свои базы данных, я вижу всего 3 базы данных.

Когда я запускаю оболочку Spark (2.3) в pyspark, я делаю обычное дело и добавляю следующее свойство в свой SparkSession:

sqlContext.setConf("hive.metastore.uris","thrift://*****:9083")

И перезапустите SparkContext в моем сеансе.

Если я запустил следующую строку, чтобы увидеть все конфигурации:

pyspark.conf.SparkConf().getAll()
spark.sparkContext._conf.getAll()

Я действительно вижу, что параметр был добавлен, я запускаю новый HiveContext:

hiveContext = pyspark.sql.HiveContext(sc)

Но если я перечислю свои базы данных:

hiveContext.sql("SHOW DATABASES").show()

Он не будет показывать такие же результаты для оболочки улья.

Я немного растерялся, по какой-то причине похоже, что он игнорирует параметр конфигурации, поскольку я уверен, что тот, который я использую, это мое метастор в качестве адреса, который я получаю от запуска:

hive -e "SET" | grep metastore.uris

Будет ли тот же адрес, если я бегу:

ses2 = spark.builder.master("local").appName("Hive_Test").config('hive.metastore.uris','thrift://******:9083').getOrCreate()
ses2.sql("SET").show()

Может быть проблема с разрешением? Например, некоторые таблицы не настроены так, чтобы их можно было видеть за пределами оболочки / пользователя улья.

Спасибо


person Alejandro A    schedule 08.03.2019    source источник


Ответы (1)


Удалось решить проблему, потому что проблема со связью Hive не была размещена на этой машине, исправил код и все в порядке.

person Alejandro A    schedule 11.03.2019