Your classpath variable should be pointing to the folder containing your
hbase-site.xml and not directly to the file.

But certain distributions tend to override that envvar inside hadoop-env.sh
or hadoop.sh .

Out of curiosity, have you written a map-reduce application and are you
querying phoenix from map functions?

On Wed, 20 Feb 2019, 23:34 Xiaoxiao Wang, <xxw...@23andme.com.invalid>
wrote:

> HI Pedro
>
> thanks for your help, I think we know that we need to set the classpath to
> the hadoop program, and what we tried was
> HADOOP_CLASSPATH=/etc/hbase/conf/hbase-site.xml hadoop jar $test_jar but it
> didn't work
> So we are wondering if anything we did wrong?
>
> On Wed, Feb 20, 2019 at 3:24 PM Pedro Boado <pbo...@apache.org> wrote:
>
> > Hi,
> >
> > How many concurrent client connections are we talking about? You might be
> > opening more connections than the RS can handle ( under these
> circumstances
> > most of the client threads would end exhausting their retry count ) . I
> > would bet that you've get a bottleneck in the RS keeping SYSTEM.CATALOG
> > table (this was an issue in 4.7 ) as every new connection would be
> querying
> > this table first.
> >
> > Try to update to our cloudera-compatible parcels instead of using clabs -
> > which are discontinued by Cloudera and not supported by the Apache
> Phoenix
> > project - .
> >
> > Once updated to phoenix 4.14 you should be able to use
> > UPDATE_CACHE_FREQUENCY
> > property in order to reduce pressure on system tables.
> >
> > Adding an hbase-site.xml with the required properties to the client
> > application classpath should just work.
> >
> > I hope it helps.
> >
> > On Wed, 20 Feb 2019, 22:50 Xiaoxiao Wang, <xxw...@23andme.com.invalid>
> > wrote:
> >
> > > Hi, who may help
> > >
> > > We are running a Hadoop application that needs to use phoenix JDBC
> > > connection from the workers.
> > > The connection works, but when too many connection established at the
> > same
> > > time, it throws RPC timeouts
> > >
> > > Error: java.io.IOException:
> > > org.apache.phoenix.exception.PhoenixIOException: Failed after
> > attempts=36,
> > > exceptions: Wed Feb 20 20:02:43 UTC 2019, null, java.net
> > .SocketTimeoutException:
> > > callTimeout=60000, callDuration=60506. ...
> > >
> > > So we have figured we should probably set a higher  hbase.rpc.timeout
> > > value, but then it comes to the issue:
> > >
> > > A little bit background on how we run the application
> > >
> > > Here is how we get PhoenixConnection from java program
> > > DriverManager.getConnection("jdbc:phoenix:host", props)
> > > And we trigger the program by using
> > > hadoop jar $test_jar
> > >
> > >
> > > We have tried multiple approaches to load hbase/phoenix configuration,
> > but
> > > none of them get respected by PhoenixConnection, here are the methods
> we
> > > tried
> > > * Pass hbase_conf_dir through HADOOP_CLASSPATH, so run the hadoop
> > > application like HADOOP_CLASSPATH=/etc/hbase/conf/ hadoop jar
> $test_jar .
> > > However, PhoenixConnection doesn’t respect the parameters
> > > * Tried passing -Dhbase.rpc.timeout=1800, which is picked up by hbase
> > conf
> > > object, but not PhoniexConnection
> > > * Explicitly set those parameters and pass them to the
> PhoenixConnection
> > > props.setProperty("hbase.rpc.timeout", "1800");
> > > props.setProperty(“phoenix.query.timeoutMs", "1800");
> > > Also didn’t get respected by PhoenixConnection
> > > * also tried what is suggested by phoenix here
> > > https://phoenix.apache.org/#connStr , use :longRunning together with
> > > those properties, still didn’t seem to work
> > >
> > >
> > > Besides all those approaches we tried, I have explicitly output those
> > > parameters we care from the connection,
> > > connection.getQueryServices().getProps()
> > > The default values I got are 60000 for hbase.rpc.timeout, and 600k for
> > > phoenix.query.timeoutMs , so I have tried to run a query lthat would
> run
> > > longer than 10 mins, Ideally it should timeout, however, it runs over
> 20
> > > mins and didn’t timeout. So I’m wondering how PhoenixConnection respect
> > > those properties?
> > >
> > >
> > > So with some of your help, we’d like to know if there’s any thing wrong
> > > with our approaches. And we’d like to get rid of those
> > SocketTimeExceptions.
> > > We are using phoenix-core version is 4.7.0-clabs-phoenix1.3.0 , and our
> > > phoenix-client version is phoenix-4.7.0-clabs-phoenix1.3.0.23  (we have
> > > tried phoenix-4.14.0-HBase-1.3 as well, which didn’t work either).
> > >
> > >
> > > Thanks for your time
> > >
> > >
> > >
> > >
> > >
> >
>

Reply via email to