Невозможно получить доступ к внешнему Hast metastore с помощью Pyspark - PullRequest
0 голосов
/ 08 марта 2019

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

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

Когда я запускаю Spark shell (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()

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

Спасибо

1 Ответ

0 голосов
/ 11 марта 2019

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

...