我无法通过 Apache phoenix 驱动程序连接到 HBase。环境信息:hadoop-2.6.0。
hbase-0.98.9-hadoop2。
phoenix-4.1.0-server-hadoop2(保留在所有区域服务器上)。
phoenix-4.1.0-client-hadoop2(使用这个jar创建jdbc连接)。
Java客户端,我收到异常
引起:org.apache.phoenix.exception.PhoenixIOException: org.apache.hadoop.hbase.DoNotRetryIOException: java.io.IOException: Class org.apache.phoenix.coprocessor.MetaDataRegionObserver 不能在...加载
引起:java .io.IOException:类 org.apache.phoenix.coprocessor.MetaDataRegionObserver 无法在 org.apache.hadoop.hbase.regionserver.RegionCoprocessorHost.testTableCoprocessorAttrs 加载...
在 HBase 主节点日志中,我收到此错误:
2015-02-02 12:48:11,550 调试 [FifoRpcScheduler.handler1-thread-14] util.FSTableDescriptors:readTableDecriptor 期间出现异常。当前表名 = SYSTEM.CATALOG org.apache.hadoop.hbase.TableInfoMissingException: hdfs://HadoopNode:9000/home/hduser/Data/hbase/data/default/SYSTEM.CATALOG 下没有表描述符文件
我用来创建凤凰连接的代码:
字符串 zkQuorum = "HbaseMasterNode:2222";
try
{
Class.forName("org.apache.phoenix.jdbc.PhoenixDriver");
String connectionURL = "jdbc:phoenix:" + zkQuorum;
Connection connection = DriverManager.getConnection(connectionURL);
System.out.println(connection);
}
catch (Exception e)
{
throw new IllegalArgumentException("Create phoenix connection(" + zkQuorum + ") throw exception", e);
}
在基本 Hbase java API 的帮助下,我可以连接,但只有当我尝试将 Phoenix 驱动程序用于 HBase 时,我才会遇到这个问题。