phoenix-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ashish tapdiya <ashishtapd...@gmail.com>
Subject Re: Unable to discover tx service error
Date Sat, 05 Nov 2016 22:20:27 GMT
Thanks for the reply folks.

I did the configuration as described in the Transactions page of our
website; however, I figured the issue was related to me running HBase
master, Tephra server and Phoenix client on the same machine and incorrect
configurations.

Tephra server was using the hbase-site.xml on the classpath configured for
the Phoenix client which just had phoenix.transactions.enabled set to true
but data.tx.snapshot.dir was missing hence Tephra server was failing. On
the other hand, psql.py and mapreduce based loaders were using the
hbase-site.xml present in the hbase/conf directory which had
data.tx.snapshot.dir set but phoenix.transactions.enabled was not set to
true (default false was used) hence population of tables created with
transactional = true was failing.

After having both configurations (client + server) in each hbase-site.xml
files everything works fine.

Thanks,
Ashish


On Fri, Nov 4, 2016 at 6:39 PM, James Taylor <jamestaylor@apache.org> wrote:

> Ashish,
> Did you see these directions here: https://phoenix.apache.
> org/transactions.html?
> Thanks,
> James
>
> On Fri, Nov 4, 2016 at 4:01 PM, Poorna Chandra <poornachandra@gmail.com>
> wrote:
>
>> Hi Ashish,
>>
>> Is phoenix.transactions.enabled property set in hbase-site.xml on the
>> client side? Not setting that could be one of the reasons for the NPE.
>>
>> Thanks,
>> Poorna.
>>
>>
>> On Thu, Nov 3, 2016 at 7:02 PM, ashish tapdiya <ashishtapdiya@gmail.com>
>> wrote:
>>
>>> Hi Poorna,
>>>
>>> jps showed that process was running however logs had error related to
>>> tx.data.dir not setup correctly. I added data.tx.snapshot.dir to client as
>>> well and then logs didn't show any error and I was able to create schema.
>>>
>>> However, now when I try to populate a table created with
>>> transactional=true, it fails
>>>
>>> 1) Error thorugh mapreduce bulk loader:
>>> Error: java.lang.RuntimeException: java.lang.NullPointerException
>>>         at org.apache.phoenix.mapreduce.FormatToBytesWritableMapper.map
>>> (FormatToBytesWritableMapper.java:202)
>>>         at org.apache.phoenix.mapreduce.FormatToBytesWritableMapper.map
>>> (FormatToBytesWritableMapper.java:74)
>>>         at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:145)
>>>         at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:7
>>> 84)
>>>         at org.apache.hadoop.mapred.MapTask.run(MapTask.java:341)
>>>         at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:163)
>>>         at java.security.AccessController.doPrivileged(Native Method)
>>>         at javax.security.auth.Subject.doAs(Subject.java:415)
>>>         at org.apache.hadoop.security.UserGroupInformation.doAs(UserGro
>>> upInformation.java:1692)
>>>         at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:158)
>>> Caused by: java.lang.NullPointerException
>>>         at org.apache.tephra.TransactionContext.start(TransactionContex
>>> t.java:91)
>>>         at org.apache.phoenix.execute.MutationState.startTransaction(Mu
>>> tationState.java:422)
>>>         at org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixState
>>> ment.java:339)
>>>         at org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixState
>>> ment.java:332)
>>>         at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)
>>>         at org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(Pho
>>> enixStatement.java:331)
>>>         at org.apache.phoenix.jdbc.PhoenixStatement.execute(PhoenixStat
>>> ement.java:250)
>>>         at org.apache.phoenix.jdbc.PhoenixPreparedStatement.execute(Pho
>>> enixPreparedStatement.java:172)
>>>         at org.apache.phoenix.jdbc.PhoenixPreparedStatement.execute(Pho
>>> enixPreparedStatement.java:177)
>>>         at org.apache.phoenix.util.csv.CsvUpsertExecutor.execute(CsvUps
>>> ertExecutor.java:86)
>>>         at org.apache.phoenix.util.csv.CsvUpsertExecutor.execute(CsvUps
>>> ertExecutor.java:46)
>>>         at org.apache.phoenix.util.UpsertExecutor.execute(UpsertExecuto
>>> r.java:133)
>>>         at org.apache.phoenix.mapreduce.FormatToBytesWritableMapper.map
>>> (FormatToBytesWritableMapper.java:171)
>>>
>>>
>>> 2) Error through psql.py
>>> ERROR util.CSVCommonsLoader: Error upserting record
>>>
>>> Thanks,
>>> Ashish
>>>
>>> On Thu, Nov 3, 2016 at 8:25 PM, Poorna Chandra <poorna@apache.org>
>>> wrote:
>>>
>>>> Hi Ashish,
>>>>
>>>> Looks like transaction manager may not be running. Is the transaction
>>>> manager running? If so, can you look into the transaction manager log to
>>>> see if there are any errors?
>>>>
>>>> Thanks,
>>>> Poorna.
>>>>
>>>>
>>>> On Thu, Nov 3, 2016 at 10:20 AM, ashish tapdiya <
>>>> ashishtapdiya@gmail.com> wrote:
>>>>
>>>>> Hi,
>>>>>
>>>>> I am trying to create transactional tables and during table creation
>>>>> following error is thrown (phoenix version is 4.8.1):
>>>>>
>>>>>
>>>>> java.lang.RuntimeException: java.lang.Exception: Thrift error for
>>>>> org.apache.tephra.distributed.TransactionServiceClient$2@6ea02a8d:
>>>>> Unable to discover tx service.
>>>>>         at com.google.common.base.Throwab
>>>>> les.propagate(Throwables.java:160)
>>>>>         at org.apache.tephra.distributed.
>>>>> TransactionServiceClient.startShort(TransactionServiceClient.java:268)
>>>>>         at org.apache.tephra.TransactionC
>>>>> ontext.start(TransactionContext.java:91)
>>>>>         at org.apache.phoenix.execute.Mut
>>>>> ationState.startTransaction(MutationState.java:422)
>>>>>         at org.apache.phoenix.util.Transa
>>>>> ctionUtil.getTableTimestamp(TransactionUtil.java:99)
>>>>>         at org.apache.phoenix.schema.Meta
>>>>> DataClient.createTableInternal(MetaDataClient.java:1891)
>>>>>         at org.apache.phoenix.schema.Meta
>>>>> DataClient.createTable(MetaDataClient.java:940)
>>>>>         at org.apache.phoenix.compile.Cre
>>>>> ateTableCompiler$2.execute(CreateTableCompiler.java:193)
>>>>>         at org.apache.phoenix.jdbc.Phoeni
>>>>> xStatement$2.call(PhoenixStatement.java:344)
>>>>>         at org.apache.phoenix.jdbc.Phoeni
>>>>> xStatement$2.call(PhoenixStatement.java:332)
>>>>>         at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)
>>>>>         at org.apache.phoenix.jdbc.Phoeni
>>>>> xStatement.executeMutation(PhoenixStatement.java:331)
>>>>>         at org.apache.phoenix.jdbc.Phoeni
>>>>> xPreparedStatement.executeUpdate(PhoenixPreparedStatement.java:199)
>>>>>         at Populate_Transact.createTables(Populate_Transact.java:75)
>>>>>         at Populate_Transact.main(Populate_Transact.java:30)
>>>>> Caused by: java.lang.Exception: Thrift error for
>>>>> org.apache.tephra.distributed.TransactionServiceClient$2@6ea02a8d:
>>>>> Unable to discover tx service.
>>>>>         at org.apache.tephra.distributed.
>>>>> TransactionServiceClient.execute(TransactionServiceClient.java:227)
>>>>>         at org.apache.tephra.distributed.
>>>>> TransactionServiceClient.execute(TransactionServiceClient.java:185)
>>>>>         at org.apache.tephra.distributed.
>>>>> TransactionServiceClient.startShort(TransactionServiceClient.java:259)
>>>>>         ... 13 more
>>>>> Caused by: org.apache.phoenix.shaded.org.apache.thrift.TException:
>>>>> Unable to discover tx service.
>>>>>         at org.apache.tephra.distributed.
>>>>> AbstractClientProvider.newClient(AbstractClientProvider.java:106)
>>>>>         at org.apache.tephra.distributed.
>>>>> AbstractClientProvider.newClient(AbstractClientProvider.java:85)
>>>>>         at org.apache.tephra.distributed.
>>>>> PooledClientProvider$TxClientPool.create(PooledClientProvider.java:48)
>>>>>         at org.apache.tephra.distributed.
>>>>> PooledClientProvider$TxClientPool.create(PooledClientProvider.java:41)
>>>>>         at org.apache.tephra.distributed.
>>>>> ElasticPool.getOrCreate(ElasticPool.java:138)
>>>>>         at org.apache.tephra.distributed.
>>>>> ElasticPool.obtain(ElasticPool.java:125)
>>>>>         at org.apache.tephra.distributed.
>>>>> PooledClientProvider.getCloseableClient(PooledClientProvider.java:101)
>>>>>         at org.apache.tephra.distributed.
>>>>> TransactionServiceClient.execute(TransactionServiceClient.java:214)
>>>>>
>>>>> Thanks,
>>>>> Ashish
>>>>>
>>>>
>>>>
>>>
>>
>

Mime
View raw message