If HBase is running in standalone mode, it's running an embedded ZK and there's no need for zoo.cfg. You can connect to hbase? If so, the master status UI or the hbase shell can tell you the ZK connection details.
On Tue, Jun 23, 2015 at 12:01 PM, Alex Kamil <[email protected]> wrote: > > getting below error when using multitenant phoenix connection > > > is there a way to programmatically specify zoo.cfg and hbase-site.xml > properties (like *server.0=myhostname:2888:3888) *when initializing > phoenix connection? > > > adding hbase-site.xml and zoo.cfg to classpath doesnt help in this case, it > only works when zoo.cfg is inside the client jar, but we can't use this > option > > > some notes: > > - hbase is running is standalone mode and zk quorum is defined in zoo.cfg > as *server.0=myhostname:2888:3888* > > - phoenix client connects without issues for the first tenant, but when > trying to connect additional tenants with their tenant-specific connections > it throws this error > > - setting environment variable HBASE_CONF_DIR and copying zoo.cfg there > doesn't help > > > stacktrace: > > org.apache.hadoop.hbase.zookeeper.ZKConfig getZKQuorumServersString ERROR > no valid quorum servers found in zoo.cfg > > org.apache.commons.dbcp.SQLNestedException: Cannot create > PoolableConnectionFactory (An error is preventing HBase from connecting to > ZooKeeper) > > at > org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1549) > > at > org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1388) > > at > org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044) > > Caused by: org.apache.phoenix.exception.PhoenixIOException: An error is > preventing HBase from connecting to ZooKeeper > > ... > > at > org.apache.phoenix.util.ServerUtil.parseServerException(ServerUtil.java:96) > > at > org.apache.phoenix.query.ConnectionQueryServicesImpl.ensureTableCreated(ConnectionQueryServicesImpl.java:776) > > at > org.apache.phoenix.query.ConnectionQueryServicesImpl.createTable(ConnectionQueryServicesImpl.java:986) > > at > org.apache.phoenix.query.DelegateConnectionQueryServices.createTable(DelegateConnectionQueryServices.java:110) > > at > org.apache.phoenix.schema.MetaDataClient.createTableInternal(MetaDataClient.java:1448) > > at > org.apache.phoenix.schema.MetaDataClient.createTable(MetaDataClient.java:556) > > at > org.apache.phoenix.compile.CreateTableCompiler$2.execute(CreateTableCompiler.java:175) > > at > org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:275) > > at > org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:266) > > at > org.apache.phoenix.util.PhoenixContextExecutor.call(PhoenixContextExecutor.java:54) > > at > org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:265) > > at > org.apache.phoenix.jdbc.PhoenixStatement.executeUpdate(PhoenixStatement.java:1045) > > at > org.apache.phoenix.query.ConnectionQueryServicesImpl$11.call(ConnectionQueryServicesImpl.java:1339) > > at > org.apache.phoenix.query.ConnectionQueryServicesImpl$11.call(ConnectionQueryServicesImpl.java:1308) > > at > org.apache.phoenix.util.PhoenixContextExecutor.call(PhoenixContextExecutor.java:54) > > at > org.apache.phoenix.query.ConnectionQueryServicesImpl.init(ConnectionQueryServicesImpl.java:1308) > > at > org.apache.phoenix.jdbc.PhoenixDriver.getConnectionQueryServices(PhoenixDriver.java:162) > > at > org.apache.phoenix.jdbc.PhoenixEmbeddedDriver.connect(PhoenixEmbeddedDriver.java:126) > > > > Thanks > > Alex >
