gpt4 book ai didi

java - 如何使用 Hive 从 hortonworks 中的 jdbc 程序创建表?

转载 作者:行者123 更新时间:2023-12-02 11:24:53 26 4
gpt4 key购买 nike

我想使用 JDBC 在 Hive 中创建表。这是我尝试过的代码,

import java.sql.SQLException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.DriverManager;

public class HiveClient {
private static String driverName = "com.mysql.jdbc.Driver";
public static void main(String[] args) {
Connection con=null;
// Register driver and create driver instance
try {
Class.forName(driverName);
// get connection
con = DriverManager.getConnection("jdbc:mysql://sandbox-hdp.hortonworks.com/hive?createDatabaseIfNotExist=true/userdb", "root", "dc123");

// create statement
Statement stmt = con.createStatement();

// execute statement
stmt.executeQuery("CREATE TABLE IF NOT EXISTS "
+" employee ( eid int, name String, "
+" salary String, destignation String)"
+" COMMENT ‘Employee details’"
+" ROW FORMAT DELIMITED"
+" FIELDS TERMINATED BY ‘\t’"
+" LINES TERMINATED BY ‘\n’"
+" STORED AS TEXTFILE;");

System.out.println(" Table employee created.");
con.close();
}catch(Exception e){
System.out.println(e);
}

}
}

该程序显示异常:

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver.

请帮我解决这个问题。

最佳答案

首先,您从 MySQL 连接示例中复制了代码,并尝试用 HiveQL 替换查询,但这是行不通的。

com.mysql.jdbc.Driverjdbc:mysql 都不会让您连接到 Hive。请参阅 Hive wiki Using JDBC连接到 Hive。

<小时/>

该错误仅意味着您的类路径上没有 MySQL 驱动程序。即使您更改了字符串,Hive 也会出现类似的错误。

我强烈建议使用 Maven 或 Gradle 来加载您的依赖项。

<dependency>
<groupId>org.apache.hive</groupId>
<artifactId>hive-jdbc</artifactId>
<version>1.2.1</version>
</dependency>
<小时/>

此外,sandbox-hdp.hortonworks.com/hive 需要一个端口号,如 sandbox-hdp.hortonworks.com:10000/hive 并且您不需要 ?createDatabaseIfNotExist=true/userdb。沙箱上的 Hive root/dc123 的用户凭据也不是。

<小时/>

如果您尝试连接到 Hive 元存储(我相信它正在 Hortonworks Sandbox 中运行 PostgreSQL),那么您再次使用了错误的 JDBC 驱动程序、连接 URL、查询语法,和服务器端口信息。

关于java - 如何使用 Hive 从 hortonworks 中的 jdbc 程序创建表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49692069/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com