beeline和sparkshell可以为同一个apachespark显示不同的数据库吗?

jtw3ybtb  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(445)

我在ubuntu上安装了hadoop2.8.1,然后在上面安装了spark-2.2.0-bin-hadoop2.7。首先,当我通过sparkshell创建数据库并试图通过javajdbc程序访问它时,我发现没有表存在。然后我用beeline观察到这里也不存在数据库。我通过beeline创建了数据库。为什么spark shell和beeline显示不同的dbs?
他们也许应该表现出同样的一面。我尝试了普通的jdbc程序,它连接hive2并获取表,发现有时它显示我通过sparkshell创建的表,有时显示通过beeline创建的表……请帮助。同样的情况有时也发生在直线上。。

bttbmeg0

bttbmeg01#

这可能是因为您的spark安装没有正确配置以访问您的hive仓库。
在这种情况下,sparksql被设计成建立自己的本地仓库并恢复到独立模式。这是为了方便非配置单元用户采用。
要解决此问题,您应该:
参考官方文件。
阅读日志并查找与“hive”或“metastore”相关的内容,以了解发生了什么
确保spark可以访问hive-site.xml配置文件。例如,您可以设置一个符号链接(确保首先检查路径)

ln -s /etc/hive/conf/hive-site.xml    /etc/spark/conf/hive-site.xml

确保您的spark安装可以访问Hive罐(检查 $SPARK_HOME/lib )
请确保已通过以下方式启用配置单元支持:

SparkSession.builder.enableHiveSupport().getOrCreate()

希望这有帮助。

相关问题