无法通过pyspark访问hive

qoefvg9y  于 2021-06-01  发布在  Hadoop
关注(0)|答案(1)|浏览(485)

我是hadoop/spark/hive的新手!
我创建了一个在本地运行的单节点linux(ubuntu18.04.1lts)vm,如下所示:;hadoop 3.1.0版本;Spark:Spark2.3.1,Hive:Hive-3.0.0
我的配置单元使用标准的derbydb,我可以通过终端访问配置单元,创建数据库、表,然后很好地查询这些表。我的metastore\u db位于~/hivemetastore/metastore\u db
我还创建了以下内容:
hadoop fs-mkdir-p/用户/配置单元/仓库
hadoop fs-mkdir-p/tmp/hive
(注意-$hive\u home/conf或$spark\u home/conf下没有任何hive-site.xml文件)
但是,当我尝试从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()
xv8emn3q

xv8emn3q1#

你开了元商店吗?
类型:

hive --service metastore

使用rm metastore \u db/*.lck移除锁或重新启动系统(或pyspark shell)。

相关问题