我想使用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.
请帮我解决这个问题。
2条答案
按热度按时间68bkxrlz1#
更改连接字符串对我有用
在pom.xml中添加了3个依赖项,
llycmphe2#
首先,您复制了一个mysql连接示例中的代码,并尝试用hiveql替换查询,但这行不通。
都不是
com.mysql.jdbc.Driver
或者jdbc:mysql
会让你连接到Hive。有关如何使用jdbc连接到配置单元,请参见配置单元wiki。这个错误仅仅意味着类路径上没有mysql驱动程序。即使更改了字符串,hive也会出现类似的错误。
我强烈建议使用maven或gradle加载依赖项。
另外
sandbox-hdp.hortonworks.com/hive
需要一个端口号,比如sandbox-hdp.hortonworks.com:10000/hive
而且你不需要?createDatabaseIfNotExist=true/userdb
. 配置单元的用户凭据也不是root/dc123
在沙盒上。如果您试图连接到hive metastore,我相信它在hortonworks沙盒中运行postgresql,那么同样,您使用了错误的jdbc驱动程序、连接url、查询语法和服务器端口信息。