[ 
https://issues.apache.org/jira/browse/PHOENIX-1199?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14108115#comment-14108115
 ] 

James Taylor commented on PHOENIX-1199:
---------------------------------------

The Phoenix binaries will work against 0.98.1 and above, but *compiles" only on 
0.98.4 or above. This is an important distinction to make, as the majority of 
our users use our binaries directly.

The fix that [~jesse_yates] made to use the new RPC changes will simply not be 
used at runtime if a pre 0.98.4 HBase version is used. FWIW, this is a very 
important fix to prevent deadlocks under load during mutable secondary index 
maintenance (PHOENIX-938). We made a conscious decision to introduce a *compile 
time* dependency on 0.98.4, but ensured that at runtime 0.98.1 still works.

The ServerName compilation issue will also have no impact at runtime - the sole 
occurrence of constructing a ServerName is in ConnectionlessQueryServicesImpl 
which is not used anywhere outside of unit tests. I've attached a small change 
that just tweaks the way in which it's constructed which hopefully will get rid 
of that particular CDH compilation issue. If CDH has the 
ServerName.parseServerName(String) method, then all should be well - would 
someone mind verifying that?

I believe the issue that [~russell.jurney] ran into stems from a runtime 
problem he ran into trying to use the phoenix-pig module with CDH 5.1. Correct 
me if I'm wrong, but if the Phoenix jars just *worked*, you wouldn't have done 
down the path of trying to compile against CDH. Is that correct, Russell?

The issue, I think, is that the phoenix-pig module was only compiled against 
the hadoop1 profile. Instead, it should be compiled against both, with separate 
jars built and placed in the phoenix-4.1.0-bin/hadoop1 and 
phoenix-4.1.0-bin/hadoop2 directories (instead of phoenix-4.1.0-bin/common). In 
that case, you'd simply use the hadoop2/phoenix-pig jar with CDH 5.1. This is 
likely the case with the phoenix-flume module as well. If someone wants to 
volunteer to confirm that, it'd be much appreciated.

Both the phoenix-pig module and the phoenix-flume module are in need of an 
owner and some TLC (we're not currently using these modules at Salesforce.com, 
though, of course that may always change). [~maghamravikiran] has expressed 
interested in maintaining these. If there's not community interest in 
maintaining these modules, I think we should remove them for the next release 
(this reminds me of the HBase contrib stuff I've heard about in the past).

I think compilation against other vendors distributions is a non goal. As 
Andrew pointed out before, we have no control over what vendors include/don't 
include in their distribution. I do think we should make a best effort attempt 
to have Phoenix *run* against other distributions. However, ultimately this is 
controlled by the vendor and the best path to ensure this is to get Phoenix 
into those distributions as Hortonworks has done. If you agree, let *your* 
vendor know.

> Determine options for Phoenix 4.1.x supporting CDH 5.1 
> -------------------------------------------------------
>
>                 Key: PHOENIX-1199
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-1199
>             Project: Phoenix
>          Issue Type: Bug
>    Affects Versions: 4.1
>            Reporter: James Taylor
>         Attachments: PHOENIX-1199.patch
>
>
> Let's figure out the most painless way of supporting CDH 5.1 for Phoenix 4.1. 
> I'm not as concerned with compile-time, as we know we have a dependency on 
> HBase 0.98.4 (to fix a deadlock issue). However, this is not a runtime 
> dependency. But the lack of the ServerName is going to be a problem at 
> runtime. Are there other problematic class references?
> What are our options? Should we try to get something in the next HBase 
> release that'll help (making constructors public, for example)? Or can we not 
> use ServerName in the Phoenix code? Are the old HBase APIs available still? 
> You all would know better than me.
> Or should we just wait for the next patch release from Cloudera and ask 
> nicely that they make it more compatible? smile :-)
> [~apurtell], [~stack], [~lhofhansl], [~jesse_yates]



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to