gpt4 book ai didi

hadoop - 如何使用JDBC与HIVE建立连接?

转载 作者:行者123 更新时间:2023-12-02 21:01:07 24 4
gpt4 key购买 nike

如何使用HIVE配置JDBC

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

public class table {
private static String driverName = "org.apache.hadoop.hive.mysql.jdbc.Driver";

public static void main(String[] args) throws SQLException {
// Register driver and create driver instance

try {
Class.forName(driverName);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

Connection con = DriverManager.getConnection("jdbc:mysql://localhost:1000/default", "", "");
Statement stmt = con.createStatement();

stmt.executeQuery("CREATE DATABASE userdb");
// System.out.println(“Database userdb created successfully”);

con.close();
}
}

akshay@akshay:~$ javac table.java
Picked up JAVA_TOOL_OPTIONS: -javaagent:/usr/share/java/jayatanaag.jar
akshay@akshay:~$ java table
Picked up JAVA_TOOL_OPTIONS: -javaagent:/usr/share/java/jayatanaag.jar
java.lang.ClassNotFoundException: org.apache.hadoop.hive.mysql.jdbc.Driver
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at table.main(table.java:14)
Exception in thread "main" java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:1000/default
at java.sql.DriverManager.getConnection(DriverManager.java:689)
at java.sql.DriverManager.getConnection(DriverManager.java:247)
at table.main(table.java:20)

我的hive-site.xml包含
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>MySQL JDBC driver class</description>
</property>

<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost/metastore?createDatabaseIfNotExist=true</value>
<description>metadata is stored in a MySQL server </description>
</property>

我已经用MySQL配置了 hive 的元存储。那么,JAVA连接代码中的ConnectionURL和Drivername应该是什么?
我没有错在哪里。请提供上述问题的解决方案。

最佳答案

要使用JDBC API运行hive查询,您需要首先启动hiveserver2。如下所示在hive-site.xml文件中配置节俭服务器端口

<property>
<name>hive.server2.thrift.port</name>
<value>10000</value>
<description>TCP port number to listen on, default 10000</description>
</property>

使用以下命令启动hiveserver2
cd $HIVE_HOME/bin    
./hiveserver2

另外,您需要将以下依赖项添加到您的项目中。
Hive-jdbc-*-standalone.jar

hive-jdb-*.jar

hive-metastore-*.jar

hive-service-*.jar

之后,尝试运行该程序。您可以引用 to this blog以获得有关使用Java程序运行配置单元查询的分步过程的更多信息。

关于hadoop - 如何使用JDBC与HIVE建立连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43175777/

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