配置单元-通过JDBC连接到Java

配置单元-通过JDBC连接到Java,java,database,hadoop,jdbc,hive,Java,Database,Hadoop,Jdbc,Hive,我有个问题。我无法将我的简单java应用程序连接到数据库。我认为这是司机的问题 以下是启动时的配置单元日志: 我的简单代码: package bazahive; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Statement; import java.sql.ResultSet; import java.util.Scanner;

我有个问题。我无法将我的简单java应用程序连接到数据库。我认为这是司机的问题

以下是启动时的配置单元日志: 我的简单代码:

package bazahive;

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

public class baza{
    private static String driverName = "org.apache.hive.jdbc.HiveDriver";
    public static void main(String[] args) throws SQLException {
        try {
              Class.forName(driverName);
            } catch (ClassNotFoundException e) {
              e.printStackTrace();
              System.exit(1);
            }
        Connection con = DriverManager.getConnection("jdbc:hive2://localhost:50070/przychodnia", "", "");
        Scanner odczyt = new Scanner(System.in);
        System.out.println("Wybierz");
        System.out.println("0 aby dodać do istniejącej tabeli wiersz");
        System.out.println("1 aby usunąć z istniejącej tabeli wiersz");
        String x = odczyt.nextLine();
        switch(x){
            case("0"):
                Statement stmt = con.createStatement();
                String SQL = "SELECT ai(),* FROM pacjenci";
                ResultSet rs = stmt.executeQuery(SQL);

                while (rs.next()){
                    int ai = rs.getInt("ai()");
                    String imie = rs.getString("imie");
                    String p = ai + " " + imie;
                    System.out.println(p);

        }

    }
    }
}
错误:

ERROR StatusLogger Unrecognized format specifier [d]
ERROR StatusLogger Unrecognized conversion specifier [d] starting at position 16 in conversion pattern.
ERROR StatusLogger Unrecognized format specifier [thread]
ERROR StatusLogger Unrecognized conversion specifier [thread] starting at position 25 in conversion pattern.
ERROR StatusLogger Unrecognized format specifier [level]
ERROR StatusLogger Unrecognized conversion specifier [level] starting at position 35 in conversion pattern.
ERROR StatusLogger Unrecognized format specifier [logger]
ERROR StatusLogger Unrecognized conversion specifier [logger] starting at position 47 in conversion pattern.
ERROR StatusLogger Unrecognized format specifier [msg]
ERROR StatusLogger Unrecognized conversion specifier [msg] starting at position 54 in conversion pattern.
ERROR StatusLogger Unrecognized format specifier [n]
ERROR StatusLogger Unrecognized conversion specifier [n] starting at position 56 in conversion pattern.
ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console.
ERROR StatusLogger Unrecognized format specifier [d]
ERROR StatusLogger Unrecognized conversion specifier [d] starting at position 16 in conversion pattern.
ERROR StatusLogger Unrecognized format specifier [thread]
ERROR StatusLogger Unrecognized conversion specifier [thread] starting at position 25 in conversion pattern.
ERROR StatusLogger Unrecognized format specifier [level]
ERROR StatusLogger Unrecognized conversion specifier [level] starting at position 35 in conversion pattern.
ERROR StatusLogger Unrecognized format specifier [logger]
ERROR StatusLogger Unrecognized conversion specifier [logger] starting at position 47 in conversion pattern.
ERROR StatusLogger Unrecognized format specifier [msg]
ERROR StatusLogger Unrecognized conversion specifier [msg] starting at position 54 in conversion pattern.
ERROR StatusLogger Unrecognized format specifier [n]
ERROR StatusLogger Unrecognized conversion specifier [n] starting at position 56 in conversion pattern.
Exception in thread "main" java.sql.SQLException: Could not open client transport with JDBC Uri: jdbc:hive2://localhost:50070/przychodnia: Invalid status 72
    at org.apache.hive.jdbc.HiveConnection.openTransport(HiveConnection.java:219)
    at org.apache.hive.jdbc.HiveConnection.<init>(HiveConnection.java:157)
    at org.apache.hive.jdbc.HiveDriver.connect(HiveDriver.java:107)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at bazahive.baza.main(baza.java:19)
Caused by: org.apache.thrift.transport.TTransportException: Invalid status 72
    at org.apache.thrift.transport.TSaslTransport.sendAndThrowMessage(TSaslTransport.java:232)
    at org.apache.thrift.transport.TSaslTransport.receiveSaslMessage(TSaslTransport.java:184)
    at org.apache.thrift.transport.TSaslTransport.open(TSaslTransport.java:307)
    at org.apache.thrift.transport.TSaslClientTransport.open(TSaslClientTransport.java:37)
    at org.apache.hive.jdbc.HiveConnection.openTransport(HiveConnection.java:195)
    ... 5 more
我正在使用来自java的derby

编辑:

错误状态记录器无法识别的格式说明符[d]
错误状态记录器无法识别的转换说明符[d],从转换模式中的位置16开始。
错误状态记录器无法识别的格式说明符[线程]
错误状态记录器无法识别转换说明符[thread],从转换模式中的位置25开始。
错误状态记录器无法识别的格式说明符[级别]
错误状态记录器转换模式中从位置35开始的无法识别的转换说明符[级别]。
错误状态记录器无法识别的格式说明符[记录器]
错误状态记录器无法识别转换说明符[logger],从转换模式中的位置47开始。
错误状态记录器无法识别的格式说明符[msg]
错误状态记录器无法识别转换说明符[msg],从转换模式中的位置54开始。
错误状态记录器无法识别的格式说明符[n]
错误状态记录器无法识别的转换说明符[n],从转换模式中的位置56开始。
错误状态记录器未找到log4j2配置文件。使用默认配置:仅将错误记录到控制台。
错误状态记录器无法识别的格式说明符[d]
错误状态记录器无法识别的转换说明符[d],从转换模式中的位置16开始。
错误状态记录器无法识别的格式说明符[线程]
错误状态记录器无法识别转换说明符[thread],从转换模式中的位置25开始。
错误状态记录器无法识别的格式说明符[级别]
错误状态记录器转换模式中从位置35开始的无法识别的转换说明符[级别]。
错误状态记录器无法识别的格式说明符[记录器]
错误状态记录器无法识别转换说明符[logger],从转换模式中的位置47开始。
错误状态记录器无法识别的格式说明符[msg]
错误状态记录器无法识别转换说明符[msg],从转换模式中的位置54开始。
错误状态记录器无法识别的格式说明符[n]
错误状态记录器无法识别的转换说明符[n],从转换模式中的位置56开始。
线程“main”org.apache.commons.logging.logonfigurationexception:java.lang.ClassNotFoundException:org.apache.commons.logging.impl.logfactorympl中出现异常(由java.lang.ClassNotFoundException:org.apache.commons.logging.impl.logfactorympl引起)
位于org.apache.commons.logging.LogFactory.createFactory(LogFactory.java:1158)
位于org.apache.commons.logging.LogFactory$2.run(LogFactory.java:960)
位于java.security.AccessController.doPrivileged(本机方法)
位于org.apache.commons.logging.LogFactory.newFactory(LogFactory.java:957)
位于org.apache.commons.logging.LogFactory.getFactory(LogFactory.java:624)
位于org.apache.commons.logging.LogFactory.getLog(LogFactory.java:655)
位于org.apache.http.conn.ssl.DefaultHostnameVerifier。(DefaultHostnameVerifier.java:69)
位于org.apache.http.impl.client.HttpClientBuilder.build(HttpClientBuilder.java:901)
位于org.apache.hive.jdbc.HiveConnection.getHttpClient(HiveConnection.java:402)
位于org.apache.hive.jdbc.HiveConnection.createHttpTransport(HiveConnection.java:250)
位于org.apache.hive.jdbc.HiveConnection.openTransport(HiveConnection.java:193)
位于org.apache.hive.jdbc.HiveConnection。(HiveConnection.java:157)
位于org.apache.hive.jdbc.HiveDriver.connect(HiveDriver.java:107)
位于java.sql.DriverManager.getConnection(未知源)
位于java.sql.DriverManager.getConnection(未知源)
位于hive.main(hive.java:17)
原因:java.lang.ClassNotFoundException:org.apache.commons.logging.impl.LogFactoryImpl
位于java.net.URLClassLoader.findClass(未知源)
位于java.lang.ClassLoader.loadClass(未知源)
位于sun.misc.Launcher$AppClassLoader.loadClass(未知源)
位于java.lang.ClassLoader.loadClass(未知源)
位于org.apache.commons.logging.LogFactory.createFactory(LogFactory.java:1020)
... 还有15个
编辑2:


翻译:由于未找到数据库,连接被拒绝。

您的URL不正确。将信息剪切粘贴到谷歌会告诉你:我仍然有很多问题……很明显。您修复了URL吗?很难诊断,因为Log4j2配置不正确。最好先解决这个问题。将log4j-api-2.7、log4j-core-2.7、log4j-jcl-2.7添加到类路径的开头。确保类路径中存在有效的log4j2.xml配置文件。这将提供更好的错误报告,指出实际问题。如果编辑使URL错误消失,我建议您将其从问题中删除。如果它不再适用,那么保留它是误导性的。
hadoop-common-2.3.0.jar
hive-jdbc-2.1.0-standalone.jar
ERROR StatusLogger Unrecognized format specifier [d]
ERROR StatusLogger Unrecognized conversion specifier [d] starting at position 16 in conversion pattern.
ERROR StatusLogger Unrecognized format specifier [thread]
ERROR StatusLogger Unrecognized conversion specifier [thread] starting at position 25 in conversion pattern.
ERROR StatusLogger Unrecognized format specifier [level]
ERROR StatusLogger Unrecognized conversion specifier [level] starting at position 35 in conversion pattern.
ERROR StatusLogger Unrecognized format specifier [logger]
ERROR StatusLogger Unrecognized conversion specifier [logger] starting at position 47 in conversion pattern.
ERROR StatusLogger Unrecognized format specifier [msg]
ERROR StatusLogger Unrecognized conversion specifier [msg] starting at position 54 in conversion pattern.
ERROR StatusLogger Unrecognized format specifier [n]
ERROR StatusLogger Unrecognized conversion specifier [n] starting at position 56 in conversion pattern.
ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console.
ERROR StatusLogger Unrecognized format specifier [d]
ERROR StatusLogger Unrecognized conversion specifier [d] starting at position 16 in conversion pattern.
ERROR StatusLogger Unrecognized format specifier [thread]
ERROR StatusLogger Unrecognized conversion specifier [thread] starting at position 25 in conversion pattern.
ERROR StatusLogger Unrecognized format specifier [level]
ERROR StatusLogger Unrecognized conversion specifier [level] starting at position 35 in conversion pattern.
ERROR StatusLogger Unrecognized format specifier [logger]
ERROR StatusLogger Unrecognized conversion specifier [logger] starting at position 47 in conversion pattern.
ERROR StatusLogger Unrecognized format specifier [msg]
ERROR StatusLogger Unrecognized conversion specifier [msg] starting at position 54 in conversion pattern.
ERROR StatusLogger Unrecognized format specifier [n]
ERROR StatusLogger Unrecognized conversion specifier [n] starting at position 56 in conversion pattern.
Exception in thread "main" org.apache.commons.logging.LogConfigurationException: java.lang.ClassNotFoundException: org.apache.commons.logging.impl.LogFactoryImpl (Caused by java.lang.ClassNotFoundException: org.apache.commons.logging.impl.LogFactoryImpl)
    at org.apache.commons.logging.LogFactory.createFactory(LogFactory.java:1158)
    at org.apache.commons.logging.LogFactory$2.run(LogFactory.java:960)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.apache.commons.logging.LogFactory.newFactory(LogFactory.java:957)
    at org.apache.commons.logging.LogFactory.getFactory(LogFactory.java:624)
    at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:655)
    at org.apache.http.conn.ssl.DefaultHostnameVerifier.<init>(DefaultHostnameVerifier.java:69)
    at org.apache.http.impl.client.HttpClientBuilder.build(HttpClientBuilder.java:901)
    at org.apache.hive.jdbc.HiveConnection.getHttpClient(HiveConnection.java:402)
    at org.apache.hive.jdbc.HiveConnection.createHttpTransport(HiveConnection.java:250)
    at org.apache.hive.jdbc.HiveConnection.openTransport(HiveConnection.java:193)
    at org.apache.hive.jdbc.HiveConnection.<init>(HiveConnection.java:157)
    at org.apache.hive.jdbc.HiveDriver.connect(HiveDriver.java:107)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at hive.main(hive.java:17)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.impl.LogFactoryImpl
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at org.apache.commons.logging.LogFactory.createFactory(LogFactory.java:1020)
    ... 15 more