可以直线和spark-shell显示不同的数据库同样的apache火花?

时间:2017-08-23 07:24:54

标签: hadoop apache-spark jdbc hive

我在ubuntu上安装了hadoop 2.8.1,然后安装了spark-2.2.0-bin-hadoop2.7。 首先,当我通过spark-shell创建数据库并试图通过java JDBC程序访问它时,我发现没有表存在。然后我使用直线并观察到数据库在这里也不存在。我通过直线创建数据库。为什么spark-shell和beeline显示不同的DB?

他们可能应该表现出同样的。我尝试了连接hive2和获取表的普通JDBC程序,并观察到有时它显示我通过spark-shell创建的表,有时显示通过直线创建的表...请帮助。同样有时也会直线发生..

1 个答案:

答案 0 :(得分:1)

这可能是因为你的Spark安装 未正确配置以访问您的Hive仓库。

在这种情况下,Spark-SQL旨在设置自己的本地仓库 并恢复到独立模式。这旨在简化采用 对于非Hive用户。

要解决此问题,您应该:

  1. 请参阅official documentation
  2. 阅读日志并查找与' hive'相关的任何内容。或者' Metastore'至 了解会发生什么
  3. 确保Spark可以访问hive-site.xml配置文件。 例如,您可以设置符号链接(请务必先检查路径)

    ln -s /etc/hive/conf/hive-site.xml    /etc/spark/conf/hive-site.xml
    
  4. 确保您的Spark安装可以访问Hive jar (查看$SPARK_HOME/lib
  5. 确保您使用以下内容启用了Hive支持:

    SparkSession.builder.enableHiveSupport().getOrCreate()
    
  6. 希望这有帮助。