[jira] [Created] (HBASE-13394) Failed to recreate a table when quota is enabled

2015-04-03 Thread Y. SREENIVASULU REDDY (JIRA)
Y. SREENIVASULU REDDY created HBASE-13394:
-

 Summary: Failed to recreate a table when quota is enabled
 Key: HBASE-13394
 URL: https://issues.apache.org/jira/browse/HBASE-13394
 Project: HBase
  Issue Type: Bug
  Components: security
Affects Versions: 2.0.0
Reporter: Y. SREENIVASULU REDDY
Assignee: Ashish Singhi
 Fix For: 2.0.0


Steps to reproduce.
Enable quota by setting {{hbase.quota.enabled}} to true
Create a table say with name 't1', make sure the creation fails after adding  
this table entry into namespace quota cache.
Now correct the failure and recreate the table 't1'. It fails with below 
exception.

{noformat}
2015-04-02 14:23:53,729 | ERROR | FifoRpcScheduler.handler1-thread-23 | 
Unexpected throwable object  | 
org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2154)
java.lang.IllegalStateException: Table already in the cache t1
at 
org.apache.hadoop.hbase.namespace.NamespaceTableAndRegionInfo.addTable(NamespaceTableAndRegionInfo.java:97)
at 
org.apache.hadoop.hbase.namespace.NamespaceStateManager.addTable(NamespaceStateManager.java:171)
at 
org.apache.hadoop.hbase.namespace.NamespaceStateManager.checkAndUpdateNamespaceTableCount(NamespaceStateManager.java:147)
at 
org.apache.hadoop.hbase.namespace.NamespaceAuditor.checkQuotaToCreateTable(NamespaceAuditor.java:76)
at 
org.apache.hadoop.hbase.quotas.MasterQuotaManager.checkNamespaceTableAndRegionQuota(MasterQuotaManager.java:344)
at org.apache.hadoop.hbase.master.HMaster.createTable(HMaster.java:1781)
at org.apache.hadoop.hbase.master.HMaster.createTable(HMaster.java:1818)
at 
org.apache.hadoop.hbase.protobuf.generated.MasterProtos$MasterService$2.callBlockingMethod(MasterProtos.java:42273)
at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2116)
at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:108)
at 
org.apache.hadoop.hbase.ipc.FifoRpcScheduler$1.run(FifoRpcScheduler.java:74)
at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
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)
at java.lang.Thread.run(Thread.java:745)
{noformat}

P.S: Line numbers may not be in sync.



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


Re: Please welcome new HBase committer Jing Chen (Jerry) He

2015-04-03 Thread Srikanth Srungarapu
Kudos, Jerry!

On Thu, Apr 2, 2015 at 10:49 PM, Mikhail Antonov olorinb...@gmail.com
wrote:

 Congrats Jerry!

 -Mikhail

 On Thu, Apr 2, 2015 at 9:21 PM, Pankaj kr pankaj...@huawei.com wrote:
  Congrats Jerry..!! :)
 
  -Original Message-
  From: Andrew Purtell [mailto:apurt...@apache.org]
  Sent: 02 April 2015 01:53
  To: dev@hbase.apache.org; u...@hbase.apache.org
  Subject: Please welcome new HBase committer Jing Chen (Jerry) He
 
  On behalf of the Apache HBase PMC, I am pleased to announce that Jerry
 He has accepted the PMC's invitation to become a committer on the project.
 We appreciate all of Jerry's hard work and generous contributions thus far,
 and look forward to his continued involvement.
 
  Congratulations and welcome, Jerry!
 
  --
 
 
  Best regards,
 
 - Andy
 
  Problems worthy of attack prove their worth by hitting back. - Piet Hein
 (via Tom White)



 --
 Thanks,
 Michael Antonov



[jira] [Created] (HBASE-13395) Remove HTableInterface

2015-04-03 Thread Mikhail Antonov (JIRA)
Mikhail Antonov created HBASE-13395:
---

 Summary: Remove HTableInterface
 Key: HBASE-13395
 URL: https://issues.apache.org/jira/browse/HBASE-13395
 Project: HBase
  Issue Type: Sub-task
  Components: API
Affects Versions: 2.0.0
Reporter: Mikhail Antonov
 Fix For: 2.0.0


This class is marked as deprecated, probably can remove it, and if any methods 
from this specific class are in active use, need to decide what to do on 
callers' side. Should be able to replace with just Table interface usage.



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


[jira] [Created] (HBASE-13396) Cleanup unclosed writers in later writer rolling

2015-04-03 Thread Liu Shaohui (JIRA)
Liu Shaohui created HBASE-13396:
---

 Summary: Cleanup unclosed writers in later writer rolling
 Key: HBASE-13396
 URL: https://issues.apache.org/jira/browse/HBASE-13396
 Project: HBase
  Issue Type: Bug
Reporter: Liu Shaohui
Assignee: Liu Shaohui
Priority: Minor


Currently, the default value of hbase.regionserver.logroll.errors.tolerated is 
2, which means regionserver can tolerate two continuous failures of closing 
writers at most. Temporary problems of network or namenode may cause those 
failures. After those failures, the hdfs clients in RS may continue to renew 
the lease of the hlog of the writer and the namenode will not help to recover 
the lease of this hlog. So the last block of this hlog will be RBW(replica 
being written) state until the regionserver is down. Blocks in this state will 
block the datanode decommission and other operations in HDFS.

So I think we need a mechanism to clean up those unclosed writers afterwards. A 
simple solution is to record those unclosed writers and attempt to close these 
writers until success.

Discussions and suggestions are welcomed~ Thanks



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


[jira] [Created] (HBASE-13401) Snapshot export to S3 fails with jets3t error - The Content-MD5 you specified did not match what we received.

2015-04-03 Thread Joseph Reid (JIRA)
Joseph Reid created HBASE-13401:
---

 Summary: Snapshot export to S3 fails with jets3t error - The 
Content-MD5 you specified did not match what we received.
 Key: HBASE-13401
 URL: https://issues.apache.org/jira/browse/HBASE-13401
 Project: HBase
  Issue Type: Bug
  Components: hbase
Affects Versions: 0.98.0
Reporter: Joseph Reid


We're running into issues exporting snapshots of large tables to Amazon S3.

The snapshot completes successfully, but the snapshot export job runs into 
errors with jets3t when we attempt to export to S3.  

Error snippet, from job log:
{code}
2015-04-03 16:59:16,425 INFO  [main] mapreduce.Job: Task Id : 
attempt_1426532296228_55454_m_08_1, Status : FAILED
Error: org.apache.hadoop.fs.s3.S3Exception: 
org.jets3t.service.S3ServiceException: S3 Error Message. -- ResponseCode: 400, 
ResponseStatus: Bad Request, XML Error Message: ?xml version=1.0 
encoding=UTF-8?ErrorCodeBadDigest/CodeMessageThe Content-MD5 you 
specified did not match what we 
received./MessageExpectedDigestCWiSsgzVAJyzPy2oT8u4Ag==/ExpectedDigestCalculatedDigest2DIsv6jZJ8FuGtalOO8SPA==/CalculatedDigestRequestIdCA325C738970C313/RequestIdHostIdtnE+O1zPZovaQWMhCuM4lkX0h/wN9173FQ7omxZzLb6eH0OCHASyan+mb8WBJkNn/HostId/Error
  at 
org.apache.hadoop.fs.s3native.Jets3tNativeFileSystemStore.handleS3ServiceException(Jets3tNativeFileSystemStore.java:405)
  at 
org.apache.hadoop.fs.s3native.Jets3tNativeFileSystemStore.storeFile(Jets3tNativeFileSystemStore.java:115)
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
  at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  at java.lang.reflect.Method.invoke(Method.java:606)
  at 
org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:190)
  at 
org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:103)
  at org.apache.hadoop.fs.s3native.$Proxy19.storeFile(Unknown Source)
  at 
org.apache.hadoop.fs.s3native.NativeS3FileSystem$NativeS3FsOutputStream.close(NativeS3FileSystem.java:221)
  at 
org.apache.hadoop.fs.FSDataOutputStream$PositionCache.close(FSDataOutputStream.java:70)
  at org.apache.hadoop.fs.FSDataOutputStream.close(FSDataOutputStream.java:103)
  at 
org.apache.hadoop.hbase.snapshot.ExportSnapshot$ExportMapper.copyFile(ExportSnapshot.java:200)
  at 
org.apache.hadoop.hbase.snapshot.ExportSnapshot$ExportMapper.map(ExportSnapshot.java:140)
  at 
org.apache.hadoop.hbase.snapshot.ExportSnapshot$ExportMapper.map(ExportSnapshot.java:89)
  at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:145)
  at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:764)
  at org.apache.hadoop.mapred.MapTask.run(MapTask.java:340)
  at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:167)
  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:1557)
  at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:162)
Caused by: org.jets3t.service.S3ServiceException: S3 Error Message. -- 
ResponseCode: 400, ResponseStatus: Bad Request, XML Error Message: ?xml 
version=1.0 encoding=UTF-8?ErrorCodeBadDigest/CodeMessageThe 
Content-MD5 you specified did not match what we 
received./MessageExpectedDigestCWiSsgzVAJyzPy2oT8u4Ag==/ExpectedDigestCalculatedDigest2DIsv6jZJ8FuGtalOO8SPA==/CalculatedDigestRequestIdCA325C738970C313/RequestIdHostIdtnE+O1zPZovaQWMhCuM4lkX0h/wN9173FQ7omxZzLb6eH0OCHASyan+mb8WBJkNn/HostId/Error
  at org.jets3t.service.S3Service.putObject(S3Service.java:2267)
  at 
org.apache.hadoop.fs.s3native.Jets3tNativeFileSystemStore.storeFile(Jets3tNativeFileSystemStore.java:113)
  ... 21 more

2015-04-03 17:03:50,613 INFO  [main] mapreduce.Job: Task Id : 
attempt_1426532296228_55454_m_10_1, Status : FAILED
AttemptID:attempt_1426532296228_55454_m_10_1 Timed out after 300 secs
{\code}

We've verified that exports to other clusters from these same snapshots work 
fine.  Thus the issue appears to lie within the snapshot export utility, 
jets3t, and S3.

The Content-MD5 you specified did not match what we received seems to 
indicate that the snapshot changed between when the upload started and the 
error.   Can that be?  

Related to:
[Discussion on jets3t user 
group,.|https://groups.google.com/forum/#!topic/jets3t-users/Bg2qh7OdE2U]



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


Re: Disable HBase System tables

2015-04-03 Thread Jerry He
The acl table and label tables are currently guarded in the
AccessController or VisibilityController. As Srikanth mentioned, it is
related to HBASE-13336.
Should we avoid duplicate checking and make the logic/responsibility clear?
The problem probably also exist for the delete/alter/modify table
operations.

Jerry

On Fri, Apr 3, 2015 at 11:09 AM, Stephen Jiang syuanjiang...@gmail.com
wrote:

 yes, my proposed change is that do the 'tableName.isSystemTable ()' check,
 instead of 'tableName.equals(TableName.META_TABLE_NAME)' - this check would
 include all tables inside the hbase namespace.

 Thanks
 Stephen

 By the way, we should rename the 'hbase' namespace to 'system' namespace to
 make it clearer :-).  Now is too late :-(.


 On Thu, Apr 2, 2015 at 5:33 PM, Sean Busbey bus...@cloudera.com wrote:

  +1 disabling the visibility label table is going to be a bad time.
 
  Maybe just disallow for the whole hbase namespace?
 
  --
  Sean
  On Apr 2, 2015 5:54 PM, Stephen Jiang syuanjiang...@gmail.com wrote:
 
   In disable table, we specifically check whether it is a META table; if
 a
   table is a META table, we disallow the table disable.  However, I think
   other system tables should have the same treatment (is it possible
 that a
   namespace table is disable and the system is still functional without
   issue?).
  
   if(tableName.equals(TableName.META_TABLE_NAME)) {
  
 throw new ConstraintException(Cannot disable catalog table);
  
   }
   I want to extend the disable-not-allowed treatment to all system
 tables,
   please let me know if you disagree.
  
   Thanks
   Stephen
  
 



[jira] [Created] (HBASE-13398) Document HBase Quota

2015-04-03 Thread Ashish Singhi (JIRA)
Ashish Singhi created HBASE-13398:
-

 Summary: Document HBase Quota
 Key: HBASE-13398
 URL: https://issues.apache.org/jira/browse/HBASE-13398
 Project: HBase
  Issue Type: Bug
  Components: documentation
Reporter: Ashish Singhi


As part of this we should document HBASE-11598 and HBASE-8410



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


Re: Disable HBase System tables

2015-04-03 Thread Stephen Jiang
yes, my proposed change is that do the 'tableName.isSystemTable ()' check,
instead of 'tableName.equals(TableName.META_TABLE_NAME)' - this check would
include all tables inside the hbase namespace.

Thanks
Stephen

By the way, we should rename the 'hbase' namespace to 'system' namespace to
make it clearer :-).  Now is too late :-(.


On Thu, Apr 2, 2015 at 5:33 PM, Sean Busbey bus...@cloudera.com wrote:

 +1 disabling the visibility label table is going to be a bad time.

 Maybe just disallow for the whole hbase namespace?

 --
 Sean
 On Apr 2, 2015 5:54 PM, Stephen Jiang syuanjiang...@gmail.com wrote:

  In disable table, we specifically check whether it is a META table; if a
  table is a META table, we disallow the table disable.  However, I think
  other system tables should have the same treatment (is it possible that a
  namespace table is disable and the system is still functional without
  issue?).
 
  if(tableName.equals(TableName.META_TABLE_NAME)) {
 
throw new ConstraintException(Cannot disable catalog table);
 
  }
  I want to extend the disable-not-allowed treatment to all system tables,
  please let me know if you disagree.
 
  Thanks
  Stephen
 



[jira] [Resolved] (HBASE-13399) HBase Snapshot export to S3 fails with Content-MD5 errors.

2015-04-03 Thread Andrew Purtell (JIRA)

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

Andrew Purtell resolved HBASE-13399.

Resolution: Duplicate

 HBase Snapshot export to S3 fails with Content-MD5 errors.
 --

 Key: HBASE-13399
 URL: https://issues.apache.org/jira/browse/HBASE-13399
 Project: HBase
  Issue Type: Bug
  Components: Filesystem Integration, hadoop2
Affects Versions: 0.98.0
 Environment: CentOS 6.5, Hortonworks Data Platform 2.1.2, Hadoop 2.4.0
Reporter: Joseph Reid

 We're running into issues exporting snapshots of large tables to Amazon S3.
 The snapshot completes successfully, but the snapshot export job runs into 
 errors with jets3t when we attempt to export to S3.  
 Error snippet, from job log:
 {code}
 2015-04-03 16:59:16,425 INFO  [main] mapreduce.Job: Task Id : 
 attempt_1426532296228_55454_m_08_1, Status : FAILED
 Error: org.apache.hadoop.fs.s3.S3Exception: 
 org.jets3t.service.S3ServiceException: S3 Error Message. -- ResponseCode: 
 400, ResponseStatus: Bad Request, XML Error Message: ?xml version=1.0 
 encoding=UTF-8?ErrorCodeBadDigest/CodeMessageThe Content-MD5 you 
 specified did not match what we 
 received./MessageExpectedDigestCWiSsgzVAJyzPy2oT8u4Ag==/ExpectedDigestCalculatedDigest2DIsv6jZJ8FuGtalOO8SPA==/CalculatedDigestRequestIdCA325C738970C313/RequestIdHostIdtnE+O1zPZovaQWMhCuM4lkX0h/wN9173FQ7omxZzLb6eH0OCHASyan+mb8WBJkNn/HostId/Error
   at 
 org.apache.hadoop.fs.s3native.Jets3tNativeFileSystemStore.handleS3ServiceException(Jets3tNativeFileSystemStore.java:405)
   at 
 org.apache.hadoop.fs.s3native.Jets3tNativeFileSystemStore.storeFile(Jets3tNativeFileSystemStore.java:115)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at 
 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
   at 
 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
   at java.lang.reflect.Method.invoke(Method.java:606)
   at 
 org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:190)
   at 
 org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:103)
   at org.apache.hadoop.fs.s3native.$Proxy19.storeFile(Unknown Source)
   at 
 org.apache.hadoop.fs.s3native.NativeS3FileSystem$NativeS3FsOutputStream.close(NativeS3FileSystem.java:221)
   at 
 org.apache.hadoop.fs.FSDataOutputStream$PositionCache.close(FSDataOutputStream.java:70)
   at 
 org.apache.hadoop.fs.FSDataOutputStream.close(FSDataOutputStream.java:103)
   at 
 org.apache.hadoop.hbase.snapshot.ExportSnapshot$ExportMapper.copyFile(ExportSnapshot.java:200)
   at 
 org.apache.hadoop.hbase.snapshot.ExportSnapshot$ExportMapper.map(ExportSnapshot.java:140)
   at 
 org.apache.hadoop.hbase.snapshot.ExportSnapshot$ExportMapper.map(ExportSnapshot.java:89)
   at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:145)
   at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:764)
   at org.apache.hadoop.mapred.MapTask.run(MapTask.java:340)
   at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:167)
   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:1557)
   at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:162)
 Caused by: org.jets3t.service.S3ServiceException: S3 Error Message. -- 
 ResponseCode: 400, ResponseStatus: Bad Request, XML Error Message: ?xml 
 version=1.0 encoding=UTF-8?ErrorCodeBadDigest/CodeMessageThe 
 Content-MD5 you specified did not match what we 
 received./MessageExpectedDigestCWiSsgzVAJyzPy2oT8u4Ag==/ExpectedDigestCalculatedDigest2DIsv6jZJ8FuGtalOO8SPA==/CalculatedDigestRequestIdCA325C738970C313/RequestIdHostIdtnE+O1zPZovaQWMhCuM4lkX0h/wN9173FQ7omxZzLb6eH0OCHASyan+mb8WBJkNn/HostId/Error
   at org.jets3t.service.S3Service.putObject(S3Service.java:2267)
   at 
 org.apache.hadoop.fs.s3native.Jets3tNativeFileSystemStore.storeFile(Jets3tNativeFileSystemStore.java:113)
   ... 21 more
 2015-04-03 17:03:50,613 INFO  [main] mapreduce.Job: Task Id : 
 attempt_1426532296228_55454_m_10_1, Status : FAILED
 AttemptID:attempt_1426532296228_55454_m_10_1 Timed out after 300 secs
 {\code}
 We've verified that exports to other clusters from these same snapshots work 
 fine.  Thus the issue appears to lie within the snapshot export utility, 
 jets3t, and S3.
 The Content-MD5 you specified did not match what we received seems to 
 indicate that the snapshot changed between when the upload started and the 
 error.   Can that be?  
 Related to:
 [Discussion on jets3t user 
 

[jira] [Created] (HBASE-13399) HBase Snapshot export to S3 fails with Content-MD5 errors.

2015-04-03 Thread Joseph Reid (JIRA)
Joseph Reid created HBASE-13399:
---

 Summary: HBase Snapshot export to S3 fails with Content-MD5 errors.
 Key: HBASE-13399
 URL: https://issues.apache.org/jira/browse/HBASE-13399
 Project: HBase
  Issue Type: Bug
  Components: Filesystem Integration, hadoop2
Affects Versions: 0.98.0
 Environment: CentOS 6.5, Hortonworks Data Platform 2.1.2, Hadoop 2.4.0
Reporter: Joseph Reid


We're running into issues exporting snapshots of large tables to Amazon S3.

The snapshot completes successfully, but the snapshot export job runs into 
errors with jets3t when we attempt to export to S3.  

Error snippet, from job log:
{code}
2015-04-03 16:59:16,425 INFO  [main] mapreduce.Job: Task Id : 
attempt_1426532296228_55454_m_08_1, Status : FAILED
Error: org.apache.hadoop.fs.s3.S3Exception: 
org.jets3t.service.S3ServiceException: S3 Error Message. -- ResponseCode: 400, 
ResponseStatus: Bad Request, XML Error Message: ?xml version=1.0 
encoding=UTF-8?ErrorCodeBadDigest/CodeMessageThe Content-MD5 you 
specified did not match what we 
received./MessageExpectedDigestCWiSsgzVAJyzPy2oT8u4Ag==/ExpectedDigestCalculatedDigest2DIsv6jZJ8FuGtalOO8SPA==/CalculatedDigestRequestIdCA325C738970C313/RequestIdHostIdtnE+O1zPZovaQWMhCuM4lkX0h/wN9173FQ7omxZzLb6eH0OCHASyan+mb8WBJkNn/HostId/Error
at 
org.apache.hadoop.fs.s3native.Jets3tNativeFileSystemStore.handleS3ServiceException(Jets3tNativeFileSystemStore.java:405)
at 
org.apache.hadoop.fs.s3native.Jets3tNativeFileSystemStore.storeFile(Jets3tNativeFileSystemStore.java:115)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at 
org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:190)
at 
org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:103)
at org.apache.hadoop.fs.s3native.$Proxy19.storeFile(Unknown Source)
at 
org.apache.hadoop.fs.s3native.NativeS3FileSystem$NativeS3FsOutputStream.close(NativeS3FileSystem.java:221)
at 
org.apache.hadoop.fs.FSDataOutputStream$PositionCache.close(FSDataOutputStream.java:70)
at 
org.apache.hadoop.fs.FSDataOutputStream.close(FSDataOutputStream.java:103)
at 
org.apache.hadoop.hbase.snapshot.ExportSnapshot$ExportMapper.copyFile(ExportSnapshot.java:200)
at 
org.apache.hadoop.hbase.snapshot.ExportSnapshot$ExportMapper.map(ExportSnapshot.java:140)
at 
org.apache.hadoop.hbase.snapshot.ExportSnapshot$ExportMapper.map(ExportSnapshot.java:89)
at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:145)
at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:764)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:340)
at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:167)
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:1557)
at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:162)
Caused by: org.jets3t.service.S3ServiceException: S3 Error Message. -- 
ResponseCode: 400, ResponseStatus: Bad Request, XML Error Message: ?xml 
version=1.0 encoding=UTF-8?ErrorCodeBadDigest/CodeMessageThe 
Content-MD5 you specified did not match what we 
received./MessageExpectedDigestCWiSsgzVAJyzPy2oT8u4Ag==/ExpectedDigestCalculatedDigest2DIsv6jZJ8FuGtalOO8SPA==/CalculatedDigestRequestIdCA325C738970C313/RequestIdHostIdtnE+O1zPZovaQWMhCuM4lkX0h/wN9173FQ7omxZzLb6eH0OCHASyan+mb8WBJkNn/HostId/Error
at org.jets3t.service.S3Service.putObject(S3Service.java:2267)
at 
org.apache.hadoop.fs.s3native.Jets3tNativeFileSystemStore.storeFile(Jets3tNativeFileSystemStore.java:113)
... 21 more

2015-04-03 17:03:50,613 INFO  [main] mapreduce.Job: Task Id : 
attempt_1426532296228_55454_m_10_1, Status : FAILED
AttemptID:attempt_1426532296228_55454_m_10_1 Timed out after 300 secs
{\code}

We've verified that exports to other clusters from these same snapshots work 
fine.  Thus the issue appears to lie within the snapshot export utility, 
jets3t, and S3.

The Content-MD5 you specified did not match what we received seems to 
indicate that the snapshot changed between when the upload started and the 
error.   Can that be?  

Related to:
[Discussion on jets3t user 
group,.|https://groups.google.com/forum/#!topic/jets3t-users/Bg2qh7OdE2U]



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


[jira] [Created] (HBASE-13400) HBase Snapshot export to S3 fails with Content-MD5 errors.

2015-04-03 Thread Joseph Reid (JIRA)
Joseph Reid created HBASE-13400:
---

 Summary: HBase Snapshot export to S3 fails with Content-MD5 errors.
 Key: HBASE-13400
 URL: https://issues.apache.org/jira/browse/HBASE-13400
 Project: HBase
  Issue Type: Bug
  Components: Filesystem Integration, hadoop2
Affects Versions: 0.98.0
 Environment: CentOS 6.5, Hortonworks Data Platform 2.1.2, Hadoop 2.4.0
Reporter: Joseph Reid


We're running into issues exporting snapshots of large tables to Amazon S3.

The snapshot completes successfully, but the snapshot export job runs into 
errors with jets3t when we attempt to export to S3.  

Error snippet, from job log:
{code}
2015-04-03 16:59:16,425 INFO  [main] mapreduce.Job: Task Id : 
attempt_1426532296228_55454_m_08_1, Status : FAILED
Error: org.apache.hadoop.fs.s3.S3Exception: 
org.jets3t.service.S3ServiceException: S3 Error Message. -- ResponseCode: 400, 
ResponseStatus: Bad Request, XML Error Message: ?xml version=1.0 
encoding=UTF-8?ErrorCodeBadDigest/CodeMessageThe Content-MD5 you 
specified did not match what we 
received./MessageExpectedDigestCWiSsgzVAJyzPy2oT8u4Ag==/ExpectedDigestCalculatedDigest2DIsv6jZJ8FuGtalOO8SPA==/CalculatedDigestRequestIdCA325C738970C313/RequestIdHostIdtnE+O1zPZovaQWMhCuM4lkX0h/wN9173FQ7omxZzLb6eH0OCHASyan+mb8WBJkNn/HostId/Error
at 
org.apache.hadoop.fs.s3native.Jets3tNativeFileSystemStore.handleS3ServiceException(Jets3tNativeFileSystemStore.java:405)
at 
org.apache.hadoop.fs.s3native.Jets3tNativeFileSystemStore.storeFile(Jets3tNativeFileSystemStore.java:115)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at 
org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:190)
at 
org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:103)
at org.apache.hadoop.fs.s3native.$Proxy19.storeFile(Unknown Source)
at 
org.apache.hadoop.fs.s3native.NativeS3FileSystem$NativeS3FsOutputStream.close(NativeS3FileSystem.java:221)
at 
org.apache.hadoop.fs.FSDataOutputStream$PositionCache.close(FSDataOutputStream.java:70)
at 
org.apache.hadoop.fs.FSDataOutputStream.close(FSDataOutputStream.java:103)
at 
org.apache.hadoop.hbase.snapshot.ExportSnapshot$ExportMapper.copyFile(ExportSnapshot.java:200)
at 
org.apache.hadoop.hbase.snapshot.ExportSnapshot$ExportMapper.map(ExportSnapshot.java:140)
at 
org.apache.hadoop.hbase.snapshot.ExportSnapshot$ExportMapper.map(ExportSnapshot.java:89)
at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:145)
at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:764)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:340)
at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:167)
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:1557)
at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:162)
Caused by: org.jets3t.service.S3ServiceException: S3 Error Message. -- 
ResponseCode: 400, ResponseStatus: Bad Request, XML Error Message: ?xml 
version=1.0 encoding=UTF-8?ErrorCodeBadDigest/CodeMessageThe 
Content-MD5 you specified did not match what we 
received./MessageExpectedDigestCWiSsgzVAJyzPy2oT8u4Ag==/ExpectedDigestCalculatedDigest2DIsv6jZJ8FuGtalOO8SPA==/CalculatedDigestRequestIdCA325C738970C313/RequestIdHostIdtnE+O1zPZovaQWMhCuM4lkX0h/wN9173FQ7omxZzLb6eH0OCHASyan+mb8WBJkNn/HostId/Error
at org.jets3t.service.S3Service.putObject(S3Service.java:2267)
at 
org.apache.hadoop.fs.s3native.Jets3tNativeFileSystemStore.storeFile(Jets3tNativeFileSystemStore.java:113)
... 21 more

2015-04-03 17:03:50,613 INFO  [main] mapreduce.Job: Task Id : 
attempt_1426532296228_55454_m_10_1, Status : FAILED
AttemptID:attempt_1426532296228_55454_m_10_1 Timed out after 300 secs
{\code}

We've verified that exports to other clusters from these same snapshots work 
fine.  Thus the issue appears to lie within the snapshot export utility, 
jets3t, and S3.

The Content-MD5 you specified did not match what we received seems to 
indicate that the snapshot changed between when the upload started and the 
error.   Can that be?  

Related to:
[Discussion on jets3t user 
group,.|https://groups.google.com/forum/#!topic/jets3t-users/Bg2qh7OdE2U]



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


Re: Removal of deprecated features

2015-04-03 Thread Lars George
I am +1 , especially on tagging/marking the deprecations proper with a
version when it will be removed. Right now we have deprecated functions
(for good reason) that are still lingering around. We have JIRAs
deprecating features, but no follow up process to really remove them. There
are no scheduled JIRAs to track those. Having them marked with a drop
version will make it easy to do a clean sweep JIRA before a major release.

As for keeping cruft for the sake of slow changing user setups, I would
also go with the doubling up of keeping them, as in deprecated in two major
releases before removal. That should give plenty of time.

No?

Lars

On Tue, Mar 31, 2015 at 8:36 AM, Lars Francke lars.fran...@gmail.com
wrote:

 Sean, thanks for your comments.

 On Tue, Mar 31, 2015 at 2:09 AM, Sean Busbey bus...@cloudera.com wrote:

  I thought deprecated for a major version meant that to be removed in
 e.g.
  HBase 2.0.0 we had to have deprecated the API by HBase 1.0.0, that is to
  say I thought we claimed a stronger stance than semver required
 specificly
  for API compat. I can see the ambiguity though.
 

 Ah...I see...well that could be too. I happily defer to native speakers in
 interpreting that sentence. Or obviously to the original discussion/intent.
 If what you say is the original intent that's fine too. Maybe we could then
 clarify the example and only remove things in 2.0.0 that were already
 deprecated pre-1.0.0.


 
  Are we removing deprecated things just for code cleanup, of because
 keeping
  them around is limiting some other set of changes we want to make?
 

 I want to remove them for even more selfish reasons: Limit confusion on my
 end (hoping that there's more people like me out there). I only get to play
 with HBase every so often so have to relearn bits and pieces every time.
 And it's confusing to tell why certain things are deprecated but still in
 use etc. Currently I'm working with a client on HBase and reviewing the
 second edition of LarsG's book and we've stumbled across quite a few things
 that cause confusion in both projects because the intent is not clear or
 because long deprecated features still linger around.

 There's also things like this 
 https://issues.apache.org/jira/browse/HBASE-13274 which get flushed out.

 So I'd say we should remove deprecated things mostly for the end user and
 for (new) contributors to the project.


 This ties back into discussions of how long we keep doing minor releases
  once a newer major release happens. If we expect major releases to have a
  good deal of overlap, then I'm less concerned about breaking old clients.
  But if we expect people to go through a major release upgrade e.g. every
 2
  years in order to keep seeing updates, then I'd rather err on the side of
  cruft if it makes downstream maintenance easier


 I see what you mean and maybe keeping deprecated things around an extra
 version is good for that. Keeping deprecated things for an unspecified time
 is more a disservice than removing them at clearly documented points in
 time in my opinion.

 My new proposal would thus be:

 * In the master branch (which will be released as 2.0.0 if I'm not
 mistaken) remove (or undeprecate if it turns out the functionality is
 actually still needed) all functionality that was marked deprecated prior
 to 1.0.0
 * Clarify that all deprecations that were added in 1.x will be removed in
 3.0.0
 * Clarify that all deprecations that were added in 2.x will be removed in
 4.0.0
 * Clarify the SemVer documentation with a different example
 * All new deprecations could mention a version when they are going to be
 removed, according to SemVer this should be the next major version (e.g.
 This feature is scheduled to be removed in HBase 3.0.0[2])



 
 --
  Sean
  On Mar 30, 2015 6:53 PM, Lars Francke lars.fran...@gmail.com wrote:
 
   I know this was discussed briefly last year[1] but I'd like to bring it
  up
   again.
  
   I'd like to remove a bunch of deprecated features. Now with Semantic
   Versioning this should be a bit simpler.
  
   I propose the following:
  
   * In the master branch (which will be released as 2.0.0 if I'm not
   mistaken) remove (or undeprecate if it turns out the functionality is
   actually still needed) all functionality that was marked deprecated
 prior
   to 1.0.0 or in any 1.x release
   * All new deprecations could mention a version when they are going to
 be
   removed, according to SemVer this should be the next major version
 (e.g.
   This feature is scheduled to be removed in HBase 3.0.0[2])
  
   Do you think that's reasonable? If so I'm happy to file JIRAs and go
   through the code to get started.
  
   I think this is also in line with what our docs state: An API needs to
   deprecated for a major version before we will change/remove it.
 Example:
  A
   user using a newly deprecated api does not need to modify application
  code
   with hbase api calls until the next major version.
  
   Cheers,
   Lars
  
 

[jira] [Created] (HBASE-13404) Add/Refactor vint and vlong related functions in Bytes

2015-04-03 Thread Apekshit Sharma (JIRA)
Apekshit Sharma created HBASE-13404:
---

 Summary: Add/Refactor vint and vlong related functions in Bytes
 Key: HBASE-13404
 URL: https://issues.apache.org/jira/browse/HBASE-13404
 Project: HBase
  Issue Type: Improvement
Reporter: Apekshit Sharma
Priority: Minor


Bytes has these 4 functions for a lot of data types, might make sense to add 
missing ones/fix existing ones related to vint and vlong.
1) read X from byte[]
2) read X from offset in byte[]
3) put X in byte[] at a given offset
4) return byte[] for X

Also add tests for these new/changed functions.



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


[jira] [Created] (HBASE-13403) Make waitOnSafeMode configurable in MasterFileSystem

2015-04-03 Thread Esteban Gutierrez (JIRA)
Esteban Gutierrez created HBASE-13403:
-

 Summary: Make waitOnSafeMode configurable in MasterFileSystem
 Key: HBASE-13403
 URL: https://issues.apache.org/jira/browse/HBASE-13403
 Project: HBase
  Issue Type: Bug
  Components: master
Reporter: Esteban Gutierrez
Assignee: Esteban Gutierrez
Priority: Minor


We currently wait whatever is the configured value of 
hbase.server.thread.wakefrequency or the default 10 seconds. We should have a 
configuration to control how long we wait until the HDFS is no longer in safe 
mode, since using the existing hbase.server.thread.wakefrequency property to 
tune that can have adverse side effects. My proposal is to add a new property 
called hbase.master.waitonsafemode and start with the current default.



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


[jira] [Created] (HBASE-13405) TestHBaseFsck is flaky

2015-04-03 Thread Mikhail Antonov (JIRA)
Mikhail Antonov created HBASE-13405:
---

 Summary: TestHBaseFsck is flaky
 Key: HBASE-13405
 URL: https://issues.apache.org/jira/browse/HBASE-13405
 Project: HBase
  Issue Type: Bug
  Components: test
Affects Versions: 2.0.0
Reporter: Mikhail Antonov


Once in a while I'm seeing the following, running #testContainedRegionOverlap 
test in IDE after clean install (mac osx, hbase master):

{code}
regionserver.HRegionServer(1863): Post open deploy tasks for 
tableContainedRegionOverlap,A,1428099123733.03a139b02119e99ef08149addd9a7996.
2015-04-03 15:12:11,695 INFO  
[PostOpenDeployTasks:03a139b02119e99ef08149addd9a7996] 
regionserver.HRegionServer(1956): Failed to report region transition, will retry
java.io.InterruptedIOException: Origin: InterruptedException
at 
org.apache.hadoop.hbase.util.ExceptionUtil.asInterrupt(ExceptionUtil.java:65)
at 
org.apache.hadoop.hbase.protobuf.ProtobufUtil.getRemoteException(ProtobufUtil.java:313)
at 
org.apache.hadoop.hbase.regionserver.HRegionServer.reportRegionStateTransition(HRegionServer.java:1955)
at 
org.apache.hadoop.hbase.regionserver.HRegionServer.postOpenDeployTasks(HRegionServer.java:1882)
at 
org.apache.hadoop.hbase.regionserver.handler.OpenRegionHandler$PostOpenDeployTasksThread.run(OpenRegionHandler.java:241)
Caused by: java.lang.InterruptedException: callId: 158 methodName: 
ReportRegionStateTransition param {TODO: class 
org.apache.hadoop.hbase.protobuf.generated.RegionServerStatusProtos$ReportRegionStateTransitionRequest}
at 
io.netty.util.concurrent.DefaultPromise.await0(DefaultPromise.java:333)
at 
io.netty.util.concurrent.DefaultPromise.await(DefaultPromise.java:266)
at io.netty.util.concurrent.AbstractFuture.get(AbstractFuture.java:42)
at 
org.apache.hadoop.hbase.ipc.AsyncRpcClient.call(AsyncRpcClient.java:226)
at 
org.apache.hadoop.hbase.ipc.AbstractRpcClient.callBlockingMethod(AbstractRpcClient.java:213)
at 
org.apache.hadoop.hbase.ipc.AbstractRpcClient$BlockingRpcChannelImplementation.callBlockingMethod(AbstractRpcClient.java:287)
at 
org.apache.hadoop.hbase.protobuf.generated.RegionServerStatusProtos$RegionServerStatusService$BlockingStub.reportRegionStateTransition(RegionServerStatusProtos.java:9030)
at 
org.apache.hadoop.hbase.regionserver.HRegionServer.reportRegionStateTransition(HRegionServer.java:1946)
... 2 more
2015-04-03 15:12:11,696 INFO  [B.defaultRpcServer.handler=1,queue=0,port=51217] 
master.MasterRpcServices(237): Client=mantonov//10.1.4.219 set 
balanceSwitch=false
2015-04-03 15:12:11,696 DEBUG [main-EventThread] 
zookeeper.ZooKeeperWatcher(388): maste
{code}

and then: 
{code}
015-04-03 15:12:11,796 INFO  [Thread-3019] client.HBaseAdmin$10(981): Started 
disable of tableContainedRegionOverlap
2015-04-03 15:12:21,641 INFO  [B.defaultRpcServer.handler=1,queue=0,port=51217] 
master.HMaster(1645): Client=mantonov//10.1.4.219 disable 
tableContainedRegionOverlap

java.lang.AssertionError: 
Expected :[]
Actual   :[NOT_DEPLOYED, HOLE_IN_REGION_CHAIN]
 Click to see difference
at org.junit.Assert.fail(Assert.java:88)
at org.junit.Assert.failNotEquals(Assert.java:743)
at org.junit.Assert.assertEquals(Assert.java:118)
at org.junit.Assert.assertEquals(Assert.java:144)
at 
org.apache.hadoop.hbase.util.hbck.HbckTestingUtil.assertNoErrors(HbckTestingUtil.java:92)
at 
org.apache.hadoop.hbase.util.TestHBaseFsck.testContainedRegionOverlap(TestHBaseFsck.java:941)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at 
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
at 
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at 
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
at 
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at 
org.junit.internal.runners.statements.FailOnTimeout$StatementThread.run(FailOnTimeout.java:74)
{code}



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


[jira] [Created] (HBASE-13402) [Backport 1.1] HBASE-12552: listSnapshots should list only owned snapshots for non-super user

2015-04-03 Thread Ashish Singhi (JIRA)
Ashish Singhi created HBASE-13402:
-

 Summary: [Backport 1.1] HBASE-12552: listSnapshots should list 
only owned snapshots for non-super user
 Key: HBASE-13402
 URL: https://issues.apache.org/jira/browse/HBASE-13402
 Project: HBase
  Issue Type: Bug
  Components: snapshots
Affects Versions: 1.1.0
Reporter: Ashish Singhi
Assignee: Ashish Singhi
 Fix For: 1.1.0


After HBASE-11869 pushed in branch-1. It's time to push HBASE-12552 also.



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


[jira] [Created] (HBASE-13407) Add a configurable jitter to MemStoreFlusher#FlushHandler in order to smooth write latency

2015-04-03 Thread Esteban Gutierrez (JIRA)
Esteban Gutierrez created HBASE-13407:
-

 Summary: Add a configurable jitter to MemStoreFlusher#FlushHandler 
in order to smooth write latency
 Key: HBASE-13407
 URL: https://issues.apache.org/jira/browse/HBASE-13407
 Project: HBase
  Issue Type: Improvement
Reporter: Esteban Gutierrez


There is a very interesting behavior that I can reproduce consistently with 
many workloads from HBase 0.98 to HBase 1.0 since hbase.hstore.flusher.count 
was set by default to 2: when writes are evenly distributed across regions, 
memstores grow and flush about the same rate causing spikes in IO and CPU. The 
side effect of those spikes is loss in throughput which in some cases can above 
10% impacting write metrics. When the flushes get a out of sync the spikes 
lower and and throughput is very stable. Reverting hbase.hstore.flusher.count 
to 1 doesn't help too much with write heavy workloads since we end with a large 
flush queue that eventually can block writers.

Adding a small configurable jitter hbase.server.thread.wakefrequency.jitter.pct 
(a percentage of the hbase.server.thread.wakefrequency frequency) can help to 
stagger the writes from FlushHandler to HDFS and smooth the write latencies 
when the memstores are flushed in multiple threads. 





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


[jira] [Reopened] (HBASE-13373) Squash HFileReaderV3 together with HFileReaderV2 and AbstractHFileReader; ditto for Scanners and BlockReader, etc.

2015-04-03 Thread stack (JIRA)

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

stack reopened HBASE-13373:
---

Reverted from branch-1. The migration tests are failing.  Will look into why 
later.

 Squash HFileReaderV3 together with HFileReaderV2 and AbstractHFileReader; 
 ditto for Scanners and BlockReader, etc.
 --

 Key: HBASE-13373
 URL: https://issues.apache.org/jira/browse/HBASE-13373
 Project: HBase
  Issue Type: Task
Reporter: stack
Assignee: stack
 Fix For: 2.0.0, 1.1.0

 Attachments: 
 0001-HBASE-13373-Squash-HFileReaderV3-together-with-HFile.patch, 13373.txt, 
 13373.v3.txt, 13373.v3.txt, 13373.v5.txt, 13373.v6.txt, 13373.v6.txt, 
 13373.v6.txt, 13373.v6.txt, 13373.v6.txt, 13373.wip.txt


 Profiling I actually ran into case where complaint that could not inline 
 because:
 MaxInlineLevel maximum number of nested calls that are inlined 9 intx
 i.e. method was more than 9 levels deep.
 The HFileReaderV? with Abstracts is not needed anymore now we are into the 
 clear with V3 enabled since hbase 1.0.0; we can have just an Interface and an 
 implementation.  If we need to support a new hfile type, can hopefully do it 
 in a backward compatible way now we have Cell Interface, etc.
 Squashing all this stuff together actually makes it easier figuring what is 
 going on when reading code. I can also get rid of a bunch of duplication too.
 Attached is a WIP. Doesn't fully compile yet but you get the idea.
 I'll keep on unless objection. Will try it against data written with old 
 classes as soon as I have something working. I don't believe we write 
 classnames into our data.



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