为什么创建了许多spark-warehouse文件夹?

ABC*_*ABC 4 hadoop hive jdbc apache-spark

我在ubuntu上安装了hadoop 2.8.1,然后安装了spark-2.2.0-bin-hadoop2.7.我使用了spark-shell并创建了表格.我再次使用beeline并创建表格.我观察到有三个不同的文件夹被创建名为spark-warehouse:

1- spark-2.2.0-bin-hadoop2.7/spark-warehouse

2- spark-2.2.0-bin-hadoop2.7/bin/spark-warehouse

3- spark-2.2.0-bin-hadoop2.7/sbin/spark-warehouse

什么是火花仓库,为什么这些创造了很多次?有时我的火花壳和直线显示不同的数据库和表格,有时它显示相同.我没有得到正在发生的事情?

此外,我没有安装配置单元,但我仍然可以使用beeline,我也可以通过java程序访问数据库.蜂巢是如何进入我的机器的?请帮我.我是新手,通过在线教程激发并安装它.

下面是我用来通过JDBC连接apache spark的java代码:

 private static String driverName = "org.apache.hive.jdbc.HiveDriver";

public static void main(String[] args) throws SQLException {
    try {
        Class.forName(driverName);
    } catch (ClassNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        System.exit(1);
    }
    Connection con = DriverManager.getConnection("jdbc:hive2://10.171.0.117:10000/default", "", "");
    Statement stmt = con.createStatement();
Run Code Online (Sandbox Code Playgroud)

cri*_*007 6

什么是火花仓库,为什么这些创造了很多次?

除非另有配置,否则Spark将创建一个metastore_db以a 命名的内部Derby数据库derby.log.看起来你没有改变它.

这是默认行为,如文档中所述

如果没有配置hive-site.xml,则上下文会自动metastore_db在当前目录中创建并创建一个配置spark.sql.warehouse.dir的目录spark-warehouse,该目录默认为当前目录中启动Spark应用程序的目录

有时我的火花壳和直线显示不同的数据库和表格,有时它显示相同

您在这些不同的文件夹中启动这些命令,因此您看到的仅限于当前工作目录.

我使用beeline并创建了表格......蜂巢如何在我的机器上出现?

它没有.你可能会连接到无论是星火节俭服务器,这与HiveServer2协议,Derby数据库完全兼容,如前所述,或者,你其实有HiveServer2实例坐在10.171.0.117

无论如何,这里不需要JDBC连接.您可以SparkSession.sql直接使用功能.