[jira] [Resolved] (HBASE-19145) Look into hbase-2 client going to hbase-1 server

2018-08-07 Thread Jerry He (JIRA)


 [ 
https://issues.apache.org/jira/browse/HBASE-19145?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jerry He resolved HBASE-19145.
--
Resolution: Done

> Look into hbase-2 client going to hbase-1 server
> 
>
> Key: HBASE-19145
> URL: https://issues.apache.org/jira/browse/HBASE-19145
> Project: HBase
>  Issue Type: Task
>Affects Versions: 2.0.0-beta-1
>Reporter: Jerry He
>Assignee: Jerry He
>Priority: Major
>
> From the "[DISCUSS] hbase-2.0.0 compatibility expectations" thread.
> Do we support hbase-2 client going against hbase-1 server?
> We seem to be fine mix-and-match the clients and servers within the
> hbase-1 releases.   And IIRC hbase-1 client is ok against 0.98 server.
> Suppose I have a product  that depends and bundles HBase client. I
> want to upgrade the dependency to hbase-2 so that it can take
> advantages of and claim support of hbase-2.
> But does it mean that I will need drop the claims that the new version
> of the product support any hbase-1 backend?
> It has not been an objective. It might work doing basic Client API on a
> later branch-1 but will fail doing Admin functions (and figuring if a Table
> is online).  If it was a small thing to make it
> work, lets get it in.
> Let's look into it to see what works and what not.  Have a statement at least.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Created] (HBASE-21008) HBase 1.x can not read HBase2 hfiles due to TimeRangeTracker

2018-08-03 Thread Jerry He (JIRA)
Jerry He created HBASE-21008:


 Summary: HBase 1.x can not read HBase2 hfiles due to 
TimeRangeTracker
 Key: HBASE-21008
 URL: https://issues.apache.org/jira/browse/HBASE-21008
 Project: HBase
  Issue Type: Bug
Affects Versions: 1.4.6, 2.1.0
Reporter: Jerry He


It looks like HBase 1.x can not open hfiiles written by HBase2 still.

I tested the latest HBase 1.4.6 and 2.1.0.  1.4.6 tried to read and open 
regions written by 2.1.0.

{code}
2018-07-30 16:01:31,274 ERROR [StoreFileOpenerThread-info-1] 
regionserver.StoreFile: Error reading timestamp range data from meta -- 
proceeding without
java.lang.IllegalArgumentException: Timestamp cannot be negative. 
minStamp:5783278630776778969, maxStamp:-4698050386518222402
at org.apache.hadoop.hbase.io.TimeRange.check(TimeRange.java:112)
at org.apache.hadoop.hbase.io.TimeRange.(TimeRange.java:100)
at 
org.apache.hadoop.hbase.regionserver.TimeRangeTracker.toTimeRange(TimeRangeTracker.java:214)
at 
org.apache.hadoop.hbase.regionserver.TimeRangeTracker.getTimeRange(TimeRangeTracker.java:198)
at 
org.apache.hadoop.hbase.regionserver.StoreFile.open(StoreFile.java:507)
at 
org.apache.hadoop.hbase.regionserver.StoreFile.createReader(StoreFile.java:531)
at 
org.apache.hadoop.hbase.regionserver.StoreFile.createReader(StoreFile.java:521)
at 
org.apache.hadoop.hbase.regionserver.HStore.createStoreFileAndReader(HStore.java:679)
at 
org.apache.hadoop.hbase.regionserver.HStore.access$000(HStore.java:122)
at org.apache.hadoop.hbase.regionserver.HStore$1.call(HStore.java:538)
at org.apache.hadoop.hbase.regionserver.HStore$1.call(HStore.java:535)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
{code}
Or:
{code}
2018-07-30 16:01:31,305 ERROR [RS_OPEN_REGION-throb1:34004-0] 
handler.OpenRegionHandler: Failed open of 
region=janusgraph,,1532630557542.b0fa15cb0bf1b0bf740997b7056c., starting to 
roll back the global memstore size.
java.io.IOException: java.io.IOException: java.io.EOFException
at 
org.apache.hadoop.hbase.regionserver.HRegion.initializeStores(HRegion.java:1033)
at 
org.apache.hadoop.hbase.regionserver.HRegion.initializeRegionInternals(HRegion.java:908)
at 
org.apache.hadoop.hbase.regionserver.HRegion.initialize(HRegion.java:876)
at 
org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:6995)
at 
org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:6956)
at 
org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:6927)
at 
org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:6883)
at 
org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:6834)
at 
org.apache.hadoop.hbase.regionserver.handler.OpenRegionHandler.openRegion(OpenRegionHandler.java:364)
at 
org.apache.hadoop.hbase.regionserver.handler.OpenRegionHandler.process(OpenRegionHandler.java:131)
at 
org.apache.hadoop.hbase.executor.EventHandler.run(EventHandler.java:129)
at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.io.IOException: java.io.EOFException
at 
org.apache.hadoop.hbase.regionserver.HStore.openStoreFiles(HStore.java:564)
at 
org.apache.hadoop.hbase.regionserver.HStore.loadStoreFiles(HStore.java:518)
at org.apache.hadoop.hbase.regionserver.HStore.(HStore.java:281)
at 
org.apache.hadoop.hbase.regionserver.HRegion.instantiateHStore(HRegion.java:5378)
at 
org.apache.hadoop.hbase.regionserver.HRegion$1.call(HRegion.java:1007)
at 
org.apache.hadoop.hbase.regionserver.HRegion$1.call(HRegion.java:1004)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
... 3 more
Caused by: java.io.EOFException
at java.io.DataInputStream.readFully(DataInputStream.java:197)
at java.io.DataInputStream.readLong(DataInputStream.java:416)
at 
org.apache.hadoop.hbase.regionserver.TimeRangeTracker.readFields(TimeRangeTracker.java:170)
at 
org.apache.hadoop.hbase.util.Writables.copyWritable(Writables.java:161)
at 
org.apache.hadoop.hbase.regionserver.TimeRangeTracker.getTimeRangeTracker(TimeRangeTracker.java:187)
at 
org.apache.hadoop.hbase.regionserver.TimeRangeTracker.getTimeRange(TimeRangeTracker.java:197)
at 
org.apache.hadoop.hbase.regionserver.StoreFile.open(StoreFile.java:507)
at 

[jira] [Created] (HBASE-20565) ColumnRangeFilter combined with ColumnPaginationFilter can produce incorrect result since 1.4

2018-05-10 Thread Jerry He (JIRA)
Jerry He created HBASE-20565:


 Summary: ColumnRangeFilter combined with ColumnPaginationFilter 
can produce incorrect result since 1.4
 Key: HBASE-20565
 URL: https://issues.apache.org/jira/browse/HBASE-20565
 Project: HBase
  Issue Type: Bug
  Components: Filters
Affects Versions: 1.4.4
Reporter: Jerry He


When ColumnPaginationFilter is combined with ColumnRangeFilter, we may see 
incorrect result.

Here is a simple example.

One row with 10 columns c0, c1, c2, .., c9.  I have a ColumnRangeFilter for 
range c2 to c9.  Then I have a ColumnPaginationFilter with limit 5 and offset 
0.  FileterList is FilterList(Operator.MUST_PASS_ALL, ColumnRangeFilter, 
ColumnPaginationFilter).
We expect 5 columns being returned.  But in HBase 1.4 and after, 4 columns are 
returned.
In 1.2.x, the correct 5 columns are returned.





--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Created] (HBASE-19557) Build and release source jars for hbase-shaded-client and others

2017-12-19 Thread Jerry He (JIRA)
Jerry He created HBASE-19557:


 Summary: Build and release source jars for hbase-shaded-client and 
others
 Key: HBASE-19557
 URL: https://issues.apache.org/jira/browse/HBASE-19557
 Project: HBase
  Issue Type: Improvement
Affects Versions: 1.2.6, 1.3.1
Reporter: Jerry He


It seems that currently we don't build and release source jars for 
hbase-shaded-client (and server or mapreduce).  IDEs will complain from the 
dependent users. We should provide them.

http://central.maven.org/maven2/org/apache/hbase/hbase-shaded-client/1.3.1/



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Resolved] (HBASE-19171) Update package references to match new shaded offset in hbase-thirdparty

2017-12-19 Thread Jerry He (JIRA)

 [ 
https://issues.apache.org/jira/browse/HBASE-19171?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jerry He resolved HBASE-19171.
--
   Resolution: Duplicate
Fix Version/s: (was: 2.0.0-beta-1)

Resolve as dup of the other task [~mdrob] is working on.

> Update package references to match new shaded offset in hbase-thirdparty
> 
>
> Key: HBASE-19171
> URL: https://issues.apache.org/jira/browse/HBASE-19171
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Jerry He
>Priority: Critical
>
> This has dependency on the parent task, and can only be done after a new 
> hbase-thirdparty release.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Created] (HBASE-19171) Update package references to match new shaded offset in hbase-thirdparty

2017-11-03 Thread Jerry He (JIRA)
Jerry He created HBASE-19171:


 Summary: Update package references to match new shaded offset in 
hbase-thirdparty
 Key: HBASE-19171
 URL: https://issues.apache.org/jira/browse/HBASE-19171
 Project: HBase
  Issue Type: Sub-task
Reporter: Jerry He
Priority: Critical
 Fix For: 2.0.0


This has dependency on the parent task, and can only be done after a new 
hbase-thirdparty release.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Created] (HBASE-19170) [hbase-thirdparty] Change the relocation offset of shaded artifacts

2017-11-03 Thread Jerry He (JIRA)
Jerry He created HBASE-19170:


 Summary: [hbase-thirdparty] Change the relocation offset of shaded 
artifacts
 Key: HBASE-19170
 URL: https://issues.apache.org/jira/browse/HBASE-19170
 Project: HBase
  Issue Type: Bug
Affects Versions: 1.0.1
Reporter: Jerry He
Priority: Critical
 Fix For: 1.0.2


On the dev@hbase list, we conclude that we need to change the relocation offset 
in hbase-thirdparty to avoid shading conflicts with the other hbase shaded 
components (hbase-shaded-client and hbase-shaded-mapreduce components).
https://lists.apache.org/thread.html/1aa5d1d7f6d176df49e72096926b011cafe1315932515346d06e8342@%3Cdev.hbase.apache.org%3E
The suggestion is to use "o.a.h.hbase.thirdparty" in hbase-thirdparty to 
differentiate between "shaded" for downstream of us vs "thirdparty" for our 
internal use.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Created] (HBASE-19145) Look into hbase-2 client going to hbase-1 server

2017-10-31 Thread Jerry He (JIRA)
Jerry He created HBASE-19145:


 Summary: Look into hbase-2 client going to hbase-1 server
 Key: HBASE-19145
 URL: https://issues.apache.org/jira/browse/HBASE-19145
 Project: HBase
  Issue Type: Task
Affects Versions: 2.0.0-beta-1
Reporter: Jerry He
Priority: Major


>From the "[DISCUSS] hbase-2.0.0 compatibility expectations" thread.

Do we support hbase-2 client going against hbase-1 server?
We seem to be fine mix-and-match the clients and servers within the
hbase-1 releases.   And IIRC hbase-1 client is ok against 0.98 server.
Suppose I have a product  that depends and bundles HBase client. I
want to upgrade the dependency to hbase-2 so that it can take
advantages of and claim support of hbase-2.
But does it mean that I will need drop the claims that the new version
of the product support any hbase-1 backend?

It has not been an objective. It might work doing basic Client API on a
later branch-1 but will fail doing Admin functions (and figuring if a Table
is online).  If it was a small thing to make it
work, lets get it in.

Let's look into it to see what works and what not.  Have a statement at least.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Resolved] (HBASE-19003) Make sure all balancer actions respect decommissioned server

2017-10-30 Thread Jerry He (JIRA)

 [ 
https://issues.apache.org/jira/browse/HBASE-19003?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jerry He resolved HBASE-19003.
--
Resolution: Done

> Make sure all balancer actions respect decommissioned server
> 
>
> Key: HBASE-19003
> URL: https://issues.apache.org/jira/browse/HBASE-19003
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Jerry He
>Assignee: Jerry He
> Fix For: 2.0.0-beta-1
>
>
> There have been questions raised in HBASE-10367 and other related JIRAs. We 
> want to make sure all aspects of the balancer respect the draining flag. We 
> will have a good look, and fix if any violation is found.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Created] (HBASE-19096) Add RowMutions batch support in AsyncTable

2017-10-26 Thread Jerry He (JIRA)
Jerry He created HBASE-19096:


 Summary: Add RowMutions batch support in AsyncTable
 Key: HBASE-19096
 URL: https://issues.apache.org/jira/browse/HBASE-19096
 Project: HBase
  Issue Type: Sub-task
Reporter: Jerry He
Assignee: Jerry He


Batch support for RowMutations has been added in the Table interface, but is 
not in AsyncTable. This JIRA will add it.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Resolved] (HBASE-17369) Add ACL to the new region server drain related API

2017-10-19 Thread Jerry He (JIRA)

 [ 
https://issues.apache.org/jira/browse/HBASE-17369?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jerry He resolved HBASE-17369.
--
Resolution: Implemented

Implemented as part of HBASE-10367.

> Add ACL to the new region server drain related API
> --
>
> Key: HBASE-17369
> URL: https://issues.apache.org/jira/browse/HBASE-17369
> Project: HBase
>  Issue Type: Sub-task
>Affects Versions: 2.0.0
>Reporter: Jerry He
>Priority: Critical
>
> Add ACL to the new region server drain related API.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Created] (HBASE-19021) Restore a few important missing logics for balancer in 2.0

2017-10-16 Thread Jerry He (JIRA)
Jerry He created HBASE-19021:


 Summary: Restore a few important missing logics for balancer in 2.0
 Key: HBASE-19021
 URL: https://issues.apache.org/jira/browse/HBASE-19021
 Project: HBase
  Issue Type: Bug
Reporter: Jerry He
Assignee: Jerry He
Priority: Critical


After looking at the code, and some testing, I see the following things are 
missing for balancer to work properly after AMv2.

# hbase.master.loadbalance.bytable is not respected. It is always 'bytable'. 
Previous default is cluster wide, not by table.
# Servers with no assignments is not added for balance consideration.
# Crashed server is not removed from the in-memory server map in RegionStates, 
which affects balance.
# Draining marker is not respected when balance.

Also try to re-enable {{TestRegionRebalancing}}, which has a 
{{testRebalanceOnRegionServerNumberChange}}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Created] (HBASE-19003) Make sure all balancer actions respect decommissioned server

2017-10-12 Thread Jerry He (JIRA)
Jerry He created HBASE-19003:


 Summary: Make sure all balancer actions respect decommissioned 
server
 Key: HBASE-19003
 URL: https://issues.apache.org/jira/browse/HBASE-19003
 Project: HBase
  Issue Type: Sub-task
Reporter: Jerry He


There have been questions raised in HBASE-10367 and other related JIRAs. We 
want to make sure all aspects of the balancer respect the draining flag. We 
will have a good look, and fix if any violation is found.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Resolved] (HBASE-16010) Put draining function through Admin API

2017-10-11 Thread Jerry He (JIRA)

 [ 
https://issues.apache.org/jira/browse/HBASE-16010?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jerry He resolved HBASE-16010.
--
Resolution: Fixed

> Put draining function through Admin API
> ---
>
> Key: HBASE-16010
> URL: https://issues.apache.org/jira/browse/HBASE-16010
> Project: HBase
>  Issue Type: Improvement
>Reporter: Jerry He
>Assignee: Matt Warhaftig
>Priority: Minor
> Fix For: 2.0.0
>
> Attachments: HBASE-16010-v3.patch, hbase-16010-v1.patch, 
> hbase-16010-v2.patch
>
>
> Currently, there is no Amdin API for draining function. Client has to 
> interact directly with Zookeeper draining node to add and remove draining 
> servers.
> For example, in draining_servers.rb:
> {code}
>   zkw = org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher.new(config, 
> "draining_servers", nil)
>   parentZnode = zkw.drainingZNode
>   begin
> for server in servers
>   node = ZKUtil.joinZNode(parentZnode, server)
>   ZKUtil.createAndFailSilent(zkw, node)
> end
>   ensure
> zkw.close()
>   end
> {code}
> This is not good in cases like secure clusters with protected Zookeeper nodes.
> Let's put draining function through Admin API.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Resolved] (HBASE-11608) Add synchronous split

2017-09-27 Thread Jerry He (JIRA)

 [ 
https://issues.apache.org/jira/browse/HBASE-11608?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jerry He resolved HBASE-11608.
--
Resolution: Duplicate

Finally, marked as dup.  It has been added in HBASE-18229.

> Add synchronous split
> -
>
> Key: HBASE-11608
> URL: https://issues.apache.org/jira/browse/HBASE-11608
> Project: HBase
>  Issue Type: New Feature
>  Components: Admin
>Affects Versions: 0.99.0, 0.98.5
>Reporter: Jerry He
>
> Users have been asking for this. We have an internal requirement for this as 
> well.
> The goal is a provide a Admin API (and shell command) so that users can 
> request to split a region or table and get the split completion result 
> synchronously.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Created] (HBASE-18740) Upgrade Zookeeper version in branch 1.4 and branch-1

2017-09-01 Thread Jerry He (JIRA)
Jerry He created HBASE-18740:


 Summary: Upgrade Zookeeper version in branch 1.4 and branch-1
 Key: HBASE-18740
 URL: https://issues.apache.org/jira/browse/HBASE-18740
 Project: HBase
  Issue Type: Improvement
Reporter: Jerry He
Assignee: Jerry He


Branch 1.4 and branch 1 are still on Zookeeper 3.4.6.
Branch 2 and master branch have upgraded to 3.4.9.

There are some important fixes we'd like to have. See the linked JIRAs.
Another critical fix is ZOOKEEPER-2146, which can be explored maliciously.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Resolved] (HBASE-9417) SecureBulkLoadEndpoint should be folded in core

2017-08-17 Thread Jerry He (JIRA)

 [ 
https://issues.apache.org/jira/browse/HBASE-9417?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jerry He resolved HBASE-9417.
-
   Resolution: Duplicate
Fix Version/s: (was: 2.0.0-alpha-3)

> SecureBulkLoadEndpoint should be folded in core
> ---
>
> Key: HBASE-9417
> URL: https://issues.apache.org/jira/browse/HBASE-9417
> Project: HBase
>  Issue Type: Bug
>  Components: regionserver, security
>Reporter: Enis Soztutar
>Priority: Critical
>
> In unsecure bulk loading, the client creates the files to be bulk loaded, and 
> asks the regionservers to do the operation. Bulk loading is performed by a 
> move, which would mean that the hbase user has to have WRITE permissions for 
> the bulk loaded files. If the client who has generated the files is different 
> than the hbase user, this creates an access denied exception if complete bulk 
> load is not run as the hbase user.
> I think even for unsecure mode, we should mimic what SecureBulkLoadEndpoint 
> does, where hbase creates a staging directory and the client hands off the 
> files to that directory with global perms. 
> Update: Now that HBASE-12052 enables running SecureBulkLoadEndpoint even in 
> unsecure deployments, we should consider bringing SecureBulkLoad into core 
> HBase (meaning implement the functionality in RegionServer instead of in the 
> coprocessor). 



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Resolved] (HBASE-18590) branch-1.4 needs a Jenkins commit build job

2017-08-13 Thread Jerry He (JIRA)

 [ 
https://issues.apache.org/jira/browse/HBASE-18590?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jerry He resolved HBASE-18590.
--
Resolution: Fixed

> branch-1.4 needs a Jenkins commit build job
> ---
>
> Key: HBASE-18590
> URL: https://issues.apache.org/jira/browse/HBASE-18590
> Project: HBase
>  Issue Type: Bug
>Reporter: Jerry He
>Assignee: Ted Yu
>Priority: Critical
>
> The current HBase-1.4 job is actually branch-1.
> https://builds.apache.org/job/HBase-1.4/
> Need a separate job for branch-1.4.  And rename the current job to HBase-1.5.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Created] (HBASE-18590) branch-1.4 needs a Jenkins commit build job

2017-08-13 Thread Jerry He (JIRA)
Jerry He created HBASE-18590:


 Summary: branch-1.4 needs a Jenkins commit build job
 Key: HBASE-18590
 URL: https://issues.apache.org/jira/browse/HBASE-18590
 Project: HBase
  Issue Type: Bug
Reporter: Jerry He
Priority: Critical


The current HBase-1.4 job is actually branch-1.
https://builds.apache.org/job/HBase-1.4/

Need a separate job for branch-1.4.  And rename the current job to HBase-1.5.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Created] (HBASE-18589) branch-1.4 build compile is broken

2017-08-13 Thread Jerry He (JIRA)
Jerry He created HBASE-18589:


 Summary: branch-1.4 build compile is broken
 Key: HBASE-18589
 URL: https://issues.apache.org/jira/browse/HBASE-18589
 Project: HBase
  Issue Type: Bug
Reporter: Jerry He
Assignee: Jerry He
Priority: Critical


{noformat}
[ERROR] Failed to execute goal 
org.apache.maven.plugins:maven-compiler-plugin:2.5.1:testCompile 
(default-testCompile) on project hbase-server: Compilation failure: Compilation 
failure:
[ERROR] 
/hbase-apache/hbase-server/src/test/java/org/apache/hadoop/hbase/snapshot/TestRegionSnapshotTask.java:[164,46]
 error: cannot find symbol
[ERROR] symbol:   class SnapshotDescription
[ERROR] location: class HBaseProtos
{noformat}




--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Created] (HBASE-18522) Add RowMutations support to Batch

2017-08-04 Thread Jerry He (JIRA)
Jerry He created HBASE-18522:


 Summary: Add RowMutations support to Batch
 Key: HBASE-18522
 URL: https://issues.apache.org/jira/browse/HBASE-18522
 Project: HBase
  Issue Type: Improvement
Affects Versions: 1.2.6
Reporter: Jerry He
Assignee: Jerry He
 Fix For: 2.0.0, 3.0.0, 1.4.0, 1.5.0


RowMutations is multiple Puts and/or Deletes atomically on a single row. 
Current Batch call does not support RowMutations as part of the batch.
We should add this missing part. We should be able to batch RowMutations.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Resolved] (HBASE-18123) Hbase indexer

2017-05-26 Thread Jerry He (JIRA)

 [ 
https://issues.apache.org/jira/browse/HBASE-18123?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jerry He resolved HBASE-18123.
--
Resolution: Invalid

> Hbase indexer
> -
>
> Key: HBASE-18123
> URL: https://issues.apache.org/jira/browse/HBASE-18123
> Project: HBase
>  Issue Type: Task
>Affects Versions: 1.2.3
> Environment: Debian / Hadoop 2.6 / Solr 6.4.2
>Reporter: Fred
>
> Hi all,
> I want to extract fields from PDF files and store it into Hbase. Then I want 
> to link the database with a Solr collection. To do this, I installed 
> Hbase-indexer.
> What is the best way to do it ?
> Actually, I can write data into Hbase but not into my Solr collection. When I 
> launch Hbase-indexer server, I get some errors :
> Cannot connect to cluster at myIPaddress:2181/solr: cluster not found/not 
> ready
> Somebody ti o help me ? Thanks in advance.
> Fred



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Created] (HBASE-17890) FuzzyRow tests fail if unaligned support is false

2017-04-06 Thread Jerry He (JIRA)
Jerry He created HBASE-17890:


 Summary: FuzzyRow tests fail if unaligned support is false
 Key: HBASE-17890
 URL: https://issues.apache.org/jira/browse/HBASE-17890
 Project: HBase
  Issue Type: Bug
Affects Versions: 1.2.5, 2.0.0
Reporter: Jerry He


When unaligned support is false, FuzzyRow tests fail:
{noformat}
Failed tests:
  TestFuzzyRowAndColumnRangeFilter.Test:134->runTest:157->runScanner:186 
expected:<10> but was:<0>
  TestFuzzyRowFilter.testSatisfiesForward:81 expected: but was:
  TestFuzzyRowFilter.testSatisfiesReverse:121 expected: but 
was:
  TestFuzzyRowFilterEndToEnd.testEndToEnd:247->runTest1:278->runScanner:343 
expected:<6250> but was:<0>
  TestFuzzyRowFilterEndToEnd.testFilterList:385->runTest:417->runScanner:445 
expected:<5> but was:<0>
  TestFuzzyRowFilterEndToEnd.testHBASE14782:204 expected:<6> but was:<0>
{noformat}
This can be reproduced in the case described in HBASE-17869. Or on a platform 
really without unaligned support.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Created] (HBASE-17869) UnsafeAvailChecker wrongly returns false on ppc

2017-04-03 Thread Jerry He (JIRA)
Jerry He created HBASE-17869:


 Summary: UnsafeAvailChecker wrongly returns false on ppc
 Key: HBASE-17869
 URL: https://issues.apache.org/jira/browse/HBASE-17869
 Project: HBase
  Issue Type: Bug
Affects Versions: 1.2.4
Reporter: Jerry He
Assignee: Jerry He
Priority: Minor


On ppc64 arch,  java.nio.Bits.unaligned() wrongly returns false due to a JDK 
bug.
https://bugs.openjdk.java.net/browse/JDK-8165231
This causes some problem for HBase. i.e. FuzzyRowFilter test fails.
Fix it by providing a hard-code workaround for the JDK bug.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Reopened] (HBASE-14161) Add hbase-spark integration tests to IT jenkins job

2017-03-12 Thread Jerry He (JIRA)

 [ 
https://issues.apache.org/jira/browse/HBASE-14161?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jerry He reopened HBASE-14161:
--

> Add hbase-spark integration tests to IT jenkins job
> ---
>
> Key: HBASE-14161
> URL: https://issues.apache.org/jira/browse/HBASE-14161
> Project: HBase
>  Issue Type: Task
>  Components: build
>Reporter: Sean Busbey
> Fix For: 2.0.0
>
>
> expand the set of ITs we run to include the new hbase-spark tests.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Resolved] (HBASE-14161) Add hbase-spark integration tests to IT jenkins job

2017-03-12 Thread Jerry He (JIRA)

 [ 
https://issues.apache.org/jira/browse/HBASE-14161?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jerry He resolved HBASE-14161.
--
Resolution: Duplicate

> Add hbase-spark integration tests to IT jenkins job
> ---
>
> Key: HBASE-14161
> URL: https://issues.apache.org/jira/browse/HBASE-14161
> Project: HBase
>  Issue Type: Task
>  Components: build
>Reporter: Sean Busbey
> Fix For: 2.0.0
>
>
> expand the set of ITs we run to include the new hbase-spark tests.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Resolved] (HBASE-14161) Add hbase-spark integration tests to IT jenkins job

2017-03-12 Thread Jerry He (JIRA)

 [ 
https://issues.apache.org/jira/browse/HBASE-14161?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jerry He resolved HBASE-14161.
--
Resolution: Fixed

> Add hbase-spark integration tests to IT jenkins job
> ---
>
> Key: HBASE-14161
> URL: https://issues.apache.org/jira/browse/HBASE-14161
> Project: HBase
>  Issue Type: Task
>  Components: build
>Reporter: Sean Busbey
> Fix For: 2.0.0
>
>
> expand the set of ITs we run to include the new hbase-spark tests.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Resolved] (HBASE-14167) hbase-spark integration tests do not respect -DskipIntegrationTests

2017-03-12 Thread Jerry He (JIRA)

 [ 
https://issues.apache.org/jira/browse/HBASE-14167?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jerry He resolved HBASE-14167.
--
   Resolution: Duplicate
Fix Version/s: 2.0.0

> hbase-spark integration tests do not respect -DskipIntegrationTests
> ---
>
> Key: HBASE-14167
> URL: https://issues.apache.org/jira/browse/HBASE-14167
> Project: HBase
>  Issue Type: Improvement
>  Components: pom, spark
>Affects Versions: 2.0.0
>Reporter: Andrew Purtell
>Priority: Minor
> Fix For: 2.0.0
>
> Attachments: HBASE-14167.11.patch, HBASE-14167-master-v2.patch
>
>
> When running a build with {{mvn ... -DskipIntegrationTests}}, the hbase-spark 
> module's integration tests do not respect the flag and run anyway. Fix. 



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Resolved] (HBASE-17502) Document hadoop pre-2.6.1 and Java 1.8 Kerberos problem in our hadoop support matrix

2017-01-21 Thread Jerry He (JIRA)

 [ 
https://issues.apache.org/jira/browse/HBASE-17502?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jerry He resolved HBASE-17502.
--
   Resolution: Fixed
 Hadoop Flags: Reviewed
Fix Version/s: 2.0.0

Pushed.
Thanks for the review, Ted.

> Document hadoop pre-2.6.1 and Java 1.8 Kerberos problem in our hadoop support 
> matrix
> 
>
> Key: HBASE-17502
> URL: https://issues.apache.org/jira/browse/HBASE-17502
> Project: HBase
>  Issue Type: Task
>Reporter: Jerry He
> Fix For: 2.0.0
>
> Attachments: HBASE-17502.patch, HBASE-17502-v2.patch
>
>
> Hadoop pre-2.6.1 on JDK 1.8 has problem with Kerberos keytabe relogin.
> HADOOP-10786 fixed the problem in Hadoop 2.6.1.
> Let's document it in the Hadoop support matrix.
> This was brought up in HBase 1.3.0 RC0 voting.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (HBASE-17502) Document hadoop pre-2.6.1 and Java 1.8 Kerberos problem in our hadoop support matrix

2017-01-20 Thread Jerry He (JIRA)
Jerry He created HBASE-17502:


 Summary: Document hadoop pre-2.6.1 and Java 1.8 Kerberos problem 
in our hadoop support matrix
 Key: HBASE-17502
 URL: https://issues.apache.org/jira/browse/HBASE-17502
 Project: HBase
  Issue Type: Task
Reporter: Jerry He


Hadoop pre-2.6.1 on JDK 1.8 has problem with Kerberos keytabe relogin.
HADOOP-10786 fixed the problem in Hadoop 2.6.1.
Let's document it in the Hadoop support matrix.

This was brought up in HBase 1.3.0 RC0 voting.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (HBASE-17370) Fix or provide shell scripts to drain and decommission region server

2016-12-23 Thread Jerry He (JIRA)
Jerry He created HBASE-17370:


 Summary: Fix or provide shell scripts to drain and decommission 
region server
 Key: HBASE-17370
 URL: https://issues.apache.org/jira/browse/HBASE-17370
 Project: HBase
  Issue Type: Sub-task
Reporter: Jerry He


1. Update the existing shell scripts to use the new drain related API.
2  Or provide new shell scripts.
3. Provide a 'decommission' shell tool that puts the server in drain mode and 
offload the server.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (HBASE-17369) Add ACL to the new region server drain related API

2016-12-23 Thread Jerry He (JIRA)
Jerry He created HBASE-17369:


 Summary: Add ACL to the new region server drain related API
 Key: HBASE-17369
 URL: https://issues.apache.org/jira/browse/HBASE-17369
 Project: HBase
  Issue Type: Task
Reporter: Jerry He
Priority: Critical


Add ACL to the new region server drain related API.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Resolved] (HBASE-17322) New API to get the list of draining region servers

2016-12-15 Thread Jerry He (JIRA)

 [ 
https://issues.apache.org/jira/browse/HBASE-17322?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jerry He resolved HBASE-17322.
--
Resolution: Duplicate

> New API to get the list of draining region servers
> --
>
> Key: HBASE-17322
> URL: https://issues.apache.org/jira/browse/HBASE-17322
> Project: HBase
>  Issue Type: Improvement
>Reporter: Abhishek Singh Chouhan
>Assignee: Abhishek Singh Chouhan
>
> In various scenarios it would be useful to have a list of draining region 
> servers so as to avoid them while doing certain operations such as region 
> moving during batch rolling upgrades.
> Jira to add a method getDrainingServers() in ClusterStatus so that this info 
> can be retrieved through HBaseAdmin.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Resolved] (HBASE-16796) Correct RpcServer responseSize and requestSize to account for cellScanner payload

2016-12-07 Thread Jerry He (JIRA)

 [ 
https://issues.apache.org/jira/browse/HBASE-16796?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jerry He resolved HBASE-16796.
--
Resolution: Duplicate

> Correct RpcServer responseSize and requestSize to account for cellScanner 
> payload
> -
>
> Key: HBASE-16796
> URL: https://issues.apache.org/jira/browse/HBASE-16796
> Project: HBase
>  Issue Type: Bug
>Reporter: Jerry He
>Assignee: Jerry He
>
> The reponseSize and requestSize on the RpcServer don't seem to account for 
> the cellScanner payload.  We should correct them.
> The metrics numbers and the logging for reponseTooLarge  and TooSlow won't  
> show up correctly otherwise.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (HBASE-17221) Abstract out an interface for RpcServer.Call

2016-11-30 Thread Jerry He (JIRA)
Jerry He created HBASE-17221:


 Summary: Abstract out an interface for RpcServer.Call
 Key: HBASE-17221
 URL: https://issues.apache.org/jira/browse/HBASE-17221
 Project: HBase
  Issue Type: Improvement
Reporter: Jerry He
Assignee: Jerry He
 Fix For: 2.0.0


RpcServer.Call is a concrete class, but it is marked as:
{noformat}
@InterfaceAudience.LimitedPrivate({HBaseInterfaceAudience.COPROC, 
HBaseInterfaceAudience.PHOENIX})
{noformat}

Let's abstract out an interface out of it for potential consumers that want to 
pass it around.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (HBASE-16882) Expose the number of open scanners on region server via metics

2016-10-19 Thread Jerry He (JIRA)
Jerry He created HBASE-16882:


 Summary: Expose the number of open scanners on region server via 
metics
 Key: HBASE-16882
 URL: https://issues.apache.org/jira/browse/HBASE-16882
 Project: HBase
  Issue Type: Improvement
Reporter: Jerry He
Assignee: Jerry He
Priority: Minor


Metrics on the number of open scanners and their live span on the region server 
are useful in doing server performance diagnostics, and are useful in doing 
client application diagnostics, profiling as well. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (HBASE-16843) Manage and secure dynamic jar dir with client API

2016-10-14 Thread Jerry He (JIRA)
Jerry He created HBASE-16843:


 Summary: Manage and secure dynamic jar dir with client API
 Key: HBASE-16843
 URL: https://issues.apache.org/jira/browse/HBASE-16843
 Project: HBase
  Issue Type: Sub-task
Reporter: Jerry He
Assignee: Jerry He


The dynamic jar dir is specified with the property 'hbase.dynamic.jars.dir'
The permissions on this dir is a cause of confusion and concern.

Let's secure this dir by folding it into root.dir, and provide client API to 
add, remove jars.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (HBASE-16822) Enable restore-snapshot and clone-snapshot to use external specified snapshot locatioin

2016-10-12 Thread Jerry He (JIRA)
Jerry He created HBASE-16822:


 Summary: Enable restore-snapshot and clone-snapshot to use 
external specified snapshot locatioin 
 Key: HBASE-16822
 URL: https://issues.apache.org/jira/browse/HBASE-16822
 Project: HBase
  Issue Type: Improvement
Reporter: Jerry He


Currently restore-snapshot and clone-snapshot only work with the snapshots that 
are under hbase root.dir.

In combination with export-snapshot, this means the snapshot needs to be 
exported out to another hbase root.dir, or back and forth eventually to a hbase 
root.dir.

There are a few issues with the approach.

We've know that export-snapshot has a limitation dealing with secure cluster, 
where the external user needs to have read access to hbase root.dir data, 
by-passing table ACL check.

The second problem is when we try to use or bring back the exported snapshot 
for restore/clone.  They have to in the target hbase root.dir, and needs write 
permission to get it in there.

Again we will have permission problem.

This ticket tries to deal with the second problem, clone and restore from a 
exported snapshot.  The exported snapshots can be on the same cluster but the 
user may not have write permission to move it to hbase.root.dir.

We should have a solution that allow clone/restore snapshot from a external 
path that keeps snapshot backups. And also do it with security permission in 
mind.





--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (HBASE-16798) Integrate MultiRowMutation CPEP into HBase core

2016-10-09 Thread Jerry He (JIRA)
Jerry He created HBASE-16798:


 Summary: Integrate MultiRowMutation CPEP into HBase core
 Key: HBASE-16798
 URL: https://issues.apache.org/jira/browse/HBASE-16798
 Project: HBase
  Issue Type: Sub-task
Reporter: Jerry He


Integrate MultiRowMutation CPEP into HBase core as discussed in the parent task.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (HBASE-16797) Integrate TokenProvider to HBase core

2016-10-09 Thread Jerry He (JIRA)
Jerry He created HBASE-16797:


 Summary: Integrate TokenProvider to HBase core
 Key: HBASE-16797
 URL: https://issues.apache.org/jira/browse/HBASE-16797
 Project: HBase
  Issue Type: Sub-task
Reporter: Jerry He


Integrate TokenProvider to HBase core as discussed in the parent task.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (HBASE-16796) Correct RpcServer responseSize and requestSize to account for cellScanner payload

2016-10-09 Thread Jerry He (JIRA)
Jerry He created HBASE-16796:


 Summary: Correct RpcServer responseSize and requestSize to account 
for cellScanner payload
 Key: HBASE-16796
 URL: https://issues.apache.org/jira/browse/HBASE-16796
 Project: HBase
  Issue Type: Bug
Reporter: Jerry He
Assignee: Jerry He


The reponseSize and requestSize on the RpcServer don't seem to account for the 
cellScanner payload.  We should correct them.
The metrics numbers and the logging for reponseTooLarge  and TooSlow won't  
show up correctly otherwise.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (HBASE-16732) Avoid possible NPE in MetaTableLocator

2016-09-29 Thread Jerry He (JIRA)
Jerry He created HBASE-16732:


 Summary: Avoid possible NPE in MetaTableLocator
 Key: HBASE-16732
 URL: https://issues.apache.org/jira/browse/HBASE-16732
 Project: HBase
  Issue Type: Improvement
Reporter: Jerry He
Assignee: Jerry He
Priority: Minor


{noformat}
java.lang.NullPointerException: null
at 
org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher.getMetaReplicaNodes(ZooKeeperWatcher.java:489)
at 
org.apache.hadoop.hbase.zookeeper.MetaTableLocator.blockUntilAvailable(MetaTableLocator.java:549)
at 
org.apache.hadoop.hbase.client.ZooKeeperRegistry.getMetaRegionLocation(ZooKeeperRegistry.java:61)
at 
org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.locateMeta(ConnectionManager.java:1211)
at 
org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.locateRegion(ConnectionManager.java:1178)
at 
org.apache.hadoop.hbase.client.RpcRetryingCallerWithReadReplicas.getRegionLocations(RpcRetryingCallerWithReadReplicas.java:305)
at 
org.apache.hadoop.hbase.client.ScannerCallableWithReplicas.call(ScannerCallableWithReplicas.java:156)
at 
org.apache.hadoop.hbase.client.ScannerCallableWithReplicas.call(ScannerCallableWithReplicas.java:60)
at 
org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithoutRetries(RpcRetryingCaller.java:200)
at 
org.apache.hadoop.hbase.client.ClientScanner.call(ClientScanner.java:320)
at 
org.apache.hadoop.hbase.client.ClientScanner.nextScanner(ClientScanner.java:295)
at 
org.apache.hadoop.hbase.client.ClientScanner.initializeScannerInConstruction(ClientScanner.java:160)
at 
org.apache.hadoop.hbase.client.ClientScanner.(ClientScanner.java:155)
at org.apache.hadoop.hbase.client.HTable.getScanner(HTable.java:804)
at 
org.apache.hadoop.hbase.MetaTableAccessor.fullScan(MetaTableAccessor.java:602)
at 
org.apache.hadoop.hbase.MetaTableAccessor.tableExists(MetaTableAccessor.java:366)
at 
org.apache.hadoop.hbase.client.HBaseAdmin.tableExists(HBaseAdmin.java:396)
at 
com.thinkaurelius.titan.diskstorage.hbase.HBaseAdmin1_2.clearTable(HBaseAdmin1_2.java:38)
at 
com.thinkaurelius.titan.diskstorage.hbase.HBaseStoreManager.clearStorage(HBaseStoreManager.java:483)
{noformat}

It happens when hbase is not fully up, and the client comes in.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Resolved] (HBASE-16292) Can't start a local instance

2016-09-23 Thread Jerry He (JIRA)

 [ 
https://issues.apache.org/jira/browse/HBASE-16292?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jerry He resolved HBASE-16292.
--
Resolution: Duplicate

> Can't start a local instance
> 
>
> Key: HBASE-16292
> URL: https://issues.apache.org/jira/browse/HBASE-16292
> Project: HBase
>  Issue Type: Bug
>Reporter: Elliott Clark
>Priority: Blocker
> Fix For: 2.0.0
>
>
> Currently master is completely broken.
> {code}
> ./bin/start-hbase.sh
> starting master, logging to 
> /Users/elliott/Code/Public/hbase/bin/../logs/hbase-elliott-master-elliott-mbp.out
> Java HotSpot(TM) 64-Bit Server VM warning: ignoring option PermSize=128m; 
> support was removed in 8.0
> Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=128m; 
> support was removed in 8.0
> {code}
> {code}
> 2016-07-27 10:36:20,992 ERROR [main] regionserver.SecureBulkLoadManager: 
> Failed to create or set permission on staging directory 
> /user/elliott/hbase-staging
> ExitCodeException exitCode=1: chmod: /user/elliott/hbase-staging: No such 
> file or directory
>   at org.apache.hadoop.util.Shell.runCommand(Shell.java:545)
>   at org.apache.hadoop.util.Shell.run(Shell.java:456)
>   at 
> org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:722)
>   at org.apache.hadoop.util.Shell.execCommand(Shell.java:815)
>   at org.apache.hadoop.util.Shell.execCommand(Shell.java:798)
>   at 
> org.apache.hadoop.fs.RawLocalFileSystem.setPermission(RawLocalFileSystem.java:728)
>   at 
> org.apache.hadoop.fs.FilterFileSystem.setPermission(FilterFileSystem.java:502)
>   at 
> org.apache.hadoop.hbase.regionserver.SecureBulkLoadManager.start(SecureBulkLoadManager.java:124)
>   at 
> org.apache.hadoop.hbase.regionserver.HRegionServer.(HRegionServer.java:624)
>   at org.apache.hadoop.hbase.master.HMaster.(HMaster.java:403)
>   at 
> org.apache.hadoop.hbase.master.HMasterCommandLine$LocalHMaster.(HMasterCommandLine.java:307)
>   at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
>   at 
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
>   at 
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
>   at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
>   at 
> org.apache.hadoop.hbase.util.JVMClusterUtil.createMasterThread(JVMClusterUtil.java:140)
>   at 
> org.apache.hadoop.hbase.LocalHBaseCluster.addMaster(LocalHBaseCluster.java:221)
>   at 
> org.apache.hadoop.hbase.LocalHBaseCluster.(LocalHBaseCluster.java:156)
>   at 
> org.apache.hadoop.hbase.master.HMasterCommandLine.startMaster(HMasterCommandLine.java:226)
>   at 
> org.apache.hadoop.hbase.master.HMasterCommandLine.run(HMasterCommandLine.java:139)
>   at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
>   at 
> org.apache.hadoop.hbase.util.ServerCommandLine.doMain(ServerCommandLine.java:127)
>   at org.apache.hadoop.hbase.master.HMaster.main(HMaster.java:2417)
> 2016-07-27 10:36:20,994 ERROR [main] master.HMasterCommandLine: Master exiting
> java.lang.RuntimeException: Failed construction of Master: class 
> org.apache.hadoop.hbase.master.HMasterCommandLine$LocalHMasterchmod: 
> /user/elliott/hbase-staging: No such file or directory
>   at 
> org.apache.hadoop.hbase.util.JVMClusterUtil.createMasterThread(JVMClusterUtil.java:145)
>   at 
> org.apache.hadoop.hbase.LocalHBaseCluster.addMaster(LocalHBaseCluster.java:221)
>   at 
> org.apache.hadoop.hbase.LocalHBaseCluster.(LocalHBaseCluster.java:156)
>   at 
> org.apache.hadoop.hbase.master.HMasterCommandLine.startMaster(HMasterCommandLine.java:226)
>   at 
> org.apache.hadoop.hbase.master.HMasterCommandLine.run(HMasterCommandLine.java:139)
>   at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
>   at 
> org.apache.hadoop.hbase.util.ServerCommandLine.doMain(ServerCommandLine.java:127)
>   at org.apache.hadoop.hbase.master.HMaster.main(HMaster.java:2417)
> Caused by: java.lang.IllegalStateException: Failed to create or set 
> permission on staging directory /user/elliott/hbase-staging
>   at 
> org.apache.hadoop.hbase.regionserver.SecureBulkLoadManager.start(SecureBulkLoadManager.java:141)
>   at 
> org.apache.hadoop.hbase.regionserver.HRegionServer.(HRegionServer.java:624)
>   at org.apache.hadoop.hbase.master.HMaster.(HMaster.java:403)
>   at 
> org.apache.hadoop.hbase.master.HMasterCommandLine$LocalHMaster.(HMasterCommandLine.java:307)
>   at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
>   at 
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
>   at 
> 

[jira] [Created] (HBASE-16647) hbck should do the offline reference repair before online repair

2016-09-16 Thread Jerry He (JIRA)
Jerry He created HBASE-16647:


 Summary: hbck should do the offline reference repair before online 
repair
 Key: HBASE-16647
 URL: https://issues.apache.org/jira/browse/HBASE-16647
 Project: HBase
  Issue Type: Bug
Reporter: Jerry He
Assignee: Jerry He


{noformat}
hbck
-fixReferenceFiles  Try to offline lingering reference store files

Metadata Repair shortcuts
-repairShortcut for -fixAssignments -fixMeta -fixHdfsHoles -fixHdfsOrphans 
-fixHdfsOverlaps -fixVersionFile -sidelineBigOverlaps -fixReferenceFiles 
-fixTableLocks -fixOrphanedTableZnodes
{noformat}

Bad reference files prevent the region from coming online.
If used in the shortcut combination, the reference files should be fixed before 
other online fix.

I have seen repeated '-repair' did not work because bad reference files failed 
regions.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (HBASE-16601) Expand Dynamic Configuration

2016-09-09 Thread Jerry He (JIRA)
Jerry He created HBASE-16601:


 Summary: Expand Dynamic Configuration
 Key: HBASE-16601
 URL: https://issues.apache.org/jira/browse/HBASE-16601
 Project: HBase
  Issue Type: Improvement
Reporter: Jerry He
Assignee: Jerry He


HBase currently supports limited dynamic configuration (modify properties 
without restarting the servers).  Only some compaction, split properties are 
supported.  
We should expand to support more and possibly improve and make it more flexible.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (HBASE-16599) Expand the use of dynamic jar dir

2016-09-09 Thread Jerry He (JIRA)
Jerry He created HBASE-16599:


 Summary: Expand the use of dynamic jar dir
 Key: HBASE-16599
 URL: https://issues.apache.org/jira/browse/HBASE-16599
 Project: HBase
  Issue Type: Improvement
Reporter: Jerry He


Dynamic jar dir is currently used for Custom Filer and Comparator only.
Let's expand its use so that custom extensions (custom split policy, custom 
compaction policy, etc) can be more easily deployed.  
Useful on managed Cloud deployments.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (HBASE-16598) Clean up zookeeper useMulti in HBase code

2016-09-09 Thread Jerry He (JIRA)
Jerry He created HBASE-16598:


 Summary: Clean up zookeeper useMulti in HBase code
 Key: HBASE-16598
 URL: https://issues.apache.org/jira/browse/HBASE-16598
 Project: HBase
  Issue Type: Improvement
Reporter: Jerry He


We have zookeeper useMulti default true since HBase 1.0.0
And in our Doc, "ZooKeeper 3.4.x is required as of HBase 1.0.0"
The benefit of useMulti is obvious. 
Let's clean up the code to remove useMulti false case so that we don't have to 
continue with the hassle of maintaining two version of the code (e.g. in 
replication) .  No go back to pre 3.4.x Zookeeper.




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Resolved] (HBASE-16581) Optimize Replication queue transfers after server fail over

2016-09-08 Thread Jerry He (JIRA)

 [ 
https://issues.apache.org/jira/browse/HBASE-16581?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jerry He resolved HBASE-16581.
--
Resolution: Duplicate

> Optimize Replication queue transfers after server fail over
> ---
>
> Key: HBASE-16581
> URL: https://issues.apache.org/jira/browse/HBASE-16581
> Project: HBase
>  Issue Type: Improvement
>Reporter: Jerry He
>Assignee: Jerry He
>
> Currently if a region server fails, the replication queue of this server will 
> be picked up by another region server.  The problem is this queue can 
> possibly be huge and contains queues from other multiple or cascading server 
> failures.
> We had such a case in production.  From zk_dump:
> {code}
> ...
> /hbase/replication/rs/r01data10-va-pub.xxx.ext,60020,1472680007498/1-r01data10-va-pub.xxx.ext,60020,1455993417125-r01data07-va-pub.xxx.ext,60020,1472680008225-r01data08-va-pub.xxx.ext,60020,1472680007318/r01data10-va-pub.xxx.ext%2C60020%2C1455993417125.1467603735059:
>  18748267
> /hbase/replication/rs/r01data10-va-pub.xxx.ext,60020,1472680007498/1-r01data10-va-pub.xxx.ext,60020,1455993417125-r01data07-va-pub.xxx.ext,60020,1472680008225-r01data08-va-pub.xxx.ext,60020,1472680007318/r01data10-va-pub.xxx.ext%2C60020%2C1455993417125.1471723778060:
>  
> /hbase/replication/rs/r01data10-va-pub.xxx.ext,60020,1472680007498/1-r01data10-va-pub.xxx.ext,60020,1455993417125-r01data07-va-pub.xxx.ext,60020,1472680008225-r01data08-va-pub.xxx.ext,60020,1472680007318/r01data10-va-pub.xxx.ext%2C60020%2C1455993417125.1468258960080:
>  
> /hbase/replication/rs/r01data10-va-pub.xxx.ext,60020,1472680007498/1-r01data10-va-pub.xxx.ext,60020,1455993417125-r01data07-va-pub.xxx.ext,60020,1472680008225-r01data08-va-pub.xxx.ext,60020,1472680007318/r01data10-va-pub.xxx.ext%2C60020%2C1455993417125.1468204958990:
>  
> /hbase/replication/rs/r01data10-va-pub.xxx.ext,60020,1472680007498/1-r01data10-va-pub.xxx.ext,60020,1455993417125-r01data07-va-pub.xxx.ext,60020,1472680008225-r01data08-va-pub.xxx.ext,60020,1472680007318/r01data10-va-pub.xxx.ext%2C60020%2C1455993417125.1469701010649:
>  
> /hbase/replication/rs/r01data10-va-pub.xxx.ext,60020,1472680007498/1-r01data10-va-pub.xxx.ext,60020,1455993417125-r01data07-va-pub.xxx.ext,60020,1472680008225-r01data08-va-pub.xxx.ext,60020,1472680007318/r01data10-va-pub.xxx.ext%2C60020%2C1455993417125.1470409989238:
>  
> /hbase/replication/rs/r01data10-va-pub.xxx.ext,60020,1472680007498/1-r01data10-va-pub.xxx.ext,60020,1455993417125-r01data07-va-pub.xxx.ext,60020,1472680008225-r01data08-va-pub.xxx.ext,60020,1472680007318/r01data10-va-pub.xxx.ext%2C60020%2C1455993417125.1471838985073:
>  
> /hbase/replication/rs/r01data10-va-pub.xxx.ext,60020,1472680007498/1-r01data10-va-pub.xxx.ext,60020,1455993417125-r01data07-va-pub.xxx.ext,60020,1472680008225-r01data08-va-pub.xxx.ext,60020,1472680007318/r01data10-va-pub.xxx.ext%2C60020%2C1455993417125.1467142915090:
>  57804890
> /hbase/replication/rs/r01data10-va-pub.xxx.ext,60020,1472680007498/1-r01data10-va-pub.xxx.ext,60020,1455993417125-r01data07-va-pub.xxx.ext,60020,1472680008225-r01data08-va-pub.xxx.ext,60020,1472680007318/r01data10-va-pub.xxx.ext%2C60020%2C1455993417125.1472181000614:
>  
> /hbase/replication/rs/r01data10-va-pub.xxx.ext,60020,1472680007498/1-r01data10-va-pub.xxx.ext,60020,1455993417125-r01data07-va-pub.xxx.ext,60020,1472680008225-r01data08-va-pub.xxx.ext,60020,1472680007318/r01data10-va-pub.xxx.ext%2C60020%2C1455993417125.1471464567365:
>  
> /hbase/replication/rs/r01data10-va-pub.xxx.ext,60020,1472680007498/1-r01data10-va-pub.xxx.ext,60020,1455993417125-r01data07-va-pub.xxx.ext,60020,1472680008225-r01data08-va-pub.xxx.ext,60020,1472680007318/r01data10-va-pub.xxx.ext%2C60020%2C1455993417125.1469486466965:
>  
> /hbase/replication/rs/r01data10-va-pub.xxx.ext,60020,1472680007498/1-r01data10-va-pub.xxx.ext,60020,1455993417125-r01data07-va-pub.xxx.ext,60020,1472680008225-r01data08-va-pub.xxx.ext,60020,1472680007318/r01data10-va-pub.xxx.ext%2C60020%2C1455993417125.1467787339841:
>  47812951
> ...
> {code}
> There were hundreds of wals hanging under this queue, coming from diferent 
> region servers, which took a long time to replicate.
> We should have a better strategy which lets live region servers each grep 
> part of this nested queue, and replicate in parallel.  



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (HBASE-16582) Add Encryption keystore password for Hadoop credential store support

2016-09-07 Thread Jerry He (JIRA)
Jerry He created HBASE-16582:


 Summary: Add Encryption keystore password for Hadoop credential 
store support
 Key: HBASE-16582
 URL: https://issues.apache.org/jira/browse/HBASE-16582
 Project: HBase
  Issue Type: Improvement
Reporter: Jerry He
Assignee: Jerry He


Currently the Encryption keystore password (or keyprovider password) does not 
support Hadoop credential store.

{code}
 
hbase.crypto.keyprovider.parameters 
jceks:///path/to/hbase/conf/hbase.jks?password=***

{code}

Let's refactor this parameter a little and add support for Hadoop credential 
store



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (HBASE-16581) Optimize Replication queue transfers after server fail over

2016-09-07 Thread Jerry He (JIRA)
Jerry He created HBASE-16581:


 Summary: Optimize Replication queue transfers after server fail 
over
 Key: HBASE-16581
 URL: https://issues.apache.org/jira/browse/HBASE-16581
 Project: HBase
  Issue Type: Improvement
Reporter: Jerry He
Assignee: Jerry He


Currently if a region server fails, the replication queue of this server will 
be picked up by another region server.  The problem is this queue can possibly 
be huge and contains queues from other multiple or cascading server failures.

We had such a case in production.  From zk_dump:

{code}
...
/hbase/replication/rs/r01data10-va-pub.xxx.ext,60020,1472680007498/1-r01data10-va-pub.xxx.ext,60020,1455993417125-r01data07-va-pub.xxx.ext,60020,1472680008225-r01data08-va-pub.xxx.ext,60020,1472680007318/r01data10-va-pub.xxx.ext%2C60020%2C1455993417125.1467603735059:
 18748267

/hbase/replication/rs/r01data10-va-pub.xxx.ext,60020,1472680007498/1-r01data10-va-pub.xxx.ext,60020,1455993417125-r01data07-va-pub.xxx.ext,60020,1472680008225-r01data08-va-pub.xxx.ext,60020,1472680007318/r01data10-va-pub.xxx.ext%2C60020%2C1455993417125.1471723778060:
 

/hbase/replication/rs/r01data10-va-pub.xxx.ext,60020,1472680007498/1-r01data10-va-pub.xxx.ext,60020,1455993417125-r01data07-va-pub.xxx.ext,60020,1472680008225-r01data08-va-pub.xxx.ext,60020,1472680007318/r01data10-va-pub.xxx.ext%2C60020%2C1455993417125.1468258960080:
 

/hbase/replication/rs/r01data10-va-pub.xxx.ext,60020,1472680007498/1-r01data10-va-pub.xxx.ext,60020,1455993417125-r01data07-va-pub.xxx.ext,60020,1472680008225-r01data08-va-pub.xxx.ext,60020,1472680007318/r01data10-va-pub.xxx.ext%2C60020%2C1455993417125.1468204958990:
 

/hbase/replication/rs/r01data10-va-pub.xxx.ext,60020,1472680007498/1-r01data10-va-pub.xxx.ext,60020,1455993417125-r01data07-va-pub.xxx.ext,60020,1472680008225-r01data08-va-pub.xxx.ext,60020,1472680007318/r01data10-va-pub.xxx.ext%2C60020%2C1455993417125.1469701010649:
 

/hbase/replication/rs/r01data10-va-pub.xxx.ext,60020,1472680007498/1-r01data10-va-pub.xxx.ext,60020,1455993417125-r01data07-va-pub.xxx.ext,60020,1472680008225-r01data08-va-pub.xxx.ext,60020,1472680007318/r01data10-va-pub.xxx.ext%2C60020%2C1455993417125.1470409989238:
 

/hbase/replication/rs/r01data10-va-pub.xxx.ext,60020,1472680007498/1-r01data10-va-pub.xxx.ext,60020,1455993417125-r01data07-va-pub.xxx.ext,60020,1472680008225-r01data08-va-pub.xxx.ext,60020,1472680007318/r01data10-va-pub.xxx.ext%2C60020%2C1455993417125.1471838985073:
 

/hbase/replication/rs/r01data10-va-pub.xxx.ext,60020,1472680007498/1-r01data10-va-pub.xxx.ext,60020,1455993417125-r01data07-va-pub.xxx.ext,60020,1472680008225-r01data08-va-pub.xxx.ext,60020,1472680007318/r01data10-va-pub.xxx.ext%2C60020%2C1455993417125.1467142915090:
 57804890

/hbase/replication/rs/r01data10-va-pub.xxx.ext,60020,1472680007498/1-r01data10-va-pub.xxx.ext,60020,1455993417125-r01data07-va-pub.xxx.ext,60020,1472680008225-r01data08-va-pub.xxx.ext,60020,1472680007318/r01data10-va-pub.xxx.ext%2C60020%2C1455993417125.1472181000614:
 

/hbase/replication/rs/r01data10-va-pub.xxx.ext,60020,1472680007498/1-r01data10-va-pub.xxx.ext,60020,1455993417125-r01data07-va-pub.xxx.ext,60020,1472680008225-r01data08-va-pub.xxx.ext,60020,1472680007318/r01data10-va-pub.xxx.ext%2C60020%2C1455993417125.1471464567365:
 

/hbase/replication/rs/r01data10-va-pub.xxx.ext,60020,1472680007498/1-r01data10-va-pub.xxx.ext,60020,1455993417125-r01data07-va-pub.xxx.ext,60020,1472680008225-r01data08-va-pub.xxx.ext,60020,1472680007318/r01data10-va-pub.xxx.ext%2C60020%2C1455993417125.1469486466965:
 

/hbase/replication/rs/r01data10-va-pub.xxx.ext,60020,1472680007498/1-r01data10-va-pub.xxx.ext,60020,1455993417125-r01data07-va-pub.xxx.ext,60020,1472680008225-r01data08-va-pub.xxx.ext,60020,1472680007318/r01data10-va-pub.xxx.ext%2C60020%2C1455993417125.1467787339841:
 47812951
...
{code}

There were hundreds of wals hanging under this queue, coming from diferent 
region servers, which took a long time to replicate.

We should have a better strategy which lets live region servers each grep part 
of this nested queue, and replicate in parallel.  




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (HBASE-16370) Exclude jdk tools.jar from Bytecode Version enforcer

2016-08-07 Thread Jerry He (JIRA)
Jerry He created HBASE-16370:


 Summary: Exclude jdk tools.jar from Bytecode Version enforcer
 Key: HBASE-16370
 URL: https://issues.apache.org/jira/browse/HBASE-16370
 Project: HBase
  Issue Type: Improvement
Affects Versions: 1.2.2
Reporter: Jerry He
Assignee: Jerry He
Priority: Minor
 Fix For: 2.0.0, 1.3.0, 1.4.0, 1.2.3


Getting this message trying to do a build with -Prelease:

{noformat}
[INFO] Restricted to JDK 1.7 yet jdk.tools:jdk.tools:jar:1.8:system contains 
org/relaxng/datatype/DatatypeLibrary.class targeted to JDK 1.8
[WARNING] Rule 3: org.apache.maven.plugins.enforcer.EnforceBytecodeVersion 
failed with message:
HBase has unsupported dependencies.
  HBase requires that all dependencies be compiled with version 1.7 or earlier
  of the JDK to properly build from source.  You appear to be using a newer 
dependency. You can use
  either "mvn -version" or "mvn enforcer:display-info" to verify what version 
is active.
  Non-release builds can temporarily build with a newer JDK version by setting 
the
  'compileSource' property (eg. mvn -DcompileSource=1.8 clean package).
Found Banned Dependency: jdk.tools:jdk.tools:jar:1.8
Use 'mvn dependency:tree' to locate the source of the banned dependencies.
[INFO] 
{noformat}

My JDK is 1.8.  But I wanted to build to target 1.7.  So I didn't' have the 
-DcompileSource=1.8.

The enforcer checks the jdk tools.jar and causes the error because the system 
JDK is 1.8.

This is a valid build/release use case as long as we support both 1.8 and 1.7.

We should exclude jdk tools.jar from the enforcer.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (HBASE-16257) Move staging dir to be under hbase root dir

2016-07-19 Thread Jerry He (JIRA)
Jerry He created HBASE-16257:


 Summary: Move staging dir to be under hbase root dir
 Key: HBASE-16257
 URL: https://issues.apache.org/jira/browse/HBASE-16257
 Project: HBase
  Issue Type: Sub-task
Reporter: Jerry He
Assignee: Jerry He
Priority: Minor
 Fix For: 2.0.0


The hbase.bulkload.staging.dir defaults to hbase.fs.tmp.dir which then defaults 
to
{code}
public static final String DEFAULT_TEMPORARY_HDFS_DIRECTORY = "/user/"
  + System.getProperty("user.name") + "/hbase-staging";
{code}

This default would have problem on local file system standalone case.

We can move the staging dir to be under hbase.rootdir.  We are bringing secure 
bulkload to the core. It makes sense to bring it under core control as well, 
instead of an optional property.




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Reopened] (HBASE-15291) FileSystem not closed in secure bulkLoad

2016-07-11 Thread Jerry He (JIRA)

 [ 
https://issues.apache.org/jira/browse/HBASE-15291?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jerry He reopened HBASE-15291:
--

> FileSystem not closed in secure bulkLoad
> 
>
> Key: HBASE-15291
> URL: https://issues.apache.org/jira/browse/HBASE-15291
> Project: HBase
>  Issue Type: Bug
>Affects Versions: 1.0.2, 0.98.16.1
>Reporter: Yong Zhang
>Assignee: Yong Zhang
> Fix For: 2.0.0, 1.3.0, 1.2.1, 0.98.18, 1.4.0
>
> Attachments: HBASE-15291.001.patch, HBASE-15291.002.patch, 
> HBASE-15291.003.patch, HBASE-15291.004.patch, HBASE-15291.addendum, patch
>
>
> FileSystem not closed in secure bulkLoad after bulkLoad  finish, it will 
> cause memory used more and more if too many bulkLoad .



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (HBASE-16149) Log the underlying RPC exception in RpcRetryingCallerImpl

2016-06-29 Thread Jerry He (JIRA)
Jerry He created HBASE-16149:


 Summary: Log the underlying RPC exception in RpcRetryingCallerImpl 
 Key: HBASE-16149
 URL: https://issues.apache.org/jira/browse/HBASE-16149
 Project: HBase
  Issue Type: Improvement
Affects Versions: 1.2.0
Reporter: Jerry He
Assignee: Jerry He
Priority: Minor


In RpcRetryingCallerImpl:

{code}
  public T callWithRetries(RetryingCallable callable, int callTimeout)
  throws IOException, RuntimeException {
...
for (int tries = 0;; tries++) {
  try {
...
return callable.call(getTimeout(callTimeout));
...
  } catch (Throwable t) {
ExceptionUtil.rethrowIfInterrupt(t);
if (tries > startLogErrorsCnt) {
  LOG.info("Call exception, tries=" + tries + ", maxAttempts=" + 
maxAttempts + ", started="
  + (EnvironmentEdgeManager.currentTime() - tracker.getStartTime()) 
+ " ms ago, "
  + "cancelled=" + cancelled.get() + ", msg="
  + callable.getExceptionMessageAdditionalDetail());
}
...
{code}

We log the callable.getExceptionMessageAdditionalDetail() msg. But 
callable.getExceptionMessageAdditionalDetail() may not provide the underlying 
cause..

For example, in AbstractRegionServerCallable, 
{code}
  public String getExceptionMessageAdditionalDetail() {
return "row '" + Bytes.toString(row) + "' on table '" + tableName + "' at " 
+ location;
  }
{code}

Let's add the underlying exception cause to the message as well.





--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (HBASE-16010) Put draining function through Admin API

2016-06-10 Thread Jerry He (JIRA)
Jerry He created HBASE-16010:


 Summary: Put draining function through Admin API
 Key: HBASE-16010
 URL: https://issues.apache.org/jira/browse/HBASE-16010
 Project: HBase
  Issue Type: Improvement
Reporter: Jerry He
Priority: Minor


Currently, there is no Amdin API for draining function. Client has to interact 
directly with Zookeeper draining node to add and remove draining servers.
For example, in draining_servers.rb:
{code}
  zkw = org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher.new(config, 
"draining_servers", nil)
  parentZnode = zkw.drainingZNode

  begin
for server in servers
  node = ZKUtil.joinZNode(parentZnode, server)
  ZKUtil.createAndFailSilent(zkw, node)
end
  ensure
zkw.close()
  end
{code}

This is not good in cases like secure clusters with protected Zookeeper nodes.
Let's put draining function through Admin API.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Resolved] (HBASE-15834) Correct Bloom filter documentation in section 96.4 of Reference Guide

2016-05-17 Thread Jerry He (JIRA)

 [ 
https://issues.apache.org/jira/browse/HBASE-15834?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jerry He resolved HBASE-15834.
--
   Resolution: Fixed
Fix Version/s: 2.0.0

> Correct Bloom filter documentation in section 96.4 of Reference Guide
> -
>
> Key: HBASE-15834
> URL: https://issues.apache.org/jira/browse/HBASE-15834
> Project: HBase
>  Issue Type: Bug
>  Components: documentation
>Reporter: li xiang
>Priority: Minor
> Fix For: 2.0.0
>
> Attachments: HBASE-15834.patch.v0, HBASE-15834.patch.v1
>
>
> In section 96.4, the second paragraph from the bottom
> {code}
> Since HBase 0.96, row-based Bloom filters are enabled by default. (HBASE-)
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (HBASE-15841) Performance Evaluation tool total rows may not be set correctly

2016-05-16 Thread Jerry He (JIRA)
Jerry He created HBASE-15841:


 Summary: Performance Evaluation tool total rows may not be set 
correctly
 Key: HBASE-15841
 URL: https://issues.apache.org/jira/browse/HBASE-15841
 Project: HBase
  Issue Type: Bug
Reporter: Jerry He
Priority: Minor


Carried my comment on HBASE-15403 to here:

Recently when I ran PerformanceEvaluation, I did notice some problem with the 
number of rows.

hbase org.apache.hadoop.hbase.PerformanceEvaluation --table=TestTable1 
randomWrite 1
hbase org.apache.hadoop.hbase.PerformanceEvaluation --table=TestTable5 
randomWrite 5
hbase org.apache.hadoop.hbase.PerformanceEvaluation --table=TestTable10 
randomWrite 10
hbase org.apache.hadoop.hbase.PerformanceEvaluation --table=TestTable10 
randomWrite 20

All produced similar number of rows, and on the file system, they look like in 
similar size as well:

hadoop fs -du -h /apps/hbase/data/data/default
786.5 M /apps/hbase/data/data/default/TestTable1
786.0 M /apps/hbase/data/data/default/TestTable10
782.0 M /apps/hbase/data/data/default/TestTable20
713.4 M /apps/hbase/data/data/default/TestTable5

HBase is 1.2.0. Looks like a regression somewhere.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (HBASE-15808) Reduce potential bulk load intermediate space usage and waste

2016-05-09 Thread Jerry He (JIRA)
Jerry He created HBASE-15808:


 Summary: Reduce potential bulk load intermediate space usage and 
waste
 Key: HBASE-15808
 URL: https://issues.apache.org/jira/browse/HBASE-15808
 Project: HBase
  Issue Type: Improvement
Affects Versions: 1.2.0
Reporter: Jerry He
Assignee: Jerry He
Priority: Minor


If the bulk load input files do not match the existing region boudaries, the 
files will be splitted.
In the unfornate cases where the files need to be splitted multiple times,
the process can consume unnecessary space and can even cause out of space.

Here is over-simplified example.

Orinal size of input files:  
  consumed space: size --> 300GB
After a round of splits: 
  consumed space: size + tmpspace1 --> 300GB + 300GB
After another round of splits: 
  consumded space:  size + tmpspace1 + tmpspace2 --> 300GB + 300GB + 300GB

..

Currently we don't do any cleanup in the process. At least all the intermediate 
tmpspace (not the last one) can be deleted in the process.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (HBASE-15592) Print Procedure WAL content

2016-04-04 Thread Jerry He (JIRA)
Jerry He created HBASE-15592:


 Summary: Print Procedure WAL content
 Key: HBASE-15592
 URL: https://issues.apache.org/jira/browse/HBASE-15592
 Project: HBase
  Issue Type: New Feature
Reporter: Jerry He


Let's have a printer to print the content of Procedure WAL.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (HBASE-15591) ServerCrashProcedure not yielding

2016-04-04 Thread Jerry He (JIRA)
Jerry He created HBASE-15591:


 Summary: ServerCrashProcedure not yielding
 Key: HBASE-15591
 URL: https://issues.apache.org/jira/browse/HBASE-15591
 Project: HBase
  Issue Type: Bug
Affects Versions: 1.2.0, 2.0.0
Reporter: Jerry He


ServerCrashProcedure is not propagating ProcedureYieldException to the 
ProcedureExecutor 

One symptom is that while ServerCrashProcedure is waiting for meta to be up the 
Procedure WALs get filled up rapidly with all the executions.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Reopened] (HBASE-15523) enhance hbase-daemon.sh to enable autorestart.

2016-03-23 Thread Jerry He (JIRA)

 [ 
https://issues.apache.org/jira/browse/HBASE-15523?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jerry He reopened HBASE-15523:
--

Could you provide a patch, [~easyliangjob]?

> enhance hbase-daemon.sh to enable autorestart.
> --
>
> Key: HBASE-15523
> URL: https://issues.apache.org/jira/browse/HBASE-15523
> Project: HBase
>  Issue Type: Improvement
>Reporter: yi liang
>Assignee: yi liang
>Priority: Minor
>
> enhance hbase-daemon.sh to enable autorestart.
> component(like master, region server) will auto-start when terminated/killed 
> abnormally if 
>(a) Add a new env variable $HBASE_AUTORESTART to hbase-env.sh i.e. 
>  export HBASE_AUTORESTART=true
>   (b) Then add the following 3 simple lines(59-61) to  
> /bin/hbase-daemon.sh
>  
>  51 # get arguments
>  52 startStop=$1
>  53 shift
>  54
>  55 command=$1
>  56 shift
>  57
>  58 #make sure the auto-restart are default settings
>  59 if [ "$HBASE_AUTORESTART" == "true" ] && [ "$startStop" == "start" ]; 
> then 
>  60   startStop="autorestart" 
>  61 fi



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Reopened] (HBASE-14963) Remove use of Guava Stopwatch from HBase client code

2016-03-18 Thread Jerry He (JIRA)

 [ 
https://issues.apache.org/jira/browse/HBASE-14963?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jerry He reopened HBASE-14963:
--

> Remove use of Guava Stopwatch from HBase client code
> 
>
> Key: HBASE-14963
> URL: https://issues.apache.org/jira/browse/HBASE-14963
> Project: HBase
>  Issue Type: Improvement
>  Components: Client
>Reporter: Devaraj Das
>Assignee: Devaraj Das
>  Labels: needs_releasenote
> Fix For: 2.0.0
>
> Attachments: HBASE-14963-branch-1.patch, no-stopwatch.txt
>
>
> We ran into an issue where an application bundled its own Guava (and that 
> happened to be in the classpath first) and HBase's MetaTableLocator threw an 
> exception due to the fact that Stopwatch's constructor wasn't compatible... 
> Might be better to not depend on Stopwatch at all in MetaTableLocator since 
> the functionality is easily doable without.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (HBASE-15223) Make pubic convertScanToString for Spark

2016-02-05 Thread Jerry He (JIRA)
Jerry He created HBASE-15223:


 Summary: Make pubic convertScanToString for Spark
 Key: HBASE-15223
 URL: https://issues.apache.org/jira/browse/HBASE-15223
 Project: HBase
  Issue Type: Improvement
Reporter: Jerry He


One way to access HBase from Spark is to use newAPIHadoopRDD, which can take a 
TableInputFormat as class name.  But we are not able to set a Scan object in 
there, for example to set a HBase filter.

In MR,  the public API TableMapReduceUtil.initTableMapperJob() or equivalent is 
used which can take a Scan object.  But this call is not used in Spark 
conveniently. 

We need to make the TableMapReduceUtil.convertScanToString() public.
So that a Scan object can be created, populated and then convert to the 
property and used by Spark.  They are now package private.  



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (HBASE-15201) Add hbase-spark to hbase assembly

2016-02-01 Thread Jerry He (JIRA)
Jerry He created HBASE-15201:


 Summary: Add hbase-spark to hbase assembly
 Key: HBASE-15201
 URL: https://issues.apache.org/jira/browse/HBASE-15201
 Project: HBase
  Issue Type: Improvement
Reporter: Jerry He
Priority: Minor


hbase-spark currently is missing from hbase assembly.
We should add it.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (HBASE-14898) Correct Bloom filter documentation in the book

2015-11-30 Thread Jerry He (JIRA)
Jerry He created HBASE-14898:


 Summary: Correct Bloom filter documentation in the book
 Key: HBASE-14898
 URL: https://issues.apache.org/jira/browse/HBASE-14898
 Project: HBase
  Issue Type: Bug
Reporter: Jerry He
Priority: Minor


In section 94.4. Bloom Filters:

 Since HBase 0.96, row-based Bloom filters are enabled by default. (HBASE-)  
--> in *HBASE-8450*

In section 94.4.3. Configuring Server-Wide Behavior of Bloom Filters: 

io.hfile.bloom.enabled  --> *io.storefile.bloom.enabled*  Master switch to 
enable Bloom filters
io.hfile.bloom.max.fold  --> *io.storefile.bloom.max.fold*
io.hfile.bloom.error.rate --> *io.storefile.bloom.error.rate*
io.storefile.bloom.block.size --> *default is 128*1024 = 131072*

These properties are probably not tuned usually, but should still be fixed in 
the doc.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (HBASE-14881) Provide a Put API that uses the provided row without coping

2015-11-24 Thread Jerry He (JIRA)
Jerry He created HBASE-14881:


 Summary: Provide a Put API that uses the provided row without 
coping
 Key: HBASE-14881
 URL: https://issues.apache.org/jira/browse/HBASE-14881
 Project: HBase
  Issue Type: Improvement
Reporter: Jerry He


The current available Put API always makes a copy of the rowkey.
Let's provide an API that accepts an immutable byte array as rowkey without 
making a copy.
There are cases where the caller of Put has created the immutable byte array 
(e.g from a serializer) and will not change it for the Put duration. We can 
avoid making a copy again.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (HBASE-14882) Provide a Put API that adds the provided family, qualifier, value without coping

2015-11-24 Thread Jerry He (JIRA)
Jerry He created HBASE-14882:


 Summary: Provide a Put API that adds the provided family, 
qualifier, value without coping
 Key: HBASE-14882
 URL: https://issues.apache.org/jira/browse/HBASE-14882
 Project: HBase
  Issue Type: Improvement
Reporter: Jerry He


In the Put API, we have addImmutable()
{code}
 /**
   * See {@link #addColumn(byte[], byte[], byte[])}. This version expects
   * that the underlying arrays won't change. It's intended
   * for usage internal HBase to and for advanced client applications.
   */
  public Put addImmutable(byte [] family, byte [] qualifier, byte [] value)
{code}

But in the implementation the row, family. qualifier and value are still being 
copied locally to create kv.

Hopefully we should provide an API that truely uses immutable family, qualifier 
and value.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (HBASE-14548) Expand how table coprocessor jar and dependency path can be specified

2015-10-02 Thread Jerry He (JIRA)
Jerry He created HBASE-14548:


 Summary: Expand how table coprocessor jar and dependency path can 
be specified
 Key: HBASE-14548
 URL: https://issues.apache.org/jira/browse/HBASE-14548
 Project: HBase
  Issue Type: Improvement
  Components: Coprocessors
Reporter: Jerry He


Currently you can specify the location of the coprocessor jar in the table 
coprocessor attribute.
The problem is that it only allows you to specify one jar that implements the 
coprocessor.  You will need to either bundle all the dependencies into this 
jar, or you will need to copy the dependencies into HBase lib dir.
The first option may not be ideal sometimes.  The second choice can be 
troublesome too, particularly when the hbase region sever node and dirs are 
dynamically added/created.

There are a couple things we can expand here.  We can allow the coprocessor 
attribute to specify a directory location, probably on hdfs.
We may even allow some wildcard in there.




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Reopened] (HBASE-14391) Empty regionserver WAL will never be deleted although the coresponding regionserver has been stale

2015-09-21 Thread Jerry He (JIRA)

 [ 
https://issues.apache.org/jira/browse/HBASE-14391?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jerry He reopened HBASE-14391:
--

> Empty regionserver WAL will never be deleted although the coresponding 
> regionserver has been stale
> --
>
> Key: HBASE-14391
> URL: https://issues.apache.org/jira/browse/HBASE-14391
> Project: HBase
>  Issue Type: Bug
>  Components: wal
>Affects Versions: 1.0.2
>Reporter: Qianxi Zhang
>Assignee: Qianxi Zhang
> Fix For: 2.0.0, 1.2.0, 1.3.0, 1.1.3
>
> Attachments: HBASE-14391-master-v3.patch, 
> HBASE_14391_master_v4.patch, HBASE_14391_trunk_v1.patch, 
> HBASE_14391_trunk_v2.patch, WALs-leftover-dir.txt
>
>
> When I restarted the hbase cluster in which there was few data, I found there 
> are two directories for one host with different timestamp which indicates 
> that the old regionserver wal directory is not deleted.
> FHLog#989
> {code}
>  @Override
>   public void close() throws IOException {
> shutdown();
> final FileStatus[] files = getFiles();
> if (null != files && 0 != files.length) {
>   for (FileStatus file : files) {
> Path p = getWALArchivePath(this.fullPathArchiveDir, file.getPath());
> // Tell our listeners that a log is going to be archived.
> if (!this.listeners.isEmpty()) {
>   for (WALActionsListener i : this.listeners) {
> i.preLogArchive(file.getPath(), p);
>   }
> }
> if (!FSUtils.renameAndSetModifyTime(fs, file.getPath(), p)) {
>   throw new IOException("Unable to rename " + file.getPath() + " to " 
> + p);
> }
> // Tell our listeners that a log was archived.
> if (!this.listeners.isEmpty()) {
>   for (WALActionsListener i : this.listeners) {
> i.postLogArchive(file.getPath(), p);
>   }
> }
>   }
>   LOG.debug("Moved " + files.length + " WAL file(s) to " +
> FSUtils.getPath(this.fullPathArchiveDir));
> }
> LOG.info("Closed WAL: " + toString());
>   }
> {code}
> When regionserver is stopped, the hlog will be archived, so wal/regionserver 
> is empty in hdfs.
> MasterFileSystem#252
> {code}
> if (curLogFiles == null || curLogFiles.length == 0) {
> // Empty log folder. No recovery needed
> continue;
>   }
> {code}
> The regionserver directory will be not splitted, it makes sense. But it will 
> be not deleted.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (HBASE-14275) Backport to 0.98 HBASE-10785 Metas own location should be cached

2015-08-20 Thread Jerry He (JIRA)
Jerry He created HBASE-14275:


 Summary: Backport to 0.98 HBASE-10785 Metas own location should be 
cached
 Key: HBASE-14275
 URL: https://issues.apache.org/jira/browse/HBASE-14275
 Project: HBase
  Issue Type: Improvement
Reporter: Jerry He


We've seen similar problem reported on 0.98.
It is good improvement to have.
This will cover HBASE-10785 and the a later HBASE-11332.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (HBASE-14228) Close BufferedMutator and connection in MultiTableOutputFormat

2015-08-15 Thread Jerry He (JIRA)
Jerry He created HBASE-14228:


 Summary: Close BufferedMutator and connection in 
MultiTableOutputFormat
 Key: HBASE-14228
 URL: https://issues.apache.org/jira/browse/HBASE-14228
 Project: HBase
  Issue Type: Bug
  Components: mapreduce
Affects Versions: 1.1.1
Reporter: Jerry He
Assignee: Jerry He
Priority: Minor


Close BufferedMutator and connection in MultiTableRecordWriter of 
MultiTableOutputFormat.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (HBASE-13845) Expire of one region server carrying meta can bring down the master

2015-06-04 Thread Jerry He (JIRA)
Jerry He created HBASE-13845:


 Summary: Expire of one region server carrying meta can bring down 
the master
 Key: HBASE-13845
 URL: https://issues.apache.org/jira/browse/HBASE-13845
 Project: HBase
  Issue Type: Bug
  Components: master
Affects Versions: 1.1.0
Reporter: Jerry He


There seems to be a code bug that can cause expiration of one region server 
carrying meta to bring down the master under certain case.

Here is the sequence of event.

a) The master detects the expiration of a region server on ZK, and starts to 
expire the region server.
b) Since the failed region server carries meta, the shutdown handler will call 
verifyAndAssignMetaWithRetries() during processing the expired rs.
c)  In verifyAndAssignMeta(), there is a logic to verifyMetaRegionLocation
{code}
(!server.getMetaTableLocator().verifyMetaRegionLocation(server.getConnection(),
  this.server.getZooKeeper(), timeout)) {
  this.services.getAssignmentManager().assignMeta
  (HRegionInfo.FIRST_META_REGIONINFO);
} else if 
(serverName.equals(server.getMetaTableLocator().getMetaRegionLocation(
  this.server.getZooKeeper( {
  throw new IOException(hbase:meta is onlined on the dead server 
  + serverName);
{code}
If we see the meta region is still alive on the expired rs, we throw an 
exception.
We do some retries (default 10x1000ms) for verifyAndAssignMeta.
If we still get the exception after retries, we abort the master.

{code}
2015-05-27 06:58:30,156 FATAL [MASTER_META_SERVER_OPERATIONS-bdvs1163:6-0] 
master.HMaster: Master server abort: loaded coprocessors are: []
2015-05-27 06:58:30,156 FATAL [MASTER_META_SERVER_OPERATIONS-bdvs1163:6-0] 
master.HMaster: verifyAndAssignMeta failed after10 times retries, aborting
java.io.IOException: hbase:meta is onlined on the dead server 
bdvs1164.svl.ibm.com,16020,1432681743203
at 
org.apache.hadoop.hbase.master.handler.MetaServerShutdownHandler.verifyAndAssignMeta(MetaServerShutdownHandler.java:162)
at 
org.apache.hadoop.hbase.master.handler.MetaServerShutdownHandler.verifyAndAssignMetaWithRetries(MetaServerShutdownHandler.java:184)
at 
org.apache.hadoop.hbase.master.handler.MetaServerShutdownHandler.process(MetaServerShutdownHandler.java:93)
at 
org.apache.hadoop.hbase.executor.EventHandler.run(EventHandler.java:128)
at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
2015-05-27 06:58:30,156 INFO  [MASTER_META_SERVER_OPERATIONS-bdvs1163:6-0] 
regionserver.HRegionServer: STOPPED: verifyAndAssignMeta failed after10 times 
retries, aborting
{code}

The problem happens when the expired is slow processing its own expiration or 
has a slow death, and is still able to respond to master's meta verification in 
the meantime





--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (HBASE-13706) CoprocessorClassLoader should not exempt Hive classes

2015-05-18 Thread Jerry He (JIRA)
Jerry He created HBASE-13706:


 Summary: CoprocessorClassLoader should not exempt Hive classes
 Key: HBASE-13706
 URL: https://issues.apache.org/jira/browse/HBASE-13706
 Project: HBase
  Issue Type: Bug
  Components: Coprocessors
Affects Versions: 0.98.12, 1.0.1, 2.0.0, 1.1.0
Reporter: Jerry He
Priority: Minor


CoprocessorClassLoader is used to load classes from the coprocessor jar.
Certain classes are exempt from being loaded by this ClassLoader, which means 
they will be ignored in the coprocessor jar, but loaded from parent classpath 
instead.

One problem is that we categorically exempt org.apache.hadoop.
But it happens that Hive packages start with org.apache.hadoop.

There is no reason to exclude hive classes from theCoprocessorClassLoader.
HBase does not even include Hive jars.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (HBASE-13701) Consolidate SecureBulkLoadEndpoint into HBase core as default for bulk load

2015-05-15 Thread Jerry He (JIRA)
Jerry He created HBASE-13701:


 Summary: Consolidate SecureBulkLoadEndpoint into HBase core as 
default for bulk load
 Key: HBASE-13701
 URL: https://issues.apache.org/jira/browse/HBASE-13701
 Project: HBase
  Issue Type: Improvement
Reporter: Jerry He


HBASE-12052 makes SecureBulkLoadEndpoint work in a non-secure env to solve HDFS 
permission issues.
We have encountered some of the permission issues and have to use this 
SecureBulkLoadEndpoint to workaround issues.
We should  probably consolidate SecureBulkLoadEndpoint into HBase core as 
default for bulk load since it is able to handle both secure Kerberos and 
non-secure cases.
Maintaining two versions of bulk load implementation is also a cause of 
confusion, and having to explicitly set it is also inconvenient.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Reopened] (HBASE-13217) Procedure fails due to ZK issue

2015-05-12 Thread Jerry He (JIRA)

 [ 
https://issues.apache.org/jira/browse/HBASE-13217?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jerry He reopened HBASE-13217:
--

 Procedure fails due to ZK issue
 ---

 Key: HBASE-13217
 URL: https://issues.apache.org/jira/browse/HBASE-13217
 Project: HBase
  Issue Type: Bug
Affects Versions: 2.0.0, 1.0.1, 1.1.0, 0.98.12
Reporter: ramkrishna.s.vasudevan
Assignee: Jerry He
 Fix For: 2.0.0, 0.98.13, 1.0.2, 1.2.0, 1.1.1

 Attachments: HBASE-13217-0.98-v2.patch, HBASE-13217-v2.patch, 
 HBASE-13217.patch


 When ever I try to flush explicitly in the trunk code the flush procedure 
 fails due to ZK issue
 {code}
 ERROR: org.apache.hadoop.hbase.errorhandling.ForeignException$ProxyThrowable 
 via 
 stobdtserver3,16040,1426172670959:org.apache.hadoop.hbase.errorhandling.ForeignException$ProxyThrowable:
  java.io.IOException: org.apache.zookeeper.KeeperException$NoNodeException: 
 KeeperErrorCode = NoNode for 
 /hbase/flush-table-proc/acquired/TestTable/stobdtserver3,16040,1426172670959
 at 
 org.apache.hadoop.hbase.errorhandling.ForeignExceptionDispatcher.rethrowException(ForeignExceptionDispatcher.java:83)
 at 
 org.apache.hadoop.hbase.procedure.Procedure.isCompleted(Procedure.java:368)
 at 
 org.apache.hadoop.hbase.procedure.flush.MasterFlushTableProcedureManager.isProcedureDone(MasterFlushTableProcedureManager.java:196)
 at 
 org.apache.hadoop.hbase.master.MasterRpcServices.isProcedureDone(MasterRpcServices.java:905)
 at 
 org.apache.hadoop.hbase.protobuf.generated.MasterProtos$MasterService$2.callBlockingMethod(MasterProtos.java:47019)
 at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2073)
 at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:107)
 at 
 org.apache.hadoop.hbase.ipc.RpcExecutor.consumerLoop(RpcExecutor.java:130)
 at org.apache.hadoop.hbase.ipc.RpcExecutor$1.run(RpcExecutor.java:107)
 at java.lang.Thread.run(Thread.java:745)
 Caused by: 
 org.apache.hadoop.hbase.errorhandling.ForeignException$ProxyThrowable: 
 java.io.IOException: org.apache.zookeeper.KeeperException$NoNodeException: 
 KeeperErrorCode = NoNode for 
 /hbase/flush-table-proc/acquired/TestTable/stobdtserver3,16040,1426172670959
 at 
 org.apache.hadoop.hbase.procedure.Subprocedure.cancel(Subprocedure.java:273)
 at 
 org.apache.hadoop.hbase.procedure.ProcedureMember.controllerConnectionFailure(ProcedureMember.java:225)
 at 
 org.apache.hadoop.hbase.procedure.ZKProcedureMemberRpcs.sendMemberAcquired(ZKProcedureMemberRpcs.java:254)
 at 
 org.apache.hadoop.hbase.procedure.Subprocedure.call(Subprocedure.java:166)
 at 
 org.apache.hadoop.hbase.procedure.Subprocedure.call(Subprocedure.java:52)
 at java.util.concurrent.FutureTask.run(FutureTask.java:262)
 at 
 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
 at 
 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
 ... 1 more
 {code}
 Once this occurs, even on restart of the RS the RS becomes unusable.  I have 
 verified that the ZK remains intact and there is no problem with it.  a bit 
 older version of trunk ( 3months) does not have this problem.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Resolved] (HBASE-13217) Procedure fails due to ZK issue

2015-05-12 Thread Jerry He (JIRA)

 [ 
https://issues.apache.org/jira/browse/HBASE-13217?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jerry He resolved HBASE-13217.
--
Resolution: Fixed

 Procedure fails due to ZK issue
 ---

 Key: HBASE-13217
 URL: https://issues.apache.org/jira/browse/HBASE-13217
 Project: HBase
  Issue Type: Bug
Affects Versions: 2.0.0, 1.0.1, 1.1.0, 0.98.12
Reporter: ramkrishna.s.vasudevan
Assignee: Jerry He
 Fix For: 2.0.0, 0.98.13, 1.0.2, 1.2.0, 1.1.1

 Attachments: HBASE-13217-0.98-v2.patch, HBASE-13217-v2.patch, 
 HBASE-13217.patch


 When ever I try to flush explicitly in the trunk code the flush procedure 
 fails due to ZK issue
 {code}
 ERROR: org.apache.hadoop.hbase.errorhandling.ForeignException$ProxyThrowable 
 via 
 stobdtserver3,16040,1426172670959:org.apache.hadoop.hbase.errorhandling.ForeignException$ProxyThrowable:
  java.io.IOException: org.apache.zookeeper.KeeperException$NoNodeException: 
 KeeperErrorCode = NoNode for 
 /hbase/flush-table-proc/acquired/TestTable/stobdtserver3,16040,1426172670959
 at 
 org.apache.hadoop.hbase.errorhandling.ForeignExceptionDispatcher.rethrowException(ForeignExceptionDispatcher.java:83)
 at 
 org.apache.hadoop.hbase.procedure.Procedure.isCompleted(Procedure.java:368)
 at 
 org.apache.hadoop.hbase.procedure.flush.MasterFlushTableProcedureManager.isProcedureDone(MasterFlushTableProcedureManager.java:196)
 at 
 org.apache.hadoop.hbase.master.MasterRpcServices.isProcedureDone(MasterRpcServices.java:905)
 at 
 org.apache.hadoop.hbase.protobuf.generated.MasterProtos$MasterService$2.callBlockingMethod(MasterProtos.java:47019)
 at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2073)
 at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:107)
 at 
 org.apache.hadoop.hbase.ipc.RpcExecutor.consumerLoop(RpcExecutor.java:130)
 at org.apache.hadoop.hbase.ipc.RpcExecutor$1.run(RpcExecutor.java:107)
 at java.lang.Thread.run(Thread.java:745)
 Caused by: 
 org.apache.hadoop.hbase.errorhandling.ForeignException$ProxyThrowable: 
 java.io.IOException: org.apache.zookeeper.KeeperException$NoNodeException: 
 KeeperErrorCode = NoNode for 
 /hbase/flush-table-proc/acquired/TestTable/stobdtserver3,16040,1426172670959
 at 
 org.apache.hadoop.hbase.procedure.Subprocedure.cancel(Subprocedure.java:273)
 at 
 org.apache.hadoop.hbase.procedure.ProcedureMember.controllerConnectionFailure(ProcedureMember.java:225)
 at 
 org.apache.hadoop.hbase.procedure.ZKProcedureMemberRpcs.sendMemberAcquired(ZKProcedureMemberRpcs.java:254)
 at 
 org.apache.hadoop.hbase.procedure.Subprocedure.call(Subprocedure.java:166)
 at 
 org.apache.hadoop.hbase.procedure.Subprocedure.call(Subprocedure.java:52)
 at java.util.concurrent.FutureTask.run(FutureTask.java:262)
 at 
 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
 at 
 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
 ... 1 more
 {code}
 Once this occurs, even on restart of the RS the RS becomes unusable.  I have 
 verified that the ZK remains intact and there is no problem with it.  a bit 
 older version of trunk ( 3months) does not have this problem.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Resolved] (HBASE-13598) Make hbase assembly 'attach' to the project

2015-05-03 Thread Jerry He (JIRA)

 [ 
https://issues.apache.org/jira/browse/HBASE-13598?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jerry He resolved HBASE-13598.
--
Resolution: Fixed

Committed the doc-addendum.

 Make hbase assembly 'attach' to the project
 ---

 Key: HBASE-13598
 URL: https://issues.apache.org/jira/browse/HBASE-13598
 Project: HBase
  Issue Type: Improvement
Reporter: Jerry He
Assignee: Jerry He
Priority: Minor
 Fix For: 2.0.0, 1.2.0

 Attachments: HBASE-13598-master.patch, doc-addendum.patch


 Currently for hbase assembly, we set 'attach' to 'false':
 hbase-assembly/pom.xml:
 {code}
 !--We do not want assembly attached; run on command-line explicitly
 -   if you want to do an assembly--
 -  attachfalse/attach
 {code}
 The result is that the hbase assembly tarball will not be deployed via 'mvn 
 install' or 'maven deploy'
 There are Apache projects that directly uses the hbase assembly tarball in 
 their build process.  For example, Slider HBase package and Ambari 2.0 
 Metrics.
 Here is the link the maven assembly plug info on the 'attach':
 https://maven.apache.org/plugins/maven-assembly-plugin/single-mojo.html#attach
 {code}
 attach:
 Controls whether the assembly plugin tries to attach the resulting assembly 
 to the project.
 Type: boolean
 Since: 2.2-beta-1
 Required: No
 User Property: assembly.attach
 Default: true
 {code}
 The assembly will only be built if 'assembly:single' is specified, and then 
 deployed in 'maven install' or 'maven deploy'



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (HBASE-13598) Make hbase assembly 'attach' to the project

2015-04-29 Thread Jerry He (JIRA)
Jerry He created HBASE-13598:


 Summary: Make hbase assembly 'attach' to the project
 Key: HBASE-13598
 URL: https://issues.apache.org/jira/browse/HBASE-13598
 Project: HBase
  Issue Type: Improvement
Reporter: Jerry He
Priority: Minor


Currently for hbase assembly, we set 'attach' to 'false':

hbase-assembly/pom.xml:
{code}
!--We do not want assembly attached; run on command-line explicitly
-   if you want to do an assembly--
-  attachfalse/attach
{code}

The result is that the hbase assembly tarball will not be deployed via 'mvn 
install' or 'maven deploy'

There are Apache projects that directly uses the hbase assembly tarball in 
their build process.  For example, Slider HBase package and Ambari 2.0 Metrics.

Here is the link the maven assembly plug info on the 'attach':
https://maven.apache.org/plugins/maven-assembly-plugin/single-mojo.html#attach
{code}
attach:

Controls whether the assembly plugin tries to attach the resulting assembly to 
the project.
Type: boolean
Since: 2.2-beta-1
Required: No
User Property: assembly.attach
Default: true
{code}

The assembly will only be built if 'assembly:single' is specified, and then 
deployed in 'maven install' or 'maven deploy'



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (HBASE-13526) TestRegionServerReportForDuty can be flaky: hang or timeout

2015-04-21 Thread Jerry He (JIRA)
Jerry He created HBASE-13526:


 Summary: TestRegionServerReportForDuty can be flaky: hang or 
timeout
 Key: HBASE-13526
 URL: https://issues.apache.org/jira/browse/HBASE-13526
 Project: HBase
  Issue Type: Bug
  Components: test
Affects Versions: 0.98.12, 2.0.0, 1.1.0
Reporter: Jerry He
Assignee: Jerry He
Priority: Minor


This test case is from HBASE-13317.
The test uses a custom region server to simulate reportForDuty in a master 
failover case.  This custom RS would start, then the primary master would fail, 
then the custom RS would  reportForDuty to the second master after master 
failover.

The test occasionally will hang or timeout.
The root cause is that during first master initialization, the master would 
assign meta (and create and assign namespace table). It is possible that the 
meta is assigned to the custom RS, which has started (place a rs node on the 
ZK), but will not really check-in and be online. Then the master will go thru 
multiple re-assignment, which can be lengthy and cause trouble.

There are a couple of issues I see in the master assignment code:
1.  Master puts all the region servers obtained from ZK rs node into the online 
server list, including those that have not checked-in via RPC.  And we will 
assign meta or other regions based on whole list.
2. When one assign plan fails, we don't exclude the failed server when picking 
the next destination, which may prolong the assignment process.

I will provide a patch to fix the test case.  The other issues mentioned are up 
to discussion.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (HBASE-13345) Fix LocalHBaseCluster so that different region server impl can be used for different slaves

2015-03-26 Thread Jerry He (JIRA)
Jerry He created HBASE-13345:


 Summary: Fix LocalHBaseCluster so that different region server 
impl can be used for different slaves
 Key: HBASE-13345
 URL: https://issues.apache.org/jira/browse/HBASE-13345
 Project: HBase
  Issue Type: Improvement
Reporter: Jerry He
Assignee: Jerry He
Priority: Minor


LocalHBaseCluster and MiniHBaseCluster allow plugging in custom region server 
implementations.
This JIRA will fix a loophole so that different implementations can be used for 
different slaves. 
For example, MyRegionServer1 for slave1, MyRegionServer1 for slave2.
Or  MyRegionServer1 for slave1,  All other slaves use the default.

This will help targeted testing using MiniHBaseCluster.

I am working on a unit test for HBASE-13317.  This fix will be useful..



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (HBASE-13317) Region server reportForDuty stuck looping if there is a master change

2015-03-23 Thread Jerry He (JIRA)
Jerry He created HBASE-13317:


 Summary: Region server reportForDuty stuck looping if there is a 
master change
 Key: HBASE-13317
 URL: https://issues.apache.org/jira/browse/HBASE-13317
 Project: HBase
  Issue Type: Bug
  Components: regionserver
Affects Versions: 0.98.12, 1.0.0, 2.0.0
Reporter: Jerry He
Assignee: Jerry He
 Fix For: 2.0.0, 1.0.1, 0.98.13


During cluster startup, region server reportForDuty gets stuck looping if there 
is a master change.

{noformat}
2015-03-22 11:15:16,186 INFO  [regionserver60020] regionserver.HRegionServer: 
reportForDuty to master=bigaperf274,6,1427045883965 with port=60020, 
startcode=1427048115174
2015-03-22 11:15:16,272 WARN  [regionserver60020] regionserver.HRegionServer: 
error telling master we are up
com.google.protobuf.ServiceException: java.net.ConnectException: Connection 
refused
at 
org.apache.hadoop.hbase.ipc.RpcClient.callBlockingMethod(RpcClient.java:1678)
at 
org.apache.hadoop.hbase.ipc.RpcClient$BlockingRpcChannelImplementation.callBlockingMethod(RpcClient.java:1719)
at 
org.apache.hadoop.hbase.protobuf.generated.RegionServerStatusProtos$RegionServerStatusService$BlockingStub.regionServerStartup(RegionServerStatusProtos.java:8277)
at 
org.apache.hadoop.hbase.regionserver.HRegionServer.reportForDuty(HRegionServer.java:2137)
at 
org.apache.hadoop.hbase.regionserver.HRegionServer.run(HRegionServer.java:896)
at java.lang.Thread.run(Thread.java:745)
2015-03-22 11:15:16,274 WARN  [regionserver60020] regionserver.HRegionServer: 
reportForDuty failed; sleeping and then retrying.
2015-03-22 11:15:19,274 INFO  [regionserver60020] regionserver.HRegionServer: 
reportForDuty to master=bigaperf273,6,1427048108439 with port=60020, 
startcode=1427048115174
2015-03-22 11:15:19,275 WARN  [regionserver60020] regionserver.HRegionServer: 
error telling master we are up
com.google.protobuf.ServiceException: java.net.ConnectException: Connection 
refused
at 
org.apache.hadoop.hbase.ipc.RpcClient.callBlockingMethod(RpcClient.java:1678)
at 
org.apache.hadoop.hbase.ipc.RpcClient$BlockingRpcChannelImplementation.callBlockingMethod(RpcClient.java:1719)
at 
org.apache.hadoop.hbase.protobuf.generated.RegionServerStatusProtos$RegionServerStatusService$BlockingStub.regionServerStartup(RegionServerStatusProtos.java:8277)
at 
org.apache.hadoop.hbase.regionserver.HRegionServer.reportForDuty(HRegionServer.java:2137)
at 
org.apache.hadoop.hbase.regionserver.HRegionServer.run(HRegionServer.java:896)
at java.lang.Thread.run(Thread.java:745)
2015-03-22 11:15:19,276 WARN  [regionserver60020] regionserver.HRegionServer: 
reportForDuty failed; sleeping and then retrying.
2015-03-22 11:15:22,276 INFO  [regionserver60020] regionserver.HRegionServer: 
reportForDuty to master=bigaperf273,6,1427048108439 with port=60020, 
startcode=1427048115174
2015-03-22 11:15:22,296 DEBUG [regionserver60020] regionserver.HRegionServer: 
Master is not running yet
2015-03-22 11:15:22,296 WARN  [regionserver60020] regionserver.HRegionServer: 
reportForDuty failed; sleeping and then retrying.
2015-03-22 11:15:25,296 INFO  [regionserver60020] regionserver.HRegionServer: 
reportForDuty to master=bigaperf273,6,1427048108439 with port=60020, 
startcode=1427048115174
2015-03-22 11:15:25,299 DEBUG [regionserver60020] regionserver.HRegionServer: 
Master is not running yet
2015-03-22 11:15:25,299 WARN  [regionserver60020] regionserver.HRegionServer: 
reportForDuty failed; sleeping and then retrying.
2015-03-22 11:15:28,299 INFO  [regionserver60020] regionserver.HRegionServer: 
reportForDuty to master=bigaperf273,6,1427048108439 with port=60020, 
startcode=1427048115174
2015-03-22 11:15:28,302 DEBUG [regionserver60020] regionserver.HRegionServer: 
Master is not running yet
2015-03-22 11:15:28,302 WARN  [regionserver60020] regionserver.HRegionServer: 
reportForDuty failed; sleeping and then retrying.
{noformat}

What happended is the region server first got 
master=bigaperf274,6,1427045883965.  Before it was able to report 
successfully, the maser changed to bigaperf273,6,1427048108439.
We were supposed to open a new connection to the new master. But we never did, 
looping and trying to old address forever.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (HBASE-13251) Correct 'HBase, MapReduce, and the CLASSPATH' section in HBase Ref Guide

2015-03-16 Thread Jerry He (JIRA)
Jerry He created HBASE-13251:


 Summary: Correct 'HBase, MapReduce, and the CLASSPATH' section in 
HBase Ref Guide
 Key: HBASE-13251
 URL: https://issues.apache.org/jira/browse/HBASE-13251
 Project: HBase
  Issue Type: Improvement
  Components: documentation
Reporter: Jerry He


As [~busbey] pointed out in HBASE-13149, we have a section HBase, MapReduce, 
and the CLASSPATH in the HBase Ref Guide.
http://hbase.apache.org/book.html#hbase.mapreduce.classpath

There are duplication, errors and misinformation in the section.

Need to cleanup and polish it.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (HBASE-13149) HBase server MR tools are broken on Hadoop 2.5+ Yarn

2015-03-03 Thread Jerry He (JIRA)
Jerry He created HBASE-13149:


 Summary: HBase server MR tools are broken on Hadoop 2.5+ Yarn
 Key: HBASE-13149
 URL: https://issues.apache.org/jira/browse/HBASE-13149
 Project: HBase
  Issue Type: Bug
Affects Versions: 0.98.10.1, 1.0.0, 2.0.0
Reporter: Jerry He


Running on the server MR tools is not working on Yarn version 2.5+.

Running org.apache.hadoop.hbase.mapreduce.Export:

{noformat}
Exception in thread main java.lang.NoSuchMethodError: 
org.codehaus.jackson.map.ObjectMapper.setSerializationInclusion(Lorg/codehaus/jackson/map/annotate/JsonSerialize$Inclusion;)Lorg/codehaus/jackson/map/ObjectMapper;
at 
org.apache.hadoop.yarn.webapp.YarnJacksonJaxbJsonProvider.configObjectMapper(YarnJacksonJaxbJsonProvider.java:59)
at 
org.apache.hadoop.yarn.util.timeline.TimelineUtils.clinit(TimelineUtils.java:47)
at 
org.apache.hadoop.yarn.client.api.impl.YarnClientImpl.serviceInit(YarnClientImpl.java:166)
at 
org.apache.hadoop.service.AbstractService.init(AbstractService.java:163)
at 
org.apache.hadoop.mapred.ResourceMgrDelegate.serviceInit(ResourceMgrDelegate.java:102)
at 
org.apache.hadoop.service.AbstractService.init(AbstractService.java:163)
at 
org.apache.hadoop.mapred.ResourceMgrDelegate.init(ResourceMgrDelegate.java:96)
at org.apache.hadoop.mapred.YARNRunner.init(YARNRunner.java:112)
at 
org.apache.hadoop.mapred.YarnClientProtocolProvider.create(YarnClientProtocolProvider.java:34)
at org.apache.hadoop.mapreduce.Cluster.initialize(Cluster.java:95)
at org.apache.hadoop.mapreduce.Cluster.init(Cluster.java:82)
at org.apache.hadoop.mapreduce.Cluster.init(Cluster.java:75)
at org.apache.hadoop.mapreduce.Job$9.run(Job.java:1266)
at org.apache.hadoop.mapreduce.Job$9.run(Job.java:1262)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:415)
at 
org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1628)
at org.apache.hadoop.mapreduce.Job.connect(Job.java:1261)
at org.apache.hadoop.mapreduce.Job.submit(Job.java:1290)
at org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:1314)
at org.apache.hadoop.hbase.mapreduce.Export.main(Export.java:189)
{noformat}

The problem seems to be the jackson jar version.  HADOOP-10104 updated jackson 
version to 1.9.13.  YARN-2092 reported a problem as well.

HBase is using jackson 1.8.8. This version of the jar in the classpath seem to 
cause the problem.

Should we upgrade to jackson 1.9.13? 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (HBASE-13085) Security issue in the implementatoin of Rest gataway 'doAs' proxy user support

2015-02-23 Thread Jerry He (JIRA)
Jerry He created HBASE-13085:


 Summary: Security issue in the implementatoin of Rest gataway 
'doAs' proxy user support
 Key: HBASE-13085
 URL: https://issues.apache.org/jira/browse/HBASE-13085
 Project: HBase
  Issue Type: Bug
  Components: REST, security
Affects Versions: 0.98.10, 1.0.0, 2.0.0
Reporter: Jerry He
Assignee: Jerry He
Priority: Critical


When 'hbase.rest.support.proxyuser' is turned on, HBase Rest gateway support 
'doAs' proxy user from the Rest client.

The current implementation checks to see if the 'rest server user' is 
authorized to impersonate the 'doAs' user (the user in the 'doAs' Rest query 
string).
{code}
if (doAsUserFromQuery != null) {
  Configuration conf = servlet.getConfiguration();
  if (!servlet.supportsProxyuser()) {
throw new ServletException(Support for proxyuser is not configured);
  }
  UserGroupInformation ugi = servlet.getRealUser();
  // create and attempt to authorize a proxy user (the client is attempting
  // to do proxy user)
  ugi = UserGroupInformation.createProxyUser(doAsUserFromQuery, ugi);
  // validate the proxy user authorization
  try {
ProxyUsers.authorize(ugi, request.getRemoteAddr(), conf);
  } catch(AuthorizationException e) {
throw new ServletException(e.getMessage());
  }
  servlet.setEffectiveUser(doAsUserFromQuery);
} 
{code}

The current implementation allows anyone from the rest client side to 
impersonate another user by 'doAs'. 
For example, potentially, 'user1' can 'doAs=admin'

The correct implementation should check to see if the rest client user is 
authorized to do impersonation.




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (HBASE-13053) Add support of Visibility Labels in PerformanceEvaluation

2015-02-16 Thread Jerry He (JIRA)
Jerry He created HBASE-13053:


 Summary: Add support of Visibility Labels in PerformanceEvaluation
 Key: HBASE-13053
 URL: https://issues.apache.org/jira/browse/HBASE-13053
 Project: HBase
  Issue Type: Improvement
Affects Versions: 0.98.10.1, 1.0.0
Reporter: Jerry He
Assignee: Jerry He
Priority: Minor
 Fix For: 2.0.0, 1.0.1, 0.98.11


Add support of Visibility Labels in PerformanceEvaluation:

During write operations, support adding a visibility expression to KVs.
During read/scan operations, support using visibility authorization.

Here is the usage:
{noformat}
Options:
...
visibilityExp   Writes the visibility expression along with KVs. Use for write 
commands. Visiblity labels need to pre-exist.
visibilityAuth  Specify the visibility auths (comma separated labels) used in 
read or scan. Visiblity labels need to pre-exist.
{noformat}




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (HBASE-13006) Document visibility label support for groups

2015-02-10 Thread Jerry He (JIRA)
Jerry He created HBASE-13006:


 Summary: Document visibility label support for groups
 Key: HBASE-13006
 URL: https://issues.apache.org/jira/browse/HBASE-13006
 Project: HBase
  Issue Type: Task
Reporter: Jerry He
Priority: Minor
 Fix For: 2.0.0


This is to document the changes added from HBASE-12745.




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (HBASE-12949) Scanner can be stuck in infinite loop if the HFile is corrupted

2015-01-30 Thread Jerry He (JIRA)
Jerry He created HBASE-12949:


 Summary: Scanner can be stuck in infinite loop if the HFile is 
corrupted
 Key: HBASE-12949
 URL: https://issues.apache.org/jira/browse/HBASE-12949
 Project: HBase
  Issue Type: Bug
Affects Versions: 0.98.10
Reporter: Jerry He


We've encountered problem where compaction hangs and never completes.
After looking into it further, we found that the compaction scanner was stuck 
in a infinite loop. See stack below.
{noformat}
org.apache.hadoop.hbase.regionserver.KeyValueHeap.generalizedSeek(KeyValueHeap.java:296)
org.apache.hadoop.hbase.regionserver.KeyValueHeap.reseek(KeyValueHeap.java:257)
org.apache.hadoop.hbase.regionserver.StoreScanner.reseek(StoreScanner.java:697)
org.apache.hadoop.hbase.regionserver.StoreScanner.seekToNextRow(StoreScanner.java:672)
org.apache.hadoop.hbase.regionserver.StoreScanner.next(StoreScanner.java:529)
org.apache.hadoop.hbase.regionserver.compactions.Compactor.performCompaction(Compactor.java:223)
{noformat}

We identified the hfile that seems to be corrupted.  Using HFile tool shows the 
following:
{noformat}
[biadmin@hdtest009 bin]$ hbase org.apache.hadoop.hbase.io.hfile.HFile -v -k -m 
-f 
/user/biadmin/CUMMINS_INSITE_V1/7106432d294dd844be15996ccbf2ba84/attributes/f1a7e3113c2c4047ac1fc8fbcb41d8b7
15/01/23 11:53:17 INFO Configuration.deprecation: hadoop.native.lib is 
deprecated. Instead, use io.native.lib.available
15/01/23 11:53:18 INFO util.ChecksumType: Checksum using 
org.apache.hadoop.util.PureJavaCrc32
15/01/23 11:53:18 INFO util.ChecksumType: Checksum can use 
org.apache.hadoop.util.PureJavaCrc32C
15/01/23 11:53:18 INFO Configuration.deprecation: fs.default.name is 
deprecated. Instead, use fs.defaultFS
Scanning - 
/user/biadmin/CUMMINS_INSITE_V1/7106432d294dd844be15996ccbf2ba84/attributes/f1a7e3113c2c4047ac1fc8fbcb41d8b7
WARNING, previous row is greater then current row
filename - 
/user/biadmin/CUMMINS_INSITE_V1/7106432d294dd844be15996ccbf2ba84/attributes/f1a7e3113c2c4047ac1fc8fbcb41d8b7
previous - 
\x00/20110203-094231205-79442793-1410161293068203000\x0Aattributes16794406\x00\x00\x01\x00\x00\x00\x00\x00\x00
current  -
Exception in thread main java.nio.BufferUnderflowException
at java.nio.Buffer.nextGetIndex(Buffer.java:489)
at java.nio.HeapByteBuffer.getInt(HeapByteBuffer.java:347)
at 
org.apache.hadoop.hbase.io.hfile.HFileReaderV2$ScannerV2.readKeyValueLen(HFileReaderV2.java:856)
at 
org.apache.hadoop.hbase.io.hfile.HFileReaderV2$ScannerV2.next(HFileReaderV2.java:768)
at 
org.apache.hadoop.hbase.io.hfile.HFilePrettyPrinter.scanKeysValues(HFilePrettyPrinter.java:362)
at 
org.apache.hadoop.hbase.io.hfile.HFilePrettyPrinter.processFile(HFilePrettyPrinter.java:262)
at 
org.apache.hadoop.hbase.io.hfile.HFilePrettyPrinter.run(HFilePrettyPrinter.java:220)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
at 
org.apache.hadoop.hbase.io.hfile.HFilePrettyPrinter.main(HFilePrettyPrinter.java:539)
at org.apache.hadoop.hbase.io.hfile.HFile.main(HFile.java:802)
{noformat}

Turning on Java Assert shows the following:
{noformat}
Exception in thread main java.lang.AssertionError: Key 
20110203-094231205-79442793-1410161293068203000/attributes:16794406/1099511627776/Minimum/vlen=15/mvcc=0
 followed by a smaller key //0/Minimum/vlen=0/mvcc=0 in cf attributes
at 
org.apache.hadoop.hbase.regionserver.StoreScanner.checkScanOrder(StoreScanner.java:672)
{noformat}

It shows that the hfile seems to be corrupted -- the keys don't seem to be 
right.
But Scanner is not able to give a meaningful error, but stuck in an infinite 
loop in here:
{code}
KeyValueHeap.generalizedSeek()
while ((scanner = heap.poll()) != null) {
}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (HBASE-12823) Visibility label security at limited localized level

2015-01-08 Thread Jerry He (JIRA)
Jerry He created HBASE-12823:


 Summary: Visibility label security at limited localized level
 Key: HBASE-12823
 URL: https://issues.apache.org/jira/browse/HBASE-12823
 Project: HBase
  Issue Type: Improvement
  Components: security
Affects Versions: 1.0.0, 2.0.0, 0.98.10
Reporter: Jerry He
 Fix For: 2.0.0


Currently, if visibility label security is enabled for a HBase instance, after 
VisibilityController is configured, the cell level visibility label filtering 
will kick in across the HBase instance.

Cell level visibility label filtering has non-negligible performance impact.

On the other hand, in many use cases, only a small portion of the overall data 
needs visibility label protection.

If we can support  visibility label security at a limited and localized level, 
we will broaden the use cases and the adoption of this feature.

We should be able to support visibility label security at per table or per 
column family level. This is quite common in many other HBase features.

Cell level visibility label filtering will only be enabled and kick in for the 
tables or column families that the user designates.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Resolved] (HBASE-8310) HBase snapshot timeout default values and TableLockManger timeout

2014-12-27 Thread Jerry He (JIRA)

 [ 
https://issues.apache.org/jira/browse/HBASE-8310?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jerry He resolved HBASE-8310.
-
Resolution: Won't Fix

Clean up JIRAs.
Close this a Won't Fix.

 HBase snapshot timeout default values and TableLockManger timeout
 -

 Key: HBASE-8310
 URL: https://issues.apache.org/jira/browse/HBASE-8310
 Project: HBase
  Issue Type: Bug
  Components: snapshots
Affects Versions: 0.95.0
Reporter: Jerry He
Assignee: Jerry He
Priority: Minor
 Attachments: trunk.patch


 There are a few timeout values and defaults being used by HBase snapshot.
 DEFAULT_MAX_WAIT_TIME (6 milli sec, 1 min) for client response
 TIMEOUT_MILLIS_DEFAULT (6 milli sec, 1 min) for Procedure timeout
 SNAPSHOT_TIMEOUT_MILLIS_DEFAULT (6 milli sec, 1 min) for region server 
 subprocedure  
 There is also other timeout involved, for example, 
 DEFAULT_TABLE_WRITE_LOCK_TIMEOUT_MS (10 mins) for 
 TakeSnapshotHandler#prepare()
 We could have this case:
 The user issues a sync snapshot request, waits for 1 min, and gets an 
 exception.
 In the meantime the snapshot handler is blocked on the table lock, and the 
 snapshot may continue to finish after 10 mins.
 But the user will probably re-issue the snapshot request during the 10 mins.
 This is a little confusing and messy when this happens.
 To be more reasonable, we should either increase the DEFAULT_MAX_WAIT_TIME or 
 decrease the table lock waiting time.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (HBASE-12744) hbase-default.xml lists hbase.regionserver.global.memstore.size twice

2014-12-22 Thread Jerry He (JIRA)
Jerry He created HBASE-12744:


 Summary: hbase-default.xml lists 
hbase.regionserver.global.memstore.size twice
 Key: HBASE-12744
 URL: https://issues.apache.org/jira/browse/HBASE-12744
 Project: HBase
  Issue Type: Bug
Affects Versions: 1.0.0
Reporter: Jerry He
Assignee: Jerry He
Priority: Minor
 Fix For: 1.0.0


This seems to be only a problem is branch-1.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (HBASE-12745) Visibility Labels: Support user groups visibility labels.

2014-12-22 Thread Jerry He (JIRA)
Jerry He created HBASE-12745:


 Summary: Visibility Labels:  Support user groups visibility labels.
 Key: HBASE-12745
 URL: https://issues.apache.org/jira/browse/HBASE-12745
 Project: HBase
  Issue Type: Improvement
  Components: security
Affects Versions: 0.99.2, 0.98.9, 1.0.0
Reporter: Jerry He
Assignee: Jerry He


The thinking is that we should support visibility labels to be associated with 
user groups.
We will then be able grant visibility labels to a group in addition to 
individual users, which provides convenience and usability.
We will use '@group' to denote a group name, as similarly done in 
AcccessController.
For example, 
{code}
set_auths '@group1', ['SECRET','PRIVATE']
{code}
{code}
get_auth '@group1'
{code}
A user belonging to 'group1' will have all the visibility labels granted to 
'group1'

We'll also support super user groups as specified in hbase-site.xml.

The code update will mainly be on the server side VisibilityLabelService 
implementation.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (HBASE-12682) compaction thread throttle value is not correct in hbase-default.xml

2014-12-13 Thread Jerry He (JIRA)
Jerry He created HBASE-12682:


 Summary: compaction thread throttle value is not correct in 
hbase-default.xml
 Key: HBASE-12682
 URL: https://issues.apache.org/jira/browse/HBASE-12682
 Project: HBase
  Issue Type: Bug
  Components: regionserver
Affects Versions: 2.0.0
Reporter: Jerry He
Assignee: Jerry He
 Fix For: 2.0.0


While doing some compaction tuning and looking up some of the parameters, I 
noticed that hbase.regionserver.thread.compaction.throttle default value in the 
documentation and in hbase-site.xml seems to be off the mark.

{code}
  property
namehbase.regionserver.thread.compaction.throttle/name
value2560/value
descriptionThere are two different thread pools for compactions, one for 
large compactions and
  the other for small compactions. This helps to keep compaction of lean 
tables (such as
systemitemhbase:meta/systemitem) fast. If a compaction is larger 
than this threshold, it
  goes into the large compaction pool. In most cases, the default value is 
appropriate. Default:
  2 x hbase.hstore.compaction.max x hbase.hregion.memstore.flush.size 
(which defaults to 128).
  The value field assumes that the value of 
hbase.hregion.memstore.flush.size is unchanged from
  the default./description
  /property
{code}

It should be in bytes. Or am I miss anyting?
It is not a problem in 0.98 since the property is not in hbase-site.xml over 
there. It is obtained dynamically:
{code}
throttlePoint =  conf.getLong(hbase.regionserver.thread.compaction.throttle,
  2 * maxFilesToCompact * storeConfigInfo.getMemstoreFlushSize());
{code}




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (HBASE-12644) Visibility Labels: issue with storing super users in labels table

2014-12-05 Thread Jerry He (JIRA)
Jerry He created HBASE-12644:


 Summary: Visibility Labels: issue with storing super users in 
labels table
 Key: HBASE-12644
 URL: https://issues.apache.org/jira/browse/HBASE-12644
 Project: HBase
  Issue Type: Bug
  Components: security
Affects Versions: 0.99.2, 0.98.8
Reporter: Jerry He
 Fix For: 1.0.0, 0.98.9


Super users have all the permissions for ACL and Visibility labels.
They are defined in hbase-site.xml.
Currently in VisibilityController, we persist super user with their system 
permission in hbase:labels.
This make change in super user difficult.
There are two issues:
In the current DefaultVisibilityLabelServiceImpl.addSystemLabel, we only add 
super user when we initially create the 'system' label.
No additional update after that even if super user changed. See code for 
details.
 
Additionally, there is no mechanism to remove any super user from the labels 
table.
 
We probably should not persist super users in the labels table.
They are in hbase-site.xml and can just stay in labelsCache and used from 
labelsCache after retrieval by Visibility Controller.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (HBASE-12441) Export and CopyTable need to be able to keep tags/labels in cells

2014-11-06 Thread Jerry He (JIRA)
Jerry He created HBASE-12441:


 Summary: Export and CopyTable need to be able to keep tags/labels 
in cells
 Key: HBASE-12441
 URL: https://issues.apache.org/jira/browse/HBASE-12441
 Project: HBase
  Issue Type: Bug
  Components: mapreduce, security
Reporter: Jerry He


Export and CopyTable (and possibly other MR tools) currently do not carry over 
tags/labels in cells.

These tools should be able keep tags/labels in cells when they back up the 
table cells.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (HBASE-12373) Provide a command to list visibility labels

2014-10-28 Thread Jerry He (JIRA)
Jerry He created HBASE-12373:


 Summary: Provide a command to list visibility labels
 Key: HBASE-12373
 URL: https://issues.apache.org/jira/browse/HBASE-12373
 Project: HBase
  Issue Type: Improvement
Affects Versions: 0.99.1, 0.98.7
Reporter: Jerry He
Priority: Minor


A command to list visibility labels that are in place would be handy.
This is also in line with many of the other hbase list commands.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (HBASE-12346) Scan's default auths behavior under Visibility labels

2014-10-26 Thread Jerry He (JIRA)
Jerry He created HBASE-12346:


 Summary: Scan's default auths behavior under Visibility labels
 Key: HBASE-12346
 URL: https://issues.apache.org/jira/browse/HBASE-12346
 Project: HBase
  Issue Type: Bug
  Components: API, security
Affects Versions: 0.99.1, 0.98.7
Reporter: Jerry He


In Visibility Labels security, a set of labels (auths) are administered and 
associated with a user.
A user can normally  only see cell data during scan that are part of the user's 
label set (auths).
Scan uses setAuthorizations to indicates its wants to use the auths to access 
the cells.
Similarly in the shell:
{code}
scan 'table1', AUTHORIZATIONS = ['private']
{code}
But it is a surprise to find that setAuthorizations seems to be 'mandatory' in 
the default visibility label security setting.  Every scan needs to 
setAuthorizations before the scan can get any cells even the cells are under 
the labels the request user is part of.

The following steps will illustrate the issue:

Run as superuser.
{code}
1. create a visibility label called 'private'
2. create 'table1'
3. put into 'table1' data and label the data as 'private'
4. set_auths 'user1', 'private'
5. grant 'user1', 'RW', 'table1'
{code}
Run as 'user1':
{code}
1. scan 'table1'
This show no cells.
2. scan 'table1', scan 'table1', AUTHORIZATIONS = ['private']
This will show all the data.
{code}

I am not sure if this is expected by design or a bug.
But a more reasonable, more client application backward compatible, and less 
surprising default behavior should probably look like this:

A scan's default auths, if its Authorizations attributes is not set explicitly, 
should be all the auths the request user is administered and allowed on the 
server.

If scan.setAuthorizations is used, then the server further filter the auths 
during scan: use the input auths minus what is not in user's label set on the 
server.






--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (HBASE-12301) user_permission command does not show global permissions

2014-10-20 Thread Jerry He (JIRA)
Jerry He created HBASE-12301:


 Summary: user_permission command does not show global permissions
 Key: HBASE-12301
 URL: https://issues.apache.org/jira/browse/HBASE-12301
 Project: HBase
  Issue Type: Bug
  Components: security, shell
Affects Versions: 0.98.4, 2.0.0
Reporter: Jerry He


It seems that since 0,98 or later, the shell command does not show global 
permission anymore, even requested by user with the right privilege.

{code}
hbase(main):004:0 user_permission
UserTable,Family,Qualifier:Permission
 hbase  default,table1,,: [Permission: 
actions=READ,WRITE,EXEC,CREATE,ADMIN]
 user2  default,table1,,: [Permission: 
actions=READ,WRITE]
 hbase  default,table2,,: [Permission: 
actions=READ,WRITE,EXEC,CREATE,ADMIN]
 user2  default,table2,,: [Permission: 
actions=READ,WRITE]
{code}


I recall in the older versions, global permissions were shown as permissions on 
the hbase:acl table.

Anyway we need a way to show the global permissions as part of user_permission 
request.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (HBASE-12302) VisibilityClient getAuths does not propagate remote service exception correctly

2014-10-20 Thread Jerry He (JIRA)
Jerry He created HBASE-12302:


 Summary: VisibilityClient getAuths does not propagate remote 
service exception correctly
 Key: HBASE-12302
 URL: https://issues.apache.org/jira/browse/HBASE-12302
 Project: HBase
  Issue Type: Bug
  Components: Client, security
Affects Versions: 0.98.7, 2.0.0
Reporter: Jerry He
Priority: Minor
 Fix For: 2.0.0, 0.98.8


From hbase shell, run 'get_auths' with a non-superuser:

{code}
hbase(main):002:0 get_auths 'user2'

ERROR:

Here is some help for this command:
Get the visibility labels set for a particular user
Syntax : get_auths 'user1'

For example:

hbase get_auths 'user1'

{code}

We should expect a AccessDeniedException from the server.

From a Java client,  AccessDeniedException was dumped out, but the end 
exception is

{code}
java.util.NoSuchElementException
at java.util.TreeMap$PrivateEntryIterator.nextEntry(TreeMap.java:1124)
at java.util.TreeMap$ValueIterator.next(TreeMap.java:1171)
at 
org.apache.hadoop.hbase.security.visibility.VisibilityClient.getAuths(VisibilityClient.java:148)
{code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (HBASE-12168) Document Rest gateway SPNEGO-based authentication for client

2014-10-03 Thread Jerry He (JIRA)
Jerry He created HBASE-12168:


 Summary: Document Rest gateway SPNEGO-based authentication for 
client
 Key: HBASE-12168
 URL: https://issues.apache.org/jira/browse/HBASE-12168
 Project: HBase
  Issue Type: Task
  Components: documentation, REST, security
Reporter: Jerry He
 Fix For: 0.98.8, 0.99.1


After HBASE-5050, we seem to support SPNEGO-based authentication from client on 
Rest gateway. But I had a tough time finding the info.
The support is not mentioned in Security book. In the security book, we still 
have:
bq. It should be possible for clients to authenticate with the HBase cluster 
through the REST gateway in a pass-through manner via SPEGNO HTTP 
authentication. This is future work.

The release note in HBASE-5050 seems to be obsolete as well. e.g.
hbase.rest.kerberos.spnego.principal seems to be obsolete.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (HBASE-11882) Row level consistency may not be maintained with bulk load and compaction

2014-09-02 Thread Jerry He (JIRA)
Jerry He created HBASE-11882:


 Summary: Row level consistency may not be maintained with bulk 
load and compaction
 Key: HBASE-11882
 URL: https://issues.apache.org/jira/browse/HBASE-11882
 Project: HBase
  Issue Type: Bug
  Components: regionserver
Affects Versions: 1.0.0, 2.0.0
Reporter: Jerry He
Priority: Critical
 Fix For: 1.0.0, 2.0.0


While looking into the TestHRegionServerBulkLoad failure for HBASE-11772, I 
found the root cause is that row level atomicity may not be maintained with 
bulk load together with compation.
TestHRegionServerBulkLoad is used to test bulk load atomicity. The test uses 
multiple threads to do bulk load and scan continuously and do compactions 
periodically. 
It verifies row level data is always consistent across column families.

After HBASE-11591, we added readpoint checks for bulkloaded data using the 
seqId at the time of bulk load. Now a scanner will not see the data from a bulk 
load if the scanner's readpoint is earlier than the bulk load seqId.
Previously, the atomic bulk load result is visible immediately to all scanners.

The problem is with compaction after bulk load. Compaction does not lock the 
region and it is done one store (column family) at a time. It also compact away 
the seqId marker of bulk load.

Here is an event sequence where the row level consistency is broken.

1. A scanner is started to scan a region with cf1 and cf2. The readpoint is 10.
2. There is a bulk load that loads into cf1 and cf2. The bulk load seqId is 11. 
Bulk load is guarded by region write lock. So it is atomic.
3. There is a compaction that compacts cf1. It compacts away the seqId marker 
of the bulk load.
4. The scanner tries to next to row-1001. It gets the bulk load data for cf1 
since there is no seqId preventing it.  It does not get the bulk load data for 
cf2 since the scanner's readpoint (10) is less than the bulk load seqId (11).

Now we row level consistency is broken in this case.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


  1   2   >