Не удается получить доступ к Hive через PySpark - PullRequest
0 голосов
/ 03 октября 2018

Я новичок в Hadoop / Spark / Hive!

Я создал одноузловую виртуальную машину Linux (Ubuntu 18.04.1 LTS), работающую локально со следующим;Hadoop 3.1.0;Spark: Spark 2.3.1, Hive: Hive-3.0.0

В моем Hive используется стандартная база данных Derby, и я могу получить доступ к кусту через терминал и создавать базы данных, таблицы, а затем нормально выполнять запросы к этим таблицам.Мой metastore_db находится в ~ / hivemetastore / metastore_db

Я также создал следующее:

hadoop fs -mkdir -p / user / hive / warehouse

hadoop fs-mkdir -p / tmp / hive

(Примечание. У меня нет файлов hive-site.xml в каталоге $ HIVE_HOME / conf или $ SPARK_HOME / conf)

Однако, когда я пытаюсьчитая таблицу улья из pyspark (через терминал), я получаю сообщение об ошибке:

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/spark-2.3.1-bin-hadoop2.7/python/pyspark/sql/session.py", line 710, in sql return DataFrame(self._jsparkSession.sql(sqlQuery), self._wrapped)
File "/usr/local/spark-2.3.1-bin-hadoop2.7/python/lib/py4j-0.10.7-src.zip/py4j/java_gateway.py", line 1257, in __call__
File "/usr/local/spark-2.3.1-bin-hadoop2.7/python/pyspark/sql/utils.py", line 69, in decoraise AnalysisException(s.split(': ', 1)[1], stackTrace)
pyspark.sql.utils.AnalysisException: 'java.lang.RuntimeException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient;'

Код, который я использую для доступа к кусту из pyspark:

from pyspark.sql import SparkSession
spark = SparkSession.builder.enableHiveSupport().getOrCreate()
spark.sql('show databases').show()

1 Ответ

0 голосов
/ 03 октября 2018

Вы запустили metastore?

Тип:

hive --service metastore

Снимите блокировку с помощью rm metastore_db / *. Lck или перезапустите систему (или PySparkоболочки).

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