我在ubuntu上安装了hadoop2.8.1,然后在上面安装了spark-2.2.0-bin-hadoop2.7。首先,当我通过sparkshell创建数据库并试图通过javajdbc程序访问它时,我发现没有表存在。然后我用beeline观察到这里也不存在数据库。我通过beeline创建了数据库。为什么spark shell和beeline显示不同的dbs?
他们也许应该表现出同样的一面。我尝试了普通的jdbc程序,它连接hive2并获取表,发现有时它显示我通过sparkshell创建的表,有时显示通过beeline创建的表……请帮助。同样的情况有时也发生在直线上。。
1条答案
按热度按时间bttbmeg01#
这可能是因为您的spark安装没有正确配置以访问您的hive仓库。
在这种情况下,sparksql被设计成建立自己的本地仓库并恢复到独立模式。这是为了方便非配置单元用户采用。
要解决此问题,您应该:
参考官方文件。
阅读日志并查找与“hive”或“metastore”相关的内容,以了解发生了什么
确保spark可以访问hive-site.xml配置文件。例如,您可以设置一个符号链接(确保首先检查路径)
确保您的spark安装可以访问Hive罐(检查
$SPARK_HOME/lib
)请确保已通过以下方式启用配置单元支持:
希望这有帮助。