我正在phoenix-4.7.0上研究HBase-0.98,并尝试编写Java源代码来决定是否可以将phoenix用作SQL-SKIN。

我将phoenix-4.7.0-HBase-0.98-client.jar设置为$ CLASSPATH,它可以正常工作,但是要花几秒钟才能完成新连接的建立。

phoenixTest.java

import java.sql.*;
import java.util.*;
public class phoenixTest {
  public static void main(String args[]) throws Exception {
    Connection conn;
    Properties prop = new Properties();
    Class.forName("org.apache.phoenix.jdbc.PhoenixDriver");
    long startTime = System.currentTimeMillis();
    conn =  DriverManager.getConnection("jdbc:phoenix:localhost:2181:/hbase");
    long estimatedTime = System.currentTimeMillis() - startTime;
    System.out.format("got connection : %s ms\n", Long.toString(estimatedTime));
  }
}

结果
log4j:WARN No appenders could be found for logger(org.apache.hadoop.conf.Configuration.deprecation).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
got connection : 3218 ms

这正常吗?

如果不是,是否有任何方法可以使其更快?

最佳答案

当我们以Phoenix为基准时,我们也会看到这一点。我认为这是因为他们的jdbc客户端是重型客户端。我相信他们正在开发重量更轻的客户端(https://phoenix.apache.org/server.html)。如果您需要低延迟访问,请尝试使用Splice Machine。

https://github.com/splicemachine/spliceengine

它也是开源的。

关于hadoop - Phoenix JDBC连接时间太长,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38733480/

10-16 02:09