You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Geoffrey Jacoby (Jira)" <ji...@apache.org> on 2021/08/03 22:13:00 UTC

[jira] [Comment Edited] (HBASE-26158) MiniZooKeeperCluster should not be IA.Public

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

Geoffrey Jacoby edited comment on HBASE-26158 at 8/3/21, 10:12 PM:
-------------------------------------------------------------------

I agree the curator version compatibility is a big issue here too. There's a curator.version in the HBase pom.xml, but it only seems to be used for a coproc example. There's little to no guidance to end users about what version of curator are compatible with what versions of HBase. 

Again, I think [~zhangduo] makes a good point that with a publicly available ZK minicluster, the MiniZookeeperCluster may no longer be necessary. It's working fine both internally and externally, so I don't feel strongly that it needs to go, but I wouldn't mind if it did -- so long as it was deprecated both externally AND internally, via the usual deprecation method. 

I believe that would be, in HBase 3.0:
1. Take on curator-test as a formal dependency of HBase. This requires figuring out which version to use, excluding conflicting transitive dependencies, etc 
2. Probably shade it into hbase-thirdparty? 
3. Do HBASE-26167 to allow for overriding ZK with an external embedded ZK quorum.
4. Switch TestingHBaseCluster and HBTU to use curator-test by default
5. Fix any HBase tests that break because of this effort
6. Fix any bugs found in curator-test because of this effort
7. Deprecate the MiniZookeeperCluster and the methods in HBTU that reference it (but still support them during the 3.x cycle). 

In HBase 4.0:
1. Delete the MiniZookeeperCluster and the methods in HBTU that reference it. 

At this point, HBase will have offloaded its embedded ZK onto a ZK-based project, similarly to how MiniDFSCluster is I believe part of HDFS. Which would be good. 

On the other hand, if that sounds like a lot of work compared to the benefit...please remember that that aside from HBASE-26167 and the actual deprecation JIRA, that's almost the same work you're asking end-users to do. 


was (Author: gjacoby):
I agree the curator version compatibility is a big issue here too. There's a curator.version in the HBase pom.xml, but it only seems to be used for a coproc example. There's little to no guidance to end users about what version of curator are compatible with what versions of HBase. 

Again, I think [~zhangduo] makes a good point that with a publicly available ZK minicluster, the MiniZookeeperCluster may no longer be necessary. It's working fine both internally and externally, so I don't feel strongly that it needs to go, but I wouldn't mind if it did -- so long as it was deprecated both externally AND internally, via the usual deprecation method. 

I believe that would be, in HBase 3.0:
1. Take on curator-test as a formal dependency of HBase. This requires figuring out which version to use, excluding conflicting transitive dependencies, etc 
2. Probably shade it into hbase-thirdparty? 
3. Do HBASE-26167 to allow for overriding ZK with an external embedded ZK quorum.
4. Switch TestingHBaseCluster and HBTU to use curator-test by default
5. Fix any HBase tests that break because of this effort
6. Fix any bugs found in curator-test because of this effort
5. Deprecate the MiniZookeeperCluster and the methods in HBTU that reference it (but still support them during the 3.x cycle). 

In HBase 4.0:
1. Delete the MiniZookeeperCluster and the methods in HBTU that reference it. 

At this point, HBase will have offloaded its embedded ZK onto a ZK-based project, similarly to how MiniDFSCluster is I believe part of HDFS. Which would be good. 

On the other hand, if that sounds like a lot of work compared to the benefit...please remember that that aside from HBASE-26167 and the actual deprecation JIRA, that's almost the same work you're asking end-users to do. 

> MiniZooKeeperCluster should not be IA.Public
> --------------------------------------------
>
>                 Key: HBASE-26158
>                 URL: https://issues.apache.org/jira/browse/HBASE-26158
>             Project: HBase
>          Issue Type: Sub-task
>          Components: API, test
>            Reporter: Duo Zhang
>            Priority: Major
>
> End users do not need to test HBase when zookeeper is broken. And if users want to start only a zookeeper cluster, they can just use curator-test, so I do not think we should expose this class as IA.Public.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)