我想通过使用JDBC在Hive中创建表。这是我试过的代码,
import java.sql.SQLException;import java.sql.Connection;import java.sql.ResultSet;import java.sql.Statement;import java.sql ….
首先,您已经从MySQL连接示例中复制了代码,并尝试用HiveQL替换查询,这将无法正常工作。
也不 com.mysql.jdbc.Driver 要么 jdbc:mysql 会让你连接到Hive。 请参阅Hive wiki 使用JDBC 连接到Hive。
com.mysql.jdbc.Driver
jdbc:mysql
该错误仅表示您的类路径在类路径上没有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 在沙箱上。
sandbox-hdp.hortonworks.com/hive
sandbox-hdp.hortonworks.com:10000/hive
?createDatabaseIfNotExist=true/userdb
root/dc123
如果您尝试连接到Hive 的 metastore 强> 我相信在Hortonworks Sandbox中运行PostgreSQL,然后再次使用错误的JDBC驱动程序,连接URL,查询语法和服务器端口信息。
更改连接字符串对我有用
Connection con = DriverManager.getConnection( "jdbc:hive2://58.184.82.67:10000/default", "", "");
在pom.xml中添加了3个依赖项,
<dependency> <groupId>org.apache.hive</groupId> <artifactId>hive-jdbc</artifactId> <version>1.2.1</version> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-common</artifactId> <version>2.7.3</version> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-auth</artifactId> <version>2.7.3</version> </dependency>