【问题标题】:Exception caused while querying Hive Derby database via JDBC通过 JDBC 查询 Hive Derby 数据库时出现异常
【发布时间】:2013-12-25 11:11:54
【问题描述】:

我是 Hive 的新用户,刚刚开始将它用于一个项目。我在使用 java 连接到数据库时遇到问题。解释如下:

我在我的机器上运行 Hive 数据库,该数据库使用嵌入式 Derby 驱动程序创建了一个 derby metastore_db。现在,我希望通过单独的 Java 程序查询这个metastore_db 以发出查询。

我遵循了可以在网上找到的多种技巧,但仍然无法使其发挥作用。

我的 Java 文件的快照:

String url = "jdbc:derby:metastore_db;create=true"; 
String username = "APP"; 
String password = "mine"; 
String drivername = "org.apache.derby.jdbc.EmbeddedDriver";

Connection con = DriverManager.getConnection(url,username, password);
Statement stmt = con.createStatement();
res = stmt.executeQuery("describe " + tableName);

运行java文件:

我已将它与 metastore_db 放在同一个文件夹中,然后使用以下命令运行它:

java -cp "derby-10.4.2.jar:." ConnectTesting

我得到以下语法异常:

java.sql.SQLException: Syntax error: Encountered "describe" at line 1, column 1.

我已经尝试过的一些事情:

  1. url = "jdbc:derby:metastore_db;create=false";
  2. url = "jdbc:derby://localhost:10000/metastore_db";
  3. url = "jdbc:derby://localhost:1527/metastore_dbDB"; // By default port at which hive listens
    以上两个给出的错误为:

    没有找到适合 jdbc:derby://localhost:10000/metastore_db 的驱动

  4. url = "jdbc:derby:<full_path_to_db>/metastore_db";

  5. 如果我的 HIVE 服务器已经在运行,然后我从另一个终端执行 java 文件,它会显示:
    "另一个 Derby 实例可能已经启动了数据库"

谁能指出我做错了什么以及如何连接到已经存在的数据库来发出查询。

【问题讨论】:

    标签: jdbc hive derby


    【解决方案1】:

    这是很多不同的问题。你真正需要回答哪一个?

    “describe”是“ij”工具实现的命令;它不是 SQL 语句。因此,要运行“describe”,您必须从“ij”运行它(或使用 RunScript 实用程序在您的应用程序中运行“ij”;您不能直接从 Statement.executeQuery() 运行它。

    为了使用客户端-服务器驱动程序,使用 hostname:port 语法,您必须 (a) 在类路径中使用 derbyclient.jar 而不是 derby.jar,并且 (b) 让网络服务器运行.

    而且,您不能同时在多个应用程序中打开同一个 Derby(嵌入式)数据库,因此当您的应用程序运行时,您不能针对同一个(嵌入式)数据库运行第二个应用程序。如果您需要此功能,则需要将所有应用程序切换为使用客户端驱动程序,并运行网络服务器以提供对数据库的多应用程序访问。

    您已经运行过 Derby 教程了吗?它更详细地涵盖了这些主题中的大部分:http://db.apache.org/derby/docs/10.10/getstart/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-05-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-26
      相关资源
      最近更新 更多