当前位置: 首页 > 知识库问答 >
问题:

与Apache Phoenix连接时出错

桂德义
2023-03-14
public class SampleHbasePhoenixConnection {
    static final String DB_URL = "jdbc:phoenix:hbaseServer:hbasePort:/";
    public static void main(String args[]) throws Exception {
        Connection conn = null;
        Statement st = null;
        try {
            Class.forName("org.apache.phoenix.jdbc.PhoenixDriver");
            System.out.println("Connecting to database..");
            conn = DriverManager.getConnection(DB_URL);
            System.out.println("Creating statement...");
            st = conn.createStatement();
            String sql;
            sql = "SELECT top 10 * FROM HBaseTable";
            ResultSet rs = st.executeQuery(sql);
            rs.close();
            st.close();
            conn.close();
        } catch (SQLException se) {
            se.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                if (st != null)
                    st.close();
            } catch (SQLException se2) {
                se2.printStackTrace();
            }
            try {
                if (conn != null)
                    conn.close();
            } catch (SQLException se) {
                se.printStackTrace();
            }
        }
    }
}
        <dependency>
            <groupId>org.apache.hbase</groupId>
            <artifactId>hbase-client</artifactId>
            <version>1.2.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.phoenix</groupId>
            <artifactId>phoenix-core</artifactId>
            <version>4.0.0-incubating</version>
        </dependency>
                <dependency>
            <groupId>org.apache.phoenix</groupId>
            <artifactId>phoenix-core</artifactId>
            <version>5.0.0-HBase-2.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.phoenix</groupId>
            <artifactId>phoenix</artifactId>
            <version>5.0.0-HBase-2.0</version>
            <type>pom</type>
        </dependency>
Exception in thread "main" com.google.common.util.concurrent.ExecutionError: java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/CellComparatorImpl
    at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2254)
    at com.google.common.cache.LocalCache.get(LocalCache.java:3985)
    at com.google.common.cache.LocalCache$LocalManualCache.get(LocalCache.java:4788)
    at org.apache.phoenix.jdbc.PhoenixDriver.getConnectionQueryServices(PhoenixDriver.java:241)
    at org.apache.phoenix.jdbc.PhoenixEmbeddedDriver.createConnection(PhoenixEmbeddedDriver.java:150)
    at org.apache.phoenix.jdbc.PhoenixDriver.connect(PhoenixDriver.java:221)
    at java.sql.DriverManager.getConnection(DriverManager.java:664)
    at java.sql.DriverManager.getConnection(DriverManager.java:270)
    at SampleHbaseConnection.main(SampleHbaseConnection.java:35)
Caused by: java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/CellComparatorImpl
    at org.apache.phoenix.hbase.index.util.KeyValueBuilder.get(KeyValueBuilder.java:71)
    at org.apache.phoenix.query.ConnectionQueryServicesImpl.<init>(ConnectionQueryServicesImpl.java:398)
    at org.apache.phoenix.jdbc.PhoenixDriver$3.call(PhoenixDriver.java:248)
    at org.apache.phoenix.jdbc.PhoenixDriver$3.call(PhoenixDriver.java:241)
    at com.google.common.cache.LocalCache$LocalManualCache$1.load(LocalCache.java:4791)
    at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3584)
    at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2372)
    at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2335)
    at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2250)
    ... 8 more
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.hbase.CellComparatorImpl
    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(ClassLoader.java:357)
    ... 17 more

共有1个答案

衡子琪
2023-03-14

我的猜测是,您的Phoenix Core的4.0.0孵化版本与您的Hbase客户端版本不兼容。

然而,您仍然有第二个版本的who似乎兼容,但不幸的是在运行时没有首先使用。

只需删除此依赖项:

    <dependency>
        <groupId>org.apache.phoenix</groupId>
        <artifactId>phoenix-core</artifactId>
        <version>4.0.0-incubating</version>
    </dependency>
 类似资料:
  • 我已经下载了连接器,并将jar文件保存在文件夹下,即使这样我也面临着这个问题。

  • 我正在配置jboss服务器,试图远程监控JVM。我已经在独立文件中配置了JMX。但是当我试图从jconsole连接时,我得到了连接超时的错误。我们在它上面使用JBOSS pega应用程序 版本: JBOSS-7.1 JDK-1.8.231 我设置的配置是 jar 和文件路径 当我试图连接到服务器时,我得到了这个tcp转储值。 我已经尝试了所有设置,但找不到结果。 有人能帮我吗

  • 问题内容: 当我尝试将SVN连接到Eclipse时,出现以下错误:知道如何解决吗? 问题答案: 选择SVN接口: 客户端:SVNKit(纯Java) 应用并重试。

  • 当应用程序尝试打开与硬件HSM的连接时,收到CKR\U GENERAL\U错误。 详细的错误是: 有人能告诉我这个错误的原因吗?该应用程序与软件HSM配合良好。 H/W HSM详细信息: ProtectToolkit C密钥管理实用程序:4.2.0(甚至在4.3.0中试用过) 制造商:Eracom 硬件版本:66.00 固件版本:2.02

  • com.microsoft.sqlserver.jdbc.sqlserverexception:到主机桌面-Q5K9FE6端口1433的TCP/IP连接失败。错误:“连接被拒绝:没有更多信息。请验证连接属性。确保主机上正在运行SQL Server实例,并接受端口上的TCP/IP连接。确保到端口的TCP连接没有被防火墙阻止。”在com.microsoft.sqlserver.jdbc.sqlserv

  • 我在Ubuntu 14.04中使用XAMPP for linux。在终端上启动服务时,打印下一个日志: sudo /opt/lampp/lampp启动 "开始XAMPPLinux5.5.30-0... XAMPP:正在启动Apache。。。好啊 XAMPP:正在启动MySQL。。。已经在运行了。 XAMPP:开始ProFTPD...好的。" 我不知道为什么当我第一次启动XAMPPm时,MySQL服