You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@phoenix.apache.org by Yiannis Gkoufas <jo...@gmail.com> on 2015/06/17 12:30:07 UTC
Phoenix Client Configuration
Hi there,
I have failed to understand from the documentation where exactly to set the
client configuration.
For the server, I think is clear that I have to modify hbase-site.xml of my
hbase cluster.
But what is the case for the client? It requires to have hbase-site.xml
somewhere in the classpath?
Also how to apply those changes to sqlline.py ?
For instance, I was trying to use UPDATE STATISTICS on a pretty big table
and I was getting timeout exceptions.
Thanks a lot!
Re: Phoenix Client Configuration
Posted by Yiannis Gkoufas <jo...@gmail.com>.
Hi Thomas,
please ignore my last email, I wasn't running the sqlline.py command from
within the bin directory.
Now it works just fine!
Thanks!
On 18 June 2015 at 10:39, Yiannis Gkoufas <jo...@gmail.com> wrote:
> Hi Thomas,
>
> unfortunately just modifying the hbase-site in the current directory of
> phoenix didnt work.
> What I have now is:
>
> <configuration>
> <property>
> <name>hbase.regionserver.wal.codec</name>
>
> <value>org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec</value>
> </property>
> <property>
> <name>phoenix.query.timeoutMs</name>
> <value>1728000000</value>
> </property>
> </configuration>
>
> On the regionservers I have as well:
>
> <property>
> <name>phoenix.query.timeoutMs</name>
> <value>1728000000</value>
> </property>
>
> I have restarted them to take effect.
>
> But when I give UPDATE STATISTICS READINGS ALL; in sqlline.py
>
> I again get:
>
> Error: Operation timed out (state=TIM01,code=6000)
> java.sql.SQLTimeoutException: Operation timed out
> at
> org.apache.phoenix.exception.SQLExceptionCode$14.newException(SQLExceptionCode.java:323)
> at
> org.apache.phoenix.exception.SQLExceptionInfo.buildException(SQLExceptionInfo.java:145)
> at
> org.apache.phoenix.iterate.BaseResultIterators.getIterators(BaseResultIterators.java:587)
> at
> org.apache.phoenix.iterate.ConcatResultIterator.getIterators(ConcatResultIterator.java:50)
> at
> org.apache.phoenix.iterate.ConcatResultIterator.currentIterator(ConcatResultIterator.java:97)
> at
> org.apache.phoenix.iterate.ConcatResultIterator.next(ConcatResultIterator.java:117)
> at
> org.apache.phoenix.iterate.BaseGroupedAggregatingResultIterator.next(BaseGroupedAggregatingResultIterator.java:64)
> at
> org.apache.phoenix.iterate.UngroupedAggregatingResultIterator.next(UngroupedAggregatingResultIterator.java:39)
> at
> org.apache.phoenix.compile.PostDDLCompiler$1.execute(PostDDLCompiler.java:225)
> at
> org.apache.phoenix.schema.MetaDataClient.updateStatisticsInternal(MetaDataClient.java:856)
> at
> org.apache.phoenix.schema.MetaDataClient.updateStatistics(MetaDataClient.java:773)
> at
> org.apache.phoenix.jdbc.PhoenixStatement$ExecutableUpdateStatisticsStatement$1.execute(PhoenixStatement.java:842)
> at
> org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:300)
> at
> org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:292)
> at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)
> at
> org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:290)
> at
> org.apache.phoenix.jdbc.PhoenixStatement.execute(PhoenixStatement.java:1191)
> at sqlline.Commands.execute(Commands.java:822)
> at sqlline.Commands.sql(Commands.java:732)
> at sqlline.SqlLine.dispatch(SqlLine.java:808)
> at sqlline.SqlLine.begin(SqlLine.java:681)
> at sqlline.SqlLine.start(SqlLine.java:398)
> at sqlline.SqlLine.main(SqlLine.java:292)
>
>
> Thanks a lot for spending time on this
>
>
>
> On 17 June 2015 at 22:18, Yiannis Gkoufas <jo...@gmail.com> wrote:
>
>> Thanks a lot Thomas! That was very useful!
>>
>> On 17 June 2015 at 20:04, Thomas D'Silva <td...@salesforce.com> wrote:
>>
>>> If you are running a main class you can use the -cp option to specify
>>> the classpath.
>>> For squirrel maybe you can try to modify squirrel-sql.sh and add the
>>> hbase site location to the -cp flag that is used while starting
>>> squirrel.
>>>
>>> On Wed, Jun 17, 2015 at 11:35 AM, Yiannis Gkoufas <jo...@gmail.com>
>>> wrote:
>>> > Hi Thomas,
>>> >
>>> > thanks for the reply! So whats the case for squirel?
>>> > Or running a main class (which connects to phoenix) from a jar file?
>>> >
>>> > Thanks a lot!
>>> >
>>> > On 17 June 2015 at 19:31, Thomas D'Silva <td...@salesforce.com>
>>> wrote:
>>> >>
>>> >> Yiannis
>>> >>
>>> >> hbase-site.xml needs to be on the client's CLASSPATH in order to get
>>> >> picked up or else it will use the default timeout.
>>> >> When using sqlline it sets the CLASSPATH to the HBASE_CONF_PATH
>>> >> environment variable which default to the current directory.
>>> >> Try running sqlline directly from the bin directory.
>>> >>
>>> >> -Thomas
>>> >>
>>> >> On Wed, Jun 17, 2015 at 3:30 AM, Yiannis Gkoufas <
>>> johngouf85@gmail.com>
>>> >> wrote:
>>> >> > Hi there,
>>> >> >
>>> >> > I have failed to understand from the documentation where exactly to
>>> set
>>> >> > the
>>> >> > client configuration.
>>> >> > For the server, I think is clear that I have to modify
>>> hbase-site.xml of
>>> >> > my
>>> >> > hbase cluster.
>>> >> > But what is the case for the client? It requires to have
>>> hbase-site.xml
>>> >> > somewhere in the classpath?
>>> >> > Also how to apply those changes to sqlline.py ?
>>> >> > For instance, I was trying to use UPDATE STATISTICS on a pretty big
>>> >> > table
>>> >> > and I was getting timeout exceptions.
>>> >> >
>>> >> > Thanks a lot!
>>> >
>>> >
>>>
>>
>>
>
Re: Phoenix Client Configuration
Posted by Yiannis Gkoufas <jo...@gmail.com>.
Hi Thomas,
unfortunately just modifying the hbase-site in the current directory of
phoenix didnt work.
What I have now is:
<configuration>
<property>
<name>hbase.regionserver.wal.codec</name>
<value>org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec</value>
</property>
<property>
<name>phoenix.query.timeoutMs</name>
<value>1728000000</value>
</property>
</configuration>
On the regionservers I have as well:
<property>
<name>phoenix.query.timeoutMs</name>
<value>1728000000</value>
</property>
I have restarted them to take effect.
But when I give UPDATE STATISTICS READINGS ALL; in sqlline.py
I again get:
Error: Operation timed out (state=TIM01,code=6000)
java.sql.SQLTimeoutException: Operation timed out
at
org.apache.phoenix.exception.SQLExceptionCode$14.newException(SQLExceptionCode.java:323)
at
org.apache.phoenix.exception.SQLExceptionInfo.buildException(SQLExceptionInfo.java:145)
at
org.apache.phoenix.iterate.BaseResultIterators.getIterators(BaseResultIterators.java:587)
at
org.apache.phoenix.iterate.ConcatResultIterator.getIterators(ConcatResultIterator.java:50)
at
org.apache.phoenix.iterate.ConcatResultIterator.currentIterator(ConcatResultIterator.java:97)
at
org.apache.phoenix.iterate.ConcatResultIterator.next(ConcatResultIterator.java:117)
at
org.apache.phoenix.iterate.BaseGroupedAggregatingResultIterator.next(BaseGroupedAggregatingResultIterator.java:64)
at
org.apache.phoenix.iterate.UngroupedAggregatingResultIterator.next(UngroupedAggregatingResultIterator.java:39)
at
org.apache.phoenix.compile.PostDDLCompiler$1.execute(PostDDLCompiler.java:225)
at
org.apache.phoenix.schema.MetaDataClient.updateStatisticsInternal(MetaDataClient.java:856)
at
org.apache.phoenix.schema.MetaDataClient.updateStatistics(MetaDataClient.java:773)
at
org.apache.phoenix.jdbc.PhoenixStatement$ExecutableUpdateStatisticsStatement$1.execute(PhoenixStatement.java:842)
at
org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:300)
at
org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:292)
at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)
at
org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:290)
at
org.apache.phoenix.jdbc.PhoenixStatement.execute(PhoenixStatement.java:1191)
at sqlline.Commands.execute(Commands.java:822)
at sqlline.Commands.sql(Commands.java:732)
at sqlline.SqlLine.dispatch(SqlLine.java:808)
at sqlline.SqlLine.begin(SqlLine.java:681)
at sqlline.SqlLine.start(SqlLine.java:398)
at sqlline.SqlLine.main(SqlLine.java:292)
Thanks a lot for spending time on this
On 17 June 2015 at 22:18, Yiannis Gkoufas <jo...@gmail.com> wrote:
> Thanks a lot Thomas! That was very useful!
>
> On 17 June 2015 at 20:04, Thomas D'Silva <td...@salesforce.com> wrote:
>
>> If you are running a main class you can use the -cp option to specify
>> the classpath.
>> For squirrel maybe you can try to modify squirrel-sql.sh and add the
>> hbase site location to the -cp flag that is used while starting
>> squirrel.
>>
>> On Wed, Jun 17, 2015 at 11:35 AM, Yiannis Gkoufas <jo...@gmail.com>
>> wrote:
>> > Hi Thomas,
>> >
>> > thanks for the reply! So whats the case for squirel?
>> > Or running a main class (which connects to phoenix) from a jar file?
>> >
>> > Thanks a lot!
>> >
>> > On 17 June 2015 at 19:31, Thomas D'Silva <td...@salesforce.com>
>> wrote:
>> >>
>> >> Yiannis
>> >>
>> >> hbase-site.xml needs to be on the client's CLASSPATH in order to get
>> >> picked up or else it will use the default timeout.
>> >> When using sqlline it sets the CLASSPATH to the HBASE_CONF_PATH
>> >> environment variable which default to the current directory.
>> >> Try running sqlline directly from the bin directory.
>> >>
>> >> -Thomas
>> >>
>> >> On Wed, Jun 17, 2015 at 3:30 AM, Yiannis Gkoufas <johngouf85@gmail.com
>> >
>> >> wrote:
>> >> > Hi there,
>> >> >
>> >> > I have failed to understand from the documentation where exactly to
>> set
>> >> > the
>> >> > client configuration.
>> >> > For the server, I think is clear that I have to modify
>> hbase-site.xml of
>> >> > my
>> >> > hbase cluster.
>> >> > But what is the case for the client? It requires to have
>> hbase-site.xml
>> >> > somewhere in the classpath?
>> >> > Also how to apply those changes to sqlline.py ?
>> >> > For instance, I was trying to use UPDATE STATISTICS on a pretty big
>> >> > table
>> >> > and I was getting timeout exceptions.
>> >> >
>> >> > Thanks a lot!
>> >
>> >
>>
>
>
Re: Phoenix Client Configuration
Posted by Yiannis Gkoufas <jo...@gmail.com>.
Thanks a lot Thomas! That was very useful!
On 17 June 2015 at 20:04, Thomas D'Silva <td...@salesforce.com> wrote:
> If you are running a main class you can use the -cp option to specify
> the classpath.
> For squirrel maybe you can try to modify squirrel-sql.sh and add the
> hbase site location to the -cp flag that is used while starting
> squirrel.
>
> On Wed, Jun 17, 2015 at 11:35 AM, Yiannis Gkoufas <jo...@gmail.com>
> wrote:
> > Hi Thomas,
> >
> > thanks for the reply! So whats the case for squirel?
> > Or running a main class (which connects to phoenix) from a jar file?
> >
> > Thanks a lot!
> >
> > On 17 June 2015 at 19:31, Thomas D'Silva <td...@salesforce.com> wrote:
> >>
> >> Yiannis
> >>
> >> hbase-site.xml needs to be on the client's CLASSPATH in order to get
> >> picked up or else it will use the default timeout.
> >> When using sqlline it sets the CLASSPATH to the HBASE_CONF_PATH
> >> environment variable which default to the current directory.
> >> Try running sqlline directly from the bin directory.
> >>
> >> -Thomas
> >>
> >> On Wed, Jun 17, 2015 at 3:30 AM, Yiannis Gkoufas <jo...@gmail.com>
> >> wrote:
> >> > Hi there,
> >> >
> >> > I have failed to understand from the documentation where exactly to
> set
> >> > the
> >> > client configuration.
> >> > For the server, I think is clear that I have to modify hbase-site.xml
> of
> >> > my
> >> > hbase cluster.
> >> > But what is the case for the client? It requires to have
> hbase-site.xml
> >> > somewhere in the classpath?
> >> > Also how to apply those changes to sqlline.py ?
> >> > For instance, I was trying to use UPDATE STATISTICS on a pretty big
> >> > table
> >> > and I was getting timeout exceptions.
> >> >
> >> > Thanks a lot!
> >
> >
>
Re: Phoenix Client Configuration
Posted by Thomas D'Silva <td...@salesforce.com>.
If you are running a main class you can use the -cp option to specify
the classpath.
For squirrel maybe you can try to modify squirrel-sql.sh and add the
hbase site location to the -cp flag that is used while starting
squirrel.
On Wed, Jun 17, 2015 at 11:35 AM, Yiannis Gkoufas <jo...@gmail.com> wrote:
> Hi Thomas,
>
> thanks for the reply! So whats the case for squirel?
> Or running a main class (which connects to phoenix) from a jar file?
>
> Thanks a lot!
>
> On 17 June 2015 at 19:31, Thomas D'Silva <td...@salesforce.com> wrote:
>>
>> Yiannis
>>
>> hbase-site.xml needs to be on the client's CLASSPATH in order to get
>> picked up or else it will use the default timeout.
>> When using sqlline it sets the CLASSPATH to the HBASE_CONF_PATH
>> environment variable which default to the current directory.
>> Try running sqlline directly from the bin directory.
>>
>> -Thomas
>>
>> On Wed, Jun 17, 2015 at 3:30 AM, Yiannis Gkoufas <jo...@gmail.com>
>> wrote:
>> > Hi there,
>> >
>> > I have failed to understand from the documentation where exactly to set
>> > the
>> > client configuration.
>> > For the server, I think is clear that I have to modify hbase-site.xml of
>> > my
>> > hbase cluster.
>> > But what is the case for the client? It requires to have hbase-site.xml
>> > somewhere in the classpath?
>> > Also how to apply those changes to sqlline.py ?
>> > For instance, I was trying to use UPDATE STATISTICS on a pretty big
>> > table
>> > and I was getting timeout exceptions.
>> >
>> > Thanks a lot!
>
>
Re: Phoenix Client Configuration
Posted by Yiannis Gkoufas <jo...@gmail.com>.
Hi Thomas,
thanks for the reply! So whats the case for squirel?
Or running a main class (which connects to phoenix) from a jar file?
Thanks a lot!
On 17 June 2015 at 19:31, Thomas D'Silva <td...@salesforce.com> wrote:
> Yiannis
>
> hbase-site.xml needs to be on the client's CLASSPATH in order to get
> picked up or else it will use the default timeout.
> When using sqlline it sets the CLASSPATH to the HBASE_CONF_PATH
> environment variable which default to the current directory.
> Try running sqlline directly from the bin directory.
>
> -Thomas
>
> On Wed, Jun 17, 2015 at 3:30 AM, Yiannis Gkoufas <jo...@gmail.com>
> wrote:
> > Hi there,
> >
> > I have failed to understand from the documentation where exactly to set
> the
> > client configuration.
> > For the server, I think is clear that I have to modify hbase-site.xml of
> my
> > hbase cluster.
> > But what is the case for the client? It requires to have hbase-site.xml
> > somewhere in the classpath?
> > Also how to apply those changes to sqlline.py ?
> > For instance, I was trying to use UPDATE STATISTICS on a pretty big table
> > and I was getting timeout exceptions.
> >
> > Thanks a lot!
>
Re: Phoenix Client Configuration
Posted by Thomas D'Silva <td...@salesforce.com>.
Yiannis
hbase-site.xml needs to be on the client's CLASSPATH in order to get
picked up or else it will use the default timeout.
When using sqlline it sets the CLASSPATH to the HBASE_CONF_PATH
environment variable which default to the current directory.
Try running sqlline directly from the bin directory.
-Thomas
On Wed, Jun 17, 2015 at 3:30 AM, Yiannis Gkoufas <jo...@gmail.com> wrote:
> Hi there,
>
> I have failed to understand from the documentation where exactly to set the
> client configuration.
> For the server, I think is clear that I have to modify hbase-site.xml of my
> hbase cluster.
> But what is the case for the client? It requires to have hbase-site.xml
> somewhere in the classpath?
> Also how to apply those changes to sqlline.py ?
> For instance, I was trying to use UPDATE STATISTICS on a pretty big table
> and I was getting timeout exceptions.
>
> Thanks a lot!