有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

线程“main”java中出现异常。lang.ClassNotFoundException:org。阿帕奇。蜂箱jdbc。希维德河

我有一个名为handson的hive数据库,我正在尝试显示来自handson的记录。EMP_数据表使用java代码。我正在使用hive-1.2.1版本。当我试图从主目录完成并运行代码时,它抛出java。lang.ClassNotFoundException:org。阿帕奇。蜂箱jdbc。希维德河。我已经包括了我的java代码,hive站点。xml,错误发生在下面:

这是我的java代码

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

public class readEmpHive {
    
    private static String driverName = "org.apache.hive.jdbc.HiveDriver";
    //private static String driverName = "org.apache.hadoop.hive.jdbc.HiveDriver"; <--- I have also tried running this

    public static void main(String[] args) throws SQLException, ClassNotFoundException {
    
    // Register driver and create driver instance
        Class.forName(driverName);
    // get connection
        System.out.println("working?");
        Connection con = DriverManager.getConnection("jdbc:hive2://localhost:10000/handson", "root", "root");

   /*
        I have also tried this
        Connection con = DriverManager.getConnection("jdbc:hive://localhost:10000/handson", "root", "root");
   */

        System.out.println("working!!!");
    // create statement
        Statement stmt = con.createStatement();
    // execute statement
        String query = "SELECT * FROM EMP_DATA";
        ResultSet res = stmt.executeQuery(query);
        System.out.println(" Empno \t EName \t Job \t Salary \t Deptno ");
        while(res.next()){
            int empno = res.getInt(1);
            String ename = res.getString(2);
            String job = res.getString(3);
            int sal = res.getInt(4);
            int deptno = res.getInt(5);
            System.out.println(empno+", "+ename+", "+job+", "+sal+", "+deptno);
        }
        con.close();
    }
}

这是我的蜂巢网站。xml文件

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>

    <property>
        <name>hive.metastore.uris</name>
        <value>thrift://localhost:9083</value>
        <description>IP address (or fully-qualified domain name) and port of the metastore host</description>
    </property>
    
    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://localhost/hivemetadb?createDatabaseIfNotExist=true</value>
        <description>the URL of the MySQL database</description>
    </property>

    <property>
        <name>javax.jdo.option.ConnectionDriverName</name>
        <value>com.mysql.jdbc.Driver</value>
    </property>

    <property>
        <name>javax.jdo.option.ConnectionUserName</name>
        <value>root</value>
    </property>

    <property>
        <name>javax.jdo.option.ConnectionPassword</name>
        <value>root</value>
    </property>
    
    <property>
      <name>hive.hwi.listen.host</name>
      <value>0.0.0.0</value>
    </property>

    <property>
      <name>hive.hwi.listen.port</name>
      <value>9999</value>
    </property>

    <property>
      <name>hive.hwi.war.file</name>
      <value>lib/hive-hwi-1.2.1.war</value>
    </property>


    <property>
      <name>hive.metastore.local</name>
      <value>true</value>
    </property>

    <property>
      <name>hive.metastore.uris</name>
      <value>thrift://localhost:9083</value>
      <description>IP address (or fully-qualified domain name) and port of the metastore host</description>
    </property>

</configuration>

当我编译并运行我的代码时,我得到了一个错误

hduser@hadoop:~$ javac readEmpHive.java
hduser@hadoop:~$ java readEmpHive
Exception in thread "main" java.lang.ClassNotFoundException: org.apache.hive.jdbc.HiveDriver
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
    at java.lang.ClassLoader.loadClass(Clas

共 (0) 个答案