[jira] [Updated] (HBASE-13062) Add documentation coverage for configuring dns server with thrift and rest gateways
[ https://issues.apache.org/jira/browse/HBASE-13062?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Misty Stanley-Jones updated HBASE-13062: Attachment: HBASE-13062-v1.patch How is this? Add documentation coverage for configuring dns server with thrift and rest gateways --- Key: HBASE-13062 URL: https://issues.apache.org/jira/browse/HBASE-13062 Project: HBase Issue Type: Bug Components: documentation Reporter: Srikanth Srungarapu Assignee: Misty Stanley-Jones Priority: Minor Attachments: HBASE-13062-v1.patch, HBASE-13062.patch Currently, the documentation doesn't cover about configuring DNS with thrift or rest gateways, though code base does provide provision for doing so. The following parameters are being used for accomplishing the same. For REST: * hbase.rest.dns.interface * hbase.rest.dns.nameserver For Thrift: * hbase.thrift.dns.interface * hbase.thrift.dns.nameserver -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-14202) Reduce garbage we create
[ https://issues.apache.org/jira/browse/HBASE-14202?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14681223#comment-14681223 ] Anoop Sam John commented on HBASE-14202: Thanks Stack. Will commit later tonight once QA passes. bq.The Object/int pair is ugly Agree.. Bit odd it is.. But it helps us a lot wrt garbage we create. :-) This kind of more fine tuning sub tasks will come in under this Jira. We are doing more profiling stuff wrt CPU time and object/memory usage. Reduce garbage we create Key: HBASE-14202 URL: https://issues.apache.org/jira/browse/HBASE-14202 Project: HBase Issue Type: Sub-task Components: regionserver, Scanners Affects Versions: 2.0.0 Reporter: Anoop Sam John Assignee: Anoop Sam John Fix For: 2.0.0 Attachments: HBASE-14202.patch 2 optimizations wrt no# short living objects we create 1. IOEngine#read call to read from L2 cache is always creating a Pair object to return the BB and MemoryType. We can avoid this by making the read API to return a Cacheable. Pass the CacheableDeserializer, to be used, also to the read API. Setter for MemoryType is already there in Cacheable interface. 2. ByteBuff#asSubByteBuffer(int, int, Pair) avoids Pair object creation every time as we pass the shared Pair object. Still as pair can take only Objects, the primitive int has to be boxed into an Integer object every time. This can be avoided by creating a new Pair type which is a pair of an Object and a primitive int. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (HBASE-13907) Document how to deploy a coprocessor
[ https://issues.apache.org/jira/browse/HBASE-13907?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Misty Stanley-Jones updated HBASE-13907: Attachment: HBASE-13907-v3.patch This addresses Andrew's point. Sean's point #3 is still an open issue. Can anyone define the behavior? Document how to deploy a coprocessor Key: HBASE-13907 URL: https://issues.apache.org/jira/browse/HBASE-13907 Project: HBase Issue Type: Bug Components: documentation Reporter: Misty Stanley-Jones Assignee: Misty Stanley-Jones Attachments: HBASE-13907-1.patch, HBASE-13907-2.patch, HBASE-13907-v3.patch, HBASE-13907.patch Capture this information: Where are the dependencies located for these classes? Is there a path on HDFS or local disk that dependencies need to be placed so that each RegionServer has access to them? It is suggested to bundle them as a single jar so that RS can load the whole jar and resolve dependencies. If you are not able to do that, you need place the dependencies in regionservers class path so that they are loaded during RS startup. Do either of these options work for you? Btw, you can load the coprocessors/filters into path specified by hbase.dynamic.jars.dir [1], so that they are loaded dynamically by regionservers when the class is accessed (or you can place them in the RS class path too, so that they are loaded during RS JVM startup). How would one deploy these using an automated system? (puppet/chef/ansible/etc) You can probably use these tools to automate shipping the jars to above locations? Tests our developers have done suggest that simply disabling a coprocessor, replacing the jar with a different version, and enabling the coprocessor again does not load the newest version. With that in mind how does one know which version is currently deployed and enabled without resorting to parsing `hbase shell` output or restarting hbase? Actually this is a design issue with current classloader. You can't reload a class in a JVM unless you delete all the current references to it. Since the current JVM (classloader) has reference to it, you can't overwrite it unless you kill the JVM, which is equivalent to restarting it. So you still have the older class loaded in place. For this to work, classloader design should be changed. If it works for you, you can rename the coprocessor class name and the new version of jar and RS loads it properly. Where does logging go, and how does one access it? Does logging need to be configured in a certain way? Can you please specify which logging you are referring to? Where is a good location to place configuration files? Same as above, are these hbase configs or something else? If hbase configs, are these gateway configs/server side? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-14186) Read mvcc vlong optimization
[ https://issues.apache.org/jira/browse/HBASE-14186?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14681230#comment-14681230 ] Anoop Sam John commented on HBASE-14186: Yes Andy. Not direct patch substitute. Sorry I missed this backport stuff in the middle of some thing else. Bit busy with personal stuff this whole week too.. I will close this jira as of now and will open a backport one for 1.x. If any one up for a backport jira in 2 days time I can keep it open. Read mvcc vlong optimization Key: HBASE-14186 URL: https://issues.apache.org/jira/browse/HBASE-14186 Project: HBase Issue Type: Sub-task Components: Performance, Scanners Reporter: Anoop Sam John Assignee: Anoop Sam John Fix For: 2.0.0 Attachments: HBASE-14186.patch {code} for (int idx = 0; idx remaining; idx++) { byte b = blockBuffer.getByteAfterPosition(offsetFromPos + idx); i = i 8; i = i | (b 0xFF); } {code} Doing the read as in case of BIG_ENDIAN. After HBASE-12600, we tend to keep the mvcc and so byte by byte read looks eating up lot of CPU time. (In my test HFileReaderImpl#_readMvccVersion comes on top in terms of hot methods). We can optimize here by reading 4 or 2 bytes in one shot when the length of the vlong is more than 4 bytes. We will in turn use UnsafeAccess methods which handles ENDIAN. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-5878) Use getVisibleLength public api from HdfsDataInputStream from Hadoop-2.
[ https://issues.apache.org/jira/browse/HBASE-5878?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14681267#comment-14681267 ] Hudson commented on HBASE-5878: --- FAILURE: Integrated in HBase-0.98-on-Hadoop-1.1 #1026 (See [https://builds.apache.org/job/HBase-0.98-on-Hadoop-1.1/1026/]) HBASE-5878 Use getVisibleLength public api from HdfsDataInputStream from Hadoop-2. (apurtell: rev b69569f512068d795199310ce662ab381bb6b6b7) * hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/SequenceFileLogReader.java Revert HBASE-5878 Use getVisibleLength public api from HdfsDataInputStream from Hadoop-2. (apurtell: rev fabfb423f9cf48ddd52e9583ca6664f42349) * hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/SequenceFileLogReader.java Use getVisibleLength public api from HdfsDataInputStream from Hadoop-2. --- Key: HBASE-5878 URL: https://issues.apache.org/jira/browse/HBASE-5878 Project: HBase Issue Type: Bug Components: wal Reporter: Uma Maheswara Rao G Assignee: Ashish Singhi Fix For: 2.0.0, 0.98.14, 1.0.2, 1.2.0, 1.1.2, 1.3.0 Attachments: HBASE-5878-branch-1.0.patch, HBASE-5878-v2.patch, HBASE-5878-v3.patch, HBASE-5878-v4.patch, HBASE-5878-v5-0.98.patch, HBASE-5878-v5.patch, HBASE-5878-v5.patch, HBASE-5878-v6-0.98.patch, HBASE-5878-v6.patch, HBASE-5878-v7-0.98.patch, HBASE-5878.patch SequencFileLogReader: Currently Hbase using getFileLength api from DFSInputStream class by reflection. DFSInputStream is not exposed as public. So, this may change in future. Now HDFS exposed HdfsDataInputStream as public API. We can make use of it, when we are not able to find the getFileLength api from DFSInputStream as a else condition. So, that we will not have any sudden surprise like we are facing today. Also, it is just logging one warn message and proceeding if it throws any exception while getting the length. I think we can re-throw the exception because there is no point in continuing with dataloss. {code} long adjust = 0; try { Field fIn = FilterInputStream.class.getDeclaredField(in); fIn.setAccessible(true); Object realIn = fIn.get(this.in); // In hadoop 0.22, DFSInputStream is a standalone class. Before this, // it was an inner class of DFSClient. if (realIn.getClass().getName().endsWith(DFSInputStream)) { Method getFileLength = realIn.getClass(). getDeclaredMethod(getFileLength, new Class? []{}); getFileLength.setAccessible(true); long realLength = ((Long)getFileLength. invoke(realIn, new Object []{})).longValue(); assert(realLength = this.length); adjust = realLength - this.length; } else { LOG.info(Input stream class: + realIn.getClass().getName() + , not adjusting length); } } catch(Exception e) { SequenceFileLogReader.LOG.warn( Error while trying to get accurate file length. + Truncation / data loss may occur if RegionServers die., e); } return adjust + super.getPos(); {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-14194) Undeprecate methods in ThriftServerRunner.HBaseHandler
[ https://issues.apache.org/jira/browse/HBASE-14194?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14681268#comment-14681268 ] Hudson commented on HBASE-14194: FAILURE: Integrated in HBase-1.3 #100 (See [https://builds.apache.org/job/HBase-1.3/100/]) HBASE-14194 Undeprecate methods in ThriftServerRunner.HBaseHandler (apurtell: rev c07eb21e4be74cac4756cf44331269257ac56daa) * hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/ThriftServerRunner.java Undeprecate methods in ThriftServerRunner.HBaseHandler -- Key: HBASE-14194 URL: https://issues.apache.org/jira/browse/HBASE-14194 Project: HBase Issue Type: Improvement Reporter: Lars Francke Assignee: Lars Francke Priority: Trivial Fix For: 2.0.0, 1.2.0, 1.3.0 Attachments: HBASE-14194.patch The methods {{get}}, {{getVer}}, {{getVerTs}}, {{atomicIncrement}} were deprecated back in HBASE-1304. My guess is this was because it wasn't distinguishing between column family and column qualifier but I'm not sure. Either way it's been in there for six years without documentation or a deprecation at the interface level so it adds to my confusion and I'll attach a patch to remove the deprecations. I guess at one point the whole old Thrift server will be deprecated. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (HBASE-14200) Separate RegionReplica subtests of TestStochasticLoadBalancer into TestStochasticLoadBalancer2
[ https://issues.apache.org/jira/browse/HBASE-14200?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Ted Yu updated HBASE-14200: --- Summary: Separate RegionReplica subtests of TestStochasticLoadBalancer into TestStochasticLoadBalancer2 (was: Separate some subtests of TestStochasticLoadBalancer into TestStochasticLoadBalancer2) Separate RegionReplica subtests of TestStochasticLoadBalancer into TestStochasticLoadBalancer2 -- Key: HBASE-14200 URL: https://issues.apache.org/jira/browse/HBASE-14200 Project: HBase Issue Type: Test Reporter: Ted Yu Assignee: Ted Yu Priority: Minor Fix For: 2.0.0, 1.3.0 Attachments: 14200-v1.txt, 14200-v2.txt More and more functionality is added to StochasticLoadBalancer , making TestStochasticLoadBalancer run longer. From https://builds.apache.org/job/PreCommit-HBASE-Build/15011/testReport/org.apache.hadoop.hbase.master.balancer/TestStochasticLoadBalancer/ where total runtime was 14 min, here are the longest subtests: testRegionReplicasOnLargeCluster: 1 min 34 sec testRegionReplicasOnMidCluster: 1 min 31 sec testRegionReplicasOnMidClusterHighReplication: 2 min testRegionReplicationOnMidClusterReplicationGreaterThanNumNodes: 2 min 25 sec This issue is to separate out the above subtests into TestStochasticLoadBalancer2, giving each of the tests around 7 min runtime. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (HBASE-14190) Assign system tables ahead of user region assignment
[ https://issues.apache.org/jira/browse/HBASE-14190?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Ted Yu updated HBASE-14190: --- Attachment: 14190-v5.txt Patch v5 adds an assertion in TestMasterFailover#testSimpleMasterFailover for namespace table which is assigned before active master initialization finishes. Assign system tables ahead of user region assignment Key: HBASE-14190 URL: https://issues.apache.org/jira/browse/HBASE-14190 Project: HBase Issue Type: Bug Reporter: Ted Yu Assignee: Ted Yu Priority: Critical Attachments: 14190-v1.txt, 14190-v2.txt, 14190-v3.txt, 14190-v3.txt, 14190-v3.txt, 14190-v4.txt, 14190-v5.txt Currently the namespace table region is assigned like user regions. I spent several hours working with a customer where master couldn't finish initialization. Even though master was restarted quite a few times, it went down with the following: {code} 2015-08-05 17:16:57,530 FATAL [hdpmaster1:6.activeMasterManager] master.HMaster: Master server abort: loaded coprocessors are: [] 2015-08-05 17:16:57,530 FATAL [hdpmaster1:6.activeMasterManager] master.HMaster: Unhandled exception. Starting shutdown. java.io.IOException: Timedout 30ms waiting for namespace table to be assigned at org.apache.hadoop.hbase.master.TableNamespaceManager.start(TableNamespaceManager.java:104) at org.apache.hadoop.hbase.master.HMaster.initNamespace(HMaster.java:985) at org.apache.hadoop.hbase.master.HMaster.finishActiveMasterInitialization(HMaster.java:779) at org.apache.hadoop.hbase.master.HMaster.access$500(HMaster.java:182) at org.apache.hadoop.hbase.master.HMaster$1.run(HMaster.java:1646) at java.lang.Thread.run(Thread.java:744) {code} During previous run(s), namespace table was created, hence leaving an entry in hbase:meta. The following if block in TableNamespaceManager#start() was skipped: {code} if (!MetaTableAccessor.tableExists(masterServices.getConnection(), TableName.NAMESPACE_TABLE_NAME)) { {code} TableNamespaceManager#start() spins, waiting for namespace region to be assigned. There was issue in master assigning user regions. We tried issuing 'assign' command from hbase shell which didn't work because of the following check in MasterRpcServices#assignRegion(): {code} master.checkInitialized(); {code} This scenario can be avoided if we assign hbase:namespace table after hbase:meta is assigned but before user table region assignment. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (HBASE-14190) Assign system tables ahead of user region assignment
[ https://issues.apache.org/jira/browse/HBASE-14190?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Ted Yu updated HBASE-14190: --- Attachment: (was: 14190-v3.txt) Assign system tables ahead of user region assignment Key: HBASE-14190 URL: https://issues.apache.org/jira/browse/HBASE-14190 Project: HBase Issue Type: Bug Reporter: Ted Yu Assignee: Ted Yu Priority: Critical Attachments: 14190-v1.txt, 14190-v2.txt, 14190-v3.txt, 14190-v3.txt, 14190-v4.txt, 14190-v5.txt Currently the namespace table region is assigned like user regions. I spent several hours working with a customer where master couldn't finish initialization. Even though master was restarted quite a few times, it went down with the following: {code} 2015-08-05 17:16:57,530 FATAL [hdpmaster1:6.activeMasterManager] master.HMaster: Master server abort: loaded coprocessors are: [] 2015-08-05 17:16:57,530 FATAL [hdpmaster1:6.activeMasterManager] master.HMaster: Unhandled exception. Starting shutdown. java.io.IOException: Timedout 30ms waiting for namespace table to be assigned at org.apache.hadoop.hbase.master.TableNamespaceManager.start(TableNamespaceManager.java:104) at org.apache.hadoop.hbase.master.HMaster.initNamespace(HMaster.java:985) at org.apache.hadoop.hbase.master.HMaster.finishActiveMasterInitialization(HMaster.java:779) at org.apache.hadoop.hbase.master.HMaster.access$500(HMaster.java:182) at org.apache.hadoop.hbase.master.HMaster$1.run(HMaster.java:1646) at java.lang.Thread.run(Thread.java:744) {code} During previous run(s), namespace table was created, hence leaving an entry in hbase:meta. The following if block in TableNamespaceManager#start() was skipped: {code} if (!MetaTableAccessor.tableExists(masterServices.getConnection(), TableName.NAMESPACE_TABLE_NAME)) { {code} TableNamespaceManager#start() spins, waiting for namespace region to be assigned. There was issue in master assigning user regions. We tried issuing 'assign' command from hbase shell which didn't work because of the following check in MasterRpcServices#assignRegion(): {code} master.checkInitialized(); {code} This scenario can be avoided if we assign hbase:namespace table after hbase:meta is assigned but before user table region assignment. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-5878) Use getVisibleLength public api from HdfsDataInputStream from Hadoop-2.
[ https://issues.apache.org/jira/browse/HBASE-5878?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14680307#comment-14680307 ] Hadoop QA commented on HBASE-5878: -- {color:red}-1 overall{color}. Here are the results of testing the latest attachment http://issues.apache.org/jira/secure/attachment/12749586/HBASE-5878-v7-0.98.patch against 0.98 branch at commit c7065c4c40e94bcce2035b8ea9813cfc6124a7e0. ATTACHMENT ID: 12749586 {color:green}+1 @author{color}. The patch does not contain any @author tags. {color:red}-1 tests included{color}. The patch doesn't appear to include any new or modified tests. Please justify why no new tests are needed for this patch. Also please list what manual steps were performed to verify this patch. {color:green}+1 hadoop versions{color}. The patch compiles with all supported hadoop versions (2.4.0 2.4.1 2.5.0 2.5.1 2.5.2 2.6.0 2.7.0) {color:green}+1 javac{color}. The applied patch does not increase the total number of javac compiler warnings. {color:green}+1 protoc{color}. The applied patch does not increase the total number of protoc compiler warnings. {color:red}-1 javadoc{color}. The javadoc tool appears to have generated 22 warning messages. {color:green}+1 checkstyle{color}. The applied patch does not increase the total number of checkstyle errors {color:green}+1 findbugs{color}. The patch does not introduce any new Findbugs (version 2.0.3) warnings. {color:green}+1 release audit{color}. The applied patch does not increase the total number of release audit warnings. {color:green}+1 lineLengths{color}. The patch does not introduce lines longer than 100 {color:red}-1 site{color}. The patch appears to cause mvn post-site goal to fail. {color:red}-1 core tests{color}. The patch failed these unit tests: org.apache.hadoop.hbase.regionserver.wal.TestHLog {color:red}-1 core zombie tests{color}. There are 4 zombie test(s): at org.apache.hadoop.hbase.coprocessor.TestClassLoading.testClassLoadingFromLibDirInJar(TestClassLoading.java:374) at org.apache.hadoop.hbase.coprocessor.TestRegionObserverInterface.testPreWALRestoreSkip(TestRegionObserverInterface.java:717) Test results: https://builds.apache.org/job/PreCommit-HBASE-Build/15029//testReport/ Release Findbugs (version 2.0.3)warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/15029//artifact/patchprocess/newFindbugsWarnings.html Checkstyle Errors: https://builds.apache.org/job/PreCommit-HBASE-Build/15029//artifact/patchprocess/checkstyle-aggregate.html Javadoc warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/15029//artifact/patchprocess/patchJavadocWarnings.txt Console output: https://builds.apache.org/job/PreCommit-HBASE-Build/15029//console This message is automatically generated. Use getVisibleLength public api from HdfsDataInputStream from Hadoop-2. --- Key: HBASE-5878 URL: https://issues.apache.org/jira/browse/HBASE-5878 Project: HBase Issue Type: Bug Components: wal Reporter: Uma Maheswara Rao G Assignee: Ashish Singhi Fix For: 2.0.0, 1.3.0 Attachments: HBASE-5878-branch-1.0.patch, HBASE-5878-v2.patch, HBASE-5878-v3.patch, HBASE-5878-v4.patch, HBASE-5878-v5-0.98.patch, HBASE-5878-v5.patch, HBASE-5878-v5.patch, HBASE-5878-v6-0.98.patch, HBASE-5878-v6.patch, HBASE-5878-v7-0.98.patch, HBASE-5878.patch SequencFileLogReader: Currently Hbase using getFileLength api from DFSInputStream class by reflection. DFSInputStream is not exposed as public. So, this may change in future. Now HDFS exposed HdfsDataInputStream as public API. We can make use of it, when we are not able to find the getFileLength api from DFSInputStream as a else condition. So, that we will not have any sudden surprise like we are facing today. Also, it is just logging one warn message and proceeding if it throws any exception while getting the length. I think we can re-throw the exception because there is no point in continuing with dataloss. {code} long adjust = 0; try { Field fIn = FilterInputStream.class.getDeclaredField(in); fIn.setAccessible(true); Object realIn = fIn.get(this.in); // In hadoop 0.22, DFSInputStream is a standalone class. Before this, // it was an inner class of DFSClient. if (realIn.getClass().getName().endsWith(DFSInputStream)) { Method getFileLength = realIn.getClass(). getDeclaredMethod(getFileLength, new Class? []{}); getFileLength.setAccessible(true); long realLength =
[jira] [Commented] (HBASE-13376) Improvements to Stochastic load balancer
[ https://issues.apache.org/jira/browse/HBASE-13376?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14680257#comment-14680257 ] Ted Yu commented on HBASE-13376: The change in BaseLoadBalancer.java was left out, leading to compilation error. In your next patch, please add back the change. Also note recent refactoring in TestStochasticLoadBalancer.java Thanks Improvements to Stochastic load balancer Key: HBASE-13376 URL: https://issues.apache.org/jira/browse/HBASE-13376 Project: HBase Issue Type: Improvement Components: Balancer Affects Versions: 1.0.0, 0.98.12 Reporter: Vandana Ayyalasomayajula Assignee: Vandana Ayyalasomayajula Priority: Minor Attachments: 13376-v2.txt, HBASE-13376.patch, HBASE-13376_0.98.txt, HBASE-13376_0.txt, HBASE-13376_1.txt, HBASE-13376_1_1.txt, HBASE-13376_2.patch, HBASE-13376_2_branch-1.patch, HBASE-13376_98.patch, HBASE-13376_branch-1.patch There are two things this jira tries to address: 1. The locality picker in the stochastic balancer does not pick regions with least locality as candidates for swap/move. So when any user configures locality cost in the configs, the balancer does not always seems to move regions with bad locality. 2. When a cluster has equal number of loaded regions, it always picks the first one. It should pick a random region on one of the equally loaded servers. This improves a chance of finding a good candidate, when load picker is invoked several times. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (HBASE-13376) Improvements to Stochastic load balancer
[ https://issues.apache.org/jira/browse/HBASE-13376?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Ted Yu updated HBASE-13376: --- Status: Open (was: Patch Available) Improvements to Stochastic load balancer Key: HBASE-13376 URL: https://issues.apache.org/jira/browse/HBASE-13376 Project: HBase Issue Type: Improvement Components: Balancer Affects Versions: 0.98.12, 1.0.0 Reporter: Vandana Ayyalasomayajula Assignee: Vandana Ayyalasomayajula Priority: Minor Attachments: 13376-v2.txt, HBASE-13376.patch, HBASE-13376_0.98.txt, HBASE-13376_0.txt, HBASE-13376_1.txt, HBASE-13376_1_1.txt, HBASE-13376_2.patch, HBASE-13376_2_branch-1.patch, HBASE-13376_98.patch, HBASE-13376_branch-1.patch There are two things this jira tries to address: 1. The locality picker in the stochastic balancer does not pick regions with least locality as candidates for swap/move. So when any user configures locality cost in the configs, the balancer does not always seems to move regions with bad locality. 2. When a cluster has equal number of loaded regions, it always picks the first one. It should pick a random region on one of the equally loaded servers. This improves a chance of finding a good candidate, when load picker is invoked several times. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (HBASE-14190) Assign system tables ahead of user region assignment
[ https://issues.apache.org/jira/browse/HBASE-14190?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Ted Yu updated HBASE-14190: --- Attachment: (was: 14190-v4.txt) Assign system tables ahead of user region assignment Key: HBASE-14190 URL: https://issues.apache.org/jira/browse/HBASE-14190 Project: HBase Issue Type: Bug Reporter: Ted Yu Assignee: Ted Yu Priority: Critical Attachments: 14190-v5.txt Currently the namespace table region is assigned like user regions. I spent several hours working with a customer where master couldn't finish initialization. Even though master was restarted quite a few times, it went down with the following: {code} 2015-08-05 17:16:57,530 FATAL [hdpmaster1:6.activeMasterManager] master.HMaster: Master server abort: loaded coprocessors are: [] 2015-08-05 17:16:57,530 FATAL [hdpmaster1:6.activeMasterManager] master.HMaster: Unhandled exception. Starting shutdown. java.io.IOException: Timedout 30ms waiting for namespace table to be assigned at org.apache.hadoop.hbase.master.TableNamespaceManager.start(TableNamespaceManager.java:104) at org.apache.hadoop.hbase.master.HMaster.initNamespace(HMaster.java:985) at org.apache.hadoop.hbase.master.HMaster.finishActiveMasterInitialization(HMaster.java:779) at org.apache.hadoop.hbase.master.HMaster.access$500(HMaster.java:182) at org.apache.hadoop.hbase.master.HMaster$1.run(HMaster.java:1646) at java.lang.Thread.run(Thread.java:744) {code} During previous run(s), namespace table was created, hence leaving an entry in hbase:meta. The following if block in TableNamespaceManager#start() was skipped: {code} if (!MetaTableAccessor.tableExists(masterServices.getConnection(), TableName.NAMESPACE_TABLE_NAME)) { {code} TableNamespaceManager#start() spins, waiting for namespace region to be assigned. There was issue in master assigning user regions. We tried issuing 'assign' command from hbase shell which didn't work because of the following check in MasterRpcServices#assignRegion(): {code} master.checkInitialized(); {code} This scenario can be avoided if we assign hbase:namespace table after hbase:meta is assigned but before user table region assignment. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Comment Edited] (HBASE-13706) CoprocessorClassLoader should not exempt Hive classes
[ https://issues.apache.org/jira/browse/HBASE-13706?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14680811#comment-14680811 ] Andrew Purtell edited comment on HBASE-13706 at 8/10/15 9:42 PM: - +1 for 0.98 Out of curiosity, have you tried this with Apache Phoenix? As part of RC validation for 0.98 I will, so will back this change out if that presents a problem. was (Author: apurtell): +1 for 0.98 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: 2.0.0, 1.0.1, 1.1.0, 0.98.12 Reporter: Jerry He Assignee: Jerry He Priority: Minor Fix For: 2.0.0, 1.2.0, 1.3.0 Attachments: HBASE-13706-branch-1.patch, HBASE-13706-master-v2.patch, HBASE-13706-master-v2.patch, HBASE-13706.patch 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] [Commented] (HBASE-14190) Assign system tables ahead of user region assignment
[ https://issues.apache.org/jira/browse/HBASE-14190?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14680834#comment-14680834 ] Ted Yu commented on HBASE-14190: I want to get confirmation that *all* system tables should be assigned ahead of user table regions. This would be behavioral change compared to current approach. Assign system tables ahead of user region assignment Key: HBASE-14190 URL: https://issues.apache.org/jira/browse/HBASE-14190 Project: HBase Issue Type: Bug Reporter: Ted Yu Assignee: Ted Yu Priority: Critical Attachments: 14190-v5.txt, 14190-v6.txt Currently the namespace table region is assigned like user regions. I spent several hours working with a customer where master couldn't finish initialization. Even though master was restarted quite a few times, it went down with the following: {code} 2015-08-05 17:16:57,530 FATAL [hdpmaster1:6.activeMasterManager] master.HMaster: Master server abort: loaded coprocessors are: [] 2015-08-05 17:16:57,530 FATAL [hdpmaster1:6.activeMasterManager] master.HMaster: Unhandled exception. Starting shutdown. java.io.IOException: Timedout 30ms waiting for namespace table to be assigned at org.apache.hadoop.hbase.master.TableNamespaceManager.start(TableNamespaceManager.java:104) at org.apache.hadoop.hbase.master.HMaster.initNamespace(HMaster.java:985) at org.apache.hadoop.hbase.master.HMaster.finishActiveMasterInitialization(HMaster.java:779) at org.apache.hadoop.hbase.master.HMaster.access$500(HMaster.java:182) at org.apache.hadoop.hbase.master.HMaster$1.run(HMaster.java:1646) at java.lang.Thread.run(Thread.java:744) {code} During previous run(s), namespace table was created, hence leaving an entry in hbase:meta. The following if block in TableNamespaceManager#start() was skipped: {code} if (!MetaTableAccessor.tableExists(masterServices.getConnection(), TableName.NAMESPACE_TABLE_NAME)) { {code} TableNamespaceManager#start() spins, waiting for namespace region to be assigned. There was issue in master assigning user regions. We tried issuing 'assign' command from hbase shell which didn't work because of the following check in MasterRpcServices#assignRegion(): {code} master.checkInitialized(); {code} This scenario can be avoided if we assign hbase:namespace table after hbase:meta is assigned but before user table region assignment. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Comment Edited] (HBASE-14190) Assign system tables ahead of user region assignment
[ https://issues.apache.org/jira/browse/HBASE-14190?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14680805#comment-14680805 ] Andrew Purtell edited comment on HBASE-14190 at 8/10/15 9:38 PM: - I may be missing something but all tables we are interested in here are in the 'hbase:' namespace. Why not just assign all of that namespace first? The special casing seems like the wrong approach, and is further problematic with stuff like this: {code} 741if (UserProvider.isHBaseSecurityEnabled(conf)) { 742 assignSystemTableIfExists(status, AccessControlLists.ACL_TABLE_NAME); 743 assignSystemTableIfExists(status, VisibilityConstants.LABELS_TABLE_NAME); 744 {code} There's no guarantee at all security coprocessors are installed just because secure authentication is enabled. I get the ...IfExists part, but isHBaseSecurityEnabled doesn't say anything about if security coprocessors are installed. What about future features or coprocessors that add additional tables to the 'hbase:' namespace with the expectation they are system tables that should be deployed ahead of user tables? was (Author: apurtell): I may be missing something but all tables we are interested in here are in the 'hbase:' namespace. Why not just assign all of that namespace first? The special casing seems like the wrong approach, and is further problematic with stuff like this: {code} 741if (UserProvider.isHBaseSecurityEnabled(conf)) { 742 assignSystemTableIfExists(status, AccessControlLists.ACL_TABLE_NAME); 743 assignSystemTableIfExists(status, VisibilityConstants.LABELS_TABLE_NAME); 744 {code} There's no guarantee at all security coprocessors are installed just because secure authentication is enabled. Assign system tables ahead of user region assignment Key: HBASE-14190 URL: https://issues.apache.org/jira/browse/HBASE-14190 Project: HBase Issue Type: Bug Reporter: Ted Yu Assignee: Ted Yu Priority: Critical Attachments: 14190-v5.txt, 14190-v6.txt Currently the namespace table region is assigned like user regions. I spent several hours working with a customer where master couldn't finish initialization. Even though master was restarted quite a few times, it went down with the following: {code} 2015-08-05 17:16:57,530 FATAL [hdpmaster1:6.activeMasterManager] master.HMaster: Master server abort: loaded coprocessors are: [] 2015-08-05 17:16:57,530 FATAL [hdpmaster1:6.activeMasterManager] master.HMaster: Unhandled exception. Starting shutdown. java.io.IOException: Timedout 30ms waiting for namespace table to be assigned at org.apache.hadoop.hbase.master.TableNamespaceManager.start(TableNamespaceManager.java:104) at org.apache.hadoop.hbase.master.HMaster.initNamespace(HMaster.java:985) at org.apache.hadoop.hbase.master.HMaster.finishActiveMasterInitialization(HMaster.java:779) at org.apache.hadoop.hbase.master.HMaster.access$500(HMaster.java:182) at org.apache.hadoop.hbase.master.HMaster$1.run(HMaster.java:1646) at java.lang.Thread.run(Thread.java:744) {code} During previous run(s), namespace table was created, hence leaving an entry in hbase:meta. The following if block in TableNamespaceManager#start() was skipped: {code} if (!MetaTableAccessor.tableExists(masterServices.getConnection(), TableName.NAMESPACE_TABLE_NAME)) { {code} TableNamespaceManager#start() spins, waiting for namespace region to be assigned. There was issue in master assigning user regions. We tried issuing 'assign' command from hbase shell which didn't work because of the following check in MasterRpcServices#assignRegion(): {code} master.checkInitialized(); {code} This scenario can be avoided if we assign hbase:namespace table after hbase:meta is assigned but before user table region assignment. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (HBASE-14181) Add Spark DataFrame DataSource to HBase-Spark Module
[ https://issues.apache.org/jira/browse/HBASE-14181?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Ted Malaska updated HBASE-14181: Attachment: HBASE-14181.2.patch Making good progress. The rowKey and qualifier push down is now working. Now we can use SparkSQL with HBase and all the SQL logic is pushed down and the result will be a dataframe RDD. What remains: - More unit tests - Clean up the code Add Spark DataFrame DataSource to HBase-Spark Module Key: HBASE-14181 URL: https://issues.apache.org/jira/browse/HBASE-14181 Project: HBase Issue Type: New Feature Components: spark Reporter: Ted Malaska Assignee: Ted Malaska Priority: Minor Attachments: HBASE-14181.1.patch, HBASE-14181.2.patch Build a RelationProvider for HBase-Spark Module. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (HBASE-14190) Assign system tables ahead of user region assignment
[ https://issues.apache.org/jira/browse/HBASE-14190?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Ted Yu updated HBASE-14190: --- Attachment: 14190-v6.txt Assign system tables ahead of user region assignment Key: HBASE-14190 URL: https://issues.apache.org/jira/browse/HBASE-14190 Project: HBase Issue Type: Bug Reporter: Ted Yu Assignee: Ted Yu Priority: Critical Attachments: 14190-v5.txt, 14190-v6.txt Currently the namespace table region is assigned like user regions. I spent several hours working with a customer where master couldn't finish initialization. Even though master was restarted quite a few times, it went down with the following: {code} 2015-08-05 17:16:57,530 FATAL [hdpmaster1:6.activeMasterManager] master.HMaster: Master server abort: loaded coprocessors are: [] 2015-08-05 17:16:57,530 FATAL [hdpmaster1:6.activeMasterManager] master.HMaster: Unhandled exception. Starting shutdown. java.io.IOException: Timedout 30ms waiting for namespace table to be assigned at org.apache.hadoop.hbase.master.TableNamespaceManager.start(TableNamespaceManager.java:104) at org.apache.hadoop.hbase.master.HMaster.initNamespace(HMaster.java:985) at org.apache.hadoop.hbase.master.HMaster.finishActiveMasterInitialization(HMaster.java:779) at org.apache.hadoop.hbase.master.HMaster.access$500(HMaster.java:182) at org.apache.hadoop.hbase.master.HMaster$1.run(HMaster.java:1646) at java.lang.Thread.run(Thread.java:744) {code} During previous run(s), namespace table was created, hence leaving an entry in hbase:meta. The following if block in TableNamespaceManager#start() was skipped: {code} if (!MetaTableAccessor.tableExists(masterServices.getConnection(), TableName.NAMESPACE_TABLE_NAME)) { {code} TableNamespaceManager#start() spins, waiting for namespace region to be assigned. There was issue in master assigning user regions. We tried issuing 'assign' command from hbase shell which didn't work because of the following check in MasterRpcServices#assignRegion(): {code} master.checkInitialized(); {code} This scenario can be avoided if we assign hbase:namespace table after hbase:meta is assigned but before user table region assignment. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-14190) Assign system tables ahead of user region assignment
[ https://issues.apache.org/jira/browse/HBASE-14190?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14680805#comment-14680805 ] Andrew Purtell commented on HBASE-14190: I may be missing something but all tables we are interested in here are in the 'hbase:' namespace. Why not just assign all of that namespace first? The special casing seems like the wrong approach, and is further problematic with stuff like this: {code} 741if (UserProvider.isHBaseSecurityEnabled(conf)) { 742 assignSystemTableIfExists(status, AccessControlLists.ACL_TABLE_NAME); 743 assignSystemTableIfExists(status, VisibilityConstants.LABELS_TABLE_NAME); 744 {code} There's no guarantee at all security coprocessors are installed just because secure authentication is enabled. Assign system tables ahead of user region assignment Key: HBASE-14190 URL: https://issues.apache.org/jira/browse/HBASE-14190 Project: HBase Issue Type: Bug Reporter: Ted Yu Assignee: Ted Yu Priority: Critical Attachments: 14190-v5.txt, 14190-v6.txt Currently the namespace table region is assigned like user regions. I spent several hours working with a customer where master couldn't finish initialization. Even though master was restarted quite a few times, it went down with the following: {code} 2015-08-05 17:16:57,530 FATAL [hdpmaster1:6.activeMasterManager] master.HMaster: Master server abort: loaded coprocessors are: [] 2015-08-05 17:16:57,530 FATAL [hdpmaster1:6.activeMasterManager] master.HMaster: Unhandled exception. Starting shutdown. java.io.IOException: Timedout 30ms waiting for namespace table to be assigned at org.apache.hadoop.hbase.master.TableNamespaceManager.start(TableNamespaceManager.java:104) at org.apache.hadoop.hbase.master.HMaster.initNamespace(HMaster.java:985) at org.apache.hadoop.hbase.master.HMaster.finishActiveMasterInitialization(HMaster.java:779) at org.apache.hadoop.hbase.master.HMaster.access$500(HMaster.java:182) at org.apache.hadoop.hbase.master.HMaster$1.run(HMaster.java:1646) at java.lang.Thread.run(Thread.java:744) {code} During previous run(s), namespace table was created, hence leaving an entry in hbase:meta. The following if block in TableNamespaceManager#start() was skipped: {code} if (!MetaTableAccessor.tableExists(masterServices.getConnection(), TableName.NAMESPACE_TABLE_NAME)) { {code} TableNamespaceManager#start() spins, waiting for namespace region to be assigned. There was issue in master assigning user regions. We tried issuing 'assign' command from hbase shell which didn't work because of the following check in MasterRpcServices#assignRegion(): {code} master.checkInitialized(); {code} This scenario can be avoided if we assign hbase:namespace table after hbase:meta is assigned but before user table region assignment. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-14190) Assign system tables ahead of user region assignment
[ https://issues.apache.org/jira/browse/HBASE-14190?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14680819#comment-14680819 ] Ted Yu commented on HBASE-14190: A brief search doesn't locate the method which returns system tables currently deployed in cluster. Planning to add one to MetaTableAccessor. Assign system tables ahead of user region assignment Key: HBASE-14190 URL: https://issues.apache.org/jira/browse/HBASE-14190 Project: HBase Issue Type: Bug Reporter: Ted Yu Assignee: Ted Yu Priority: Critical Attachments: 14190-v5.txt, 14190-v6.txt Currently the namespace table region is assigned like user regions. I spent several hours working with a customer where master couldn't finish initialization. Even though master was restarted quite a few times, it went down with the following: {code} 2015-08-05 17:16:57,530 FATAL [hdpmaster1:6.activeMasterManager] master.HMaster: Master server abort: loaded coprocessors are: [] 2015-08-05 17:16:57,530 FATAL [hdpmaster1:6.activeMasterManager] master.HMaster: Unhandled exception. Starting shutdown. java.io.IOException: Timedout 30ms waiting for namespace table to be assigned at org.apache.hadoop.hbase.master.TableNamespaceManager.start(TableNamespaceManager.java:104) at org.apache.hadoop.hbase.master.HMaster.initNamespace(HMaster.java:985) at org.apache.hadoop.hbase.master.HMaster.finishActiveMasterInitialization(HMaster.java:779) at org.apache.hadoop.hbase.master.HMaster.access$500(HMaster.java:182) at org.apache.hadoop.hbase.master.HMaster$1.run(HMaster.java:1646) at java.lang.Thread.run(Thread.java:744) {code} During previous run(s), namespace table was created, hence leaving an entry in hbase:meta. The following if block in TableNamespaceManager#start() was skipped: {code} if (!MetaTableAccessor.tableExists(masterServices.getConnection(), TableName.NAMESPACE_TABLE_NAME)) { {code} TableNamespaceManager#start() spins, waiting for namespace region to be assigned. There was issue in master assigning user regions. We tried issuing 'assign' command from hbase shell which didn't work because of the following check in MasterRpcServices#assignRegion(): {code} master.checkInitialized(); {code} This scenario can be avoided if we assign hbase:namespace table after hbase:meta is assigned but before user table region assignment. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-13706) CoprocessorClassLoader should not exempt Hive classes
[ https://issues.apache.org/jira/browse/HBASE-13706?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14680837#comment-14680837 ] Andrew Purtell commented on HBASE-13706: Thanks Jerry, that will work 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: 2.0.0, 1.0.1, 1.1.0, 0.98.12 Reporter: Jerry He Assignee: Jerry He Priority: Minor Fix For: 2.0.0, 1.2.0, 1.3.0 Attachments: HBASE-13706-branch-1.patch, HBASE-13706-master-v2.patch, HBASE-13706-master-v2.patch, HBASE-13706.patch 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] [Commented] (HBASE-13706) CoprocessorClassLoader should not exempt Hive classes
[ https://issues.apache.org/jira/browse/HBASE-13706?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14680811#comment-14680811 ] Andrew Purtell commented on HBASE-13706: +1 for 0.98 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: 2.0.0, 1.0.1, 1.1.0, 0.98.12 Reporter: Jerry He Assignee: Jerry He Priority: Minor Fix For: 2.0.0, 1.2.0, 1.3.0 Attachments: HBASE-13706-branch-1.patch, HBASE-13706-master-v2.patch, HBASE-13706-master-v2.patch, HBASE-13706.patch 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] [Commented] (HBASE-13706) CoprocessorClassLoader should not exempt Hive classes
[ https://issues.apache.org/jira/browse/HBASE-13706?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14680830#comment-14680830 ] Jerry He commented on HBASE-13706: -- I will do a quick Phoenix sample test against HBase 1.1 with the fix. I happen to have phoenix-4.4.0-HBase-1.1-server.jar in my hbase lib. 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: 2.0.0, 1.0.1, 1.1.0, 0.98.12 Reporter: Jerry He Assignee: Jerry He Priority: Minor Fix For: 2.0.0, 1.2.0, 1.3.0 Attachments: HBASE-13706-branch-1.patch, HBASE-13706-master-v2.patch, HBASE-13706-master-v2.patch, HBASE-13706.patch 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] [Commented] (HBASE-14190) Assign system tables ahead of user region assignment
[ https://issues.apache.org/jira/browse/HBASE-14190?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14680866#comment-14680866 ] Andrew Purtell commented on HBASE-14190: bq. I want to get confirmation that all system tables should be assigned ahead of user table regions. Isn't this JIRA titled Assign system tables ahead of user region assignment? Are your goals different? Assign system tables ahead of user region assignment Key: HBASE-14190 URL: https://issues.apache.org/jira/browse/HBASE-14190 Project: HBase Issue Type: Bug Reporter: Ted Yu Assignee: Ted Yu Priority: Critical Attachments: 14190-v5.txt, 14190-v6.txt Currently the namespace table region is assigned like user regions. I spent several hours working with a customer where master couldn't finish initialization. Even though master was restarted quite a few times, it went down with the following: {code} 2015-08-05 17:16:57,530 FATAL [hdpmaster1:6.activeMasterManager] master.HMaster: Master server abort: loaded coprocessors are: [] 2015-08-05 17:16:57,530 FATAL [hdpmaster1:6.activeMasterManager] master.HMaster: Unhandled exception. Starting shutdown. java.io.IOException: Timedout 30ms waiting for namespace table to be assigned at org.apache.hadoop.hbase.master.TableNamespaceManager.start(TableNamespaceManager.java:104) at org.apache.hadoop.hbase.master.HMaster.initNamespace(HMaster.java:985) at org.apache.hadoop.hbase.master.HMaster.finishActiveMasterInitialization(HMaster.java:779) at org.apache.hadoop.hbase.master.HMaster.access$500(HMaster.java:182) at org.apache.hadoop.hbase.master.HMaster$1.run(HMaster.java:1646) at java.lang.Thread.run(Thread.java:744) {code} During previous run(s), namespace table was created, hence leaving an entry in hbase:meta. The following if block in TableNamespaceManager#start() was skipped: {code} if (!MetaTableAccessor.tableExists(masterServices.getConnection(), TableName.NAMESPACE_TABLE_NAME)) { {code} TableNamespaceManager#start() spins, waiting for namespace region to be assigned. There was issue in master assigning user regions. We tried issuing 'assign' command from hbase shell which didn't work because of the following check in MasterRpcServices#assignRegion(): {code} master.checkInitialized(); {code} This scenario can be avoided if we assign hbase:namespace table after hbase:meta is assigned but before user table region assignment. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-14190) Assign system tables ahead of user region assignment
[ https://issues.apache.org/jira/browse/HBASE-14190?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14680898#comment-14680898 ] Ted Yu commented on HBASE-14190: bq. add additional tables to the 'hbase:' namespace with the expectation they are system tables that should be deployed ahead of user tables? To my knowledge, there is currently no static registry of system tables. Patch v7 adds MetaTableAccessor#getSystemTableRegionsAndLocations() which scans hbase:meta table for system tables. However, on fresh start, this method would not work. Comment is welcome. Assign system tables ahead of user region assignment Key: HBASE-14190 URL: https://issues.apache.org/jira/browse/HBASE-14190 Project: HBase Issue Type: Bug Reporter: Ted Yu Assignee: Ted Yu Priority: Critical Attachments: 14190-v5.txt, 14190-v6.txt, 14190-v7.txt Currently the namespace table region is assigned like user regions. I spent several hours working with a customer where master couldn't finish initialization. Even though master was restarted quite a few times, it went down with the following: {code} 2015-08-05 17:16:57,530 FATAL [hdpmaster1:6.activeMasterManager] master.HMaster: Master server abort: loaded coprocessors are: [] 2015-08-05 17:16:57,530 FATAL [hdpmaster1:6.activeMasterManager] master.HMaster: Unhandled exception. Starting shutdown. java.io.IOException: Timedout 30ms waiting for namespace table to be assigned at org.apache.hadoop.hbase.master.TableNamespaceManager.start(TableNamespaceManager.java:104) at org.apache.hadoop.hbase.master.HMaster.initNamespace(HMaster.java:985) at org.apache.hadoop.hbase.master.HMaster.finishActiveMasterInitialization(HMaster.java:779) at org.apache.hadoop.hbase.master.HMaster.access$500(HMaster.java:182) at org.apache.hadoop.hbase.master.HMaster$1.run(HMaster.java:1646) at java.lang.Thread.run(Thread.java:744) {code} During previous run(s), namespace table was created, hence leaving an entry in hbase:meta. The following if block in TableNamespaceManager#start() was skipped: {code} if (!MetaTableAccessor.tableExists(masterServices.getConnection(), TableName.NAMESPACE_TABLE_NAME)) { {code} TableNamespaceManager#start() spins, waiting for namespace region to be assigned. There was issue in master assigning user regions. We tried issuing 'assign' command from hbase shell which didn't work because of the following check in MasterRpcServices#assignRegion(): {code} master.checkInitialized(); {code} This scenario can be avoided if we assign hbase:namespace table after hbase:meta is assigned but before user table region assignment. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (HBASE-14190) Assign system tables ahead of user region assignment
[ https://issues.apache.org/jira/browse/HBASE-14190?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Ted Yu updated HBASE-14190: --- Attachment: 14190-v7.txt Assign system tables ahead of user region assignment Key: HBASE-14190 URL: https://issues.apache.org/jira/browse/HBASE-14190 Project: HBase Issue Type: Bug Reporter: Ted Yu Assignee: Ted Yu Priority: Critical Attachments: 14190-v5.txt, 14190-v6.txt, 14190-v7.txt Currently the namespace table region is assigned like user regions. I spent several hours working with a customer where master couldn't finish initialization. Even though master was restarted quite a few times, it went down with the following: {code} 2015-08-05 17:16:57,530 FATAL [hdpmaster1:6.activeMasterManager] master.HMaster: Master server abort: loaded coprocessors are: [] 2015-08-05 17:16:57,530 FATAL [hdpmaster1:6.activeMasterManager] master.HMaster: Unhandled exception. Starting shutdown. java.io.IOException: Timedout 30ms waiting for namespace table to be assigned at org.apache.hadoop.hbase.master.TableNamespaceManager.start(TableNamespaceManager.java:104) at org.apache.hadoop.hbase.master.HMaster.initNamespace(HMaster.java:985) at org.apache.hadoop.hbase.master.HMaster.finishActiveMasterInitialization(HMaster.java:779) at org.apache.hadoop.hbase.master.HMaster.access$500(HMaster.java:182) at org.apache.hadoop.hbase.master.HMaster$1.run(HMaster.java:1646) at java.lang.Thread.run(Thread.java:744) {code} During previous run(s), namespace table was created, hence leaving an entry in hbase:meta. The following if block in TableNamespaceManager#start() was skipped: {code} if (!MetaTableAccessor.tableExists(masterServices.getConnection(), TableName.NAMESPACE_TABLE_NAME)) { {code} TableNamespaceManager#start() spins, waiting for namespace region to be assigned. There was issue in master assigning user regions. We tried issuing 'assign' command from hbase shell which didn't work because of the following check in MasterRpcServices#assignRegion(): {code} master.checkInitialized(); {code} This scenario can be avoided if we assign hbase:namespace table after hbase:meta is assigned but before user table region assignment. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-14166) Per-Region metrics can be stale
[ https://issues.apache.org/jira/browse/HBASE-14166?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14680908#comment-14680908 ] Hadoop QA commented on HBASE-14166: --- {color:red}-1 overall{color}. Here are the results of testing the latest attachment http://issues.apache.org/jira/secure/attachment/12749683/HBASE-14166-v2.patch against master branch at commit ae35f65e9ac12256b4514e6ba6ef5333e9e90870. ATTACHMENT ID: 12749683 {color:green}+1 @author{color}. The patch does not contain any @author tags. {color:green}+1 tests included{color}. The patch appears to include 11 new or modified tests. {color:green}+1 hadoop versions{color}. The patch compiles with all supported hadoop versions (2.4.0 2.4.1 2.5.0 2.5.1 2.5.2 2.6.0 2.7.0) {color:green}+1 javac{color}. The applied patch does not increase the total number of javac compiler warnings. {color:green}+1 protoc{color}. The applied patch does not increase the total number of protoc compiler warnings. {color:green}+1 javadoc{color}. The javadoc tool did not generate any warning messages. {color:red}-1 checkstyle{color}. The applied patch generated 1863 checkstyle errors (more than the master's current 1862 errors). {color:green}+1 findbugs{color}. The patch does not introduce any new Findbugs (version 2.0.3) warnings. {color:green}+1 release audit{color}. The applied patch does not increase the total number of release audit warnings. {color:green}+1 lineLengths{color}. The patch does not introduce lines longer than 100 {color:green}+1 site{color}. The mvn post-site goal succeeds with this patch. {color:red}-1 core tests{color}. The patch failed these unit tests: org.apache.hadoop.hbase.master.procedure.TestWALProcedureStoreOnHDFS {color:red}-1 core zombie tests{color}. There are 10 zombie test(s): at org.apache.hadoop.hbase.mapreduce.TestHFileOutputFormat2.testMRIncrementalLoadWithSplit(TestHFileOutputFormat2.java:385) at org.apache.hadoop.hbase.mapreduce.TestTimeRangeMapRed.testTimeRangeMapRed(TestTimeRangeMapRed.java:163) at org.apache.hadoop.hbase.mapreduce.MultiTableInputFormatTestBase.testScan(MultiTableInputFormatTestBase.java:255) at org.apache.hadoop.hbase.mapreduce.MultiTableInputFormatTestBase.testScanEmptyToEmpty(MultiTableInputFormatTestBase.java:196) at org.apache.hadoop.hbase.mapreduce.TestImportTSVWithVisibilityLabels.testBulkOutputWithTsvImporterTextMapper(TestImportTSVWithVisibilityLabels.java:253) at org.apache.hadoop.hbase.util.TestHBaseFsck.testFixByTable(TestHBaseFsck.java:1652) at org.apache.hadoop.hbase.mapreduce.TestHFileOutputFormat.testColumnFamilySettings(TestHFileOutputFormat.java:829) at org.apache.hadoop.hbase.mapreduce.TestTableMapReduceBase.testCombiner(TestTableMapReduceBase.java:106) at org.apache.hadoop.hbase.mapreduce.TestCopyTable.testRenameFamily(TestCopyTable.java:214) at org.apache.hadoop.hbase.mapred.TestTableSnapshotInputFormat.testWithMapReduceImpl(TestTableSnapshotInputFormat.java:216) at org.apache.hadoop.hbase.mapreduce.TableSnapshotInputFormatTestBase.testWithMapReduce(TableSnapshotInputFormatTestBase.java:112) at org.apache.hadoop.hbase.mapred.TestTableSnapshotInputFormat.testWithMapReduceMultiRegion(TestTableSnapshotInputFormat.java:141) Test results: https://builds.apache.org/job/PreCommit-HBASE-Build/15032//testReport/ Release Findbugs (version 2.0.3)warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/15032//artifact/patchprocess/newFindbugsWarnings.html Checkstyle Errors: https://builds.apache.org/job/PreCommit-HBASE-Build/15032//artifact/patchprocess/checkstyle-aggregate.html Console output: https://builds.apache.org/job/PreCommit-HBASE-Build/15032//console This message is automatically generated. Per-Region metrics can be stale --- Key: HBASE-14166 URL: https://issues.apache.org/jira/browse/HBASE-14166 Project: HBase Issue Type: Bug Affects Versions: 1.1.0.1 Reporter: Elliott Clark Assignee: Elliott Clark Fix For: 2.0.0, 1.3.0 Attachments: HBASE-14166-v1.patch, HBASE-14166-v2.patch, HBASE-14166.patch We're seeing some machines that are reporting only old region metrics. It seems like at some point the Hadoop metrics system decided which metrics to display and which not to. From then on it was not changing. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-13889) hbase-shaded-client artifact is missing dependency (therefore, does not work)
[ https://issues.apache.org/jira/browse/HBASE-13889?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14680917#comment-14680917 ] Dmitry Minkovsky commented on HBASE-13889: -- [~ndimiduk] Sorry to say I have not. My solution has been using basic Jersey/Grizzly without Dropwizard in the mean time, thus avoiding the dependency conflict. Keeping this issue in mind. If no one works this out, I'll post a patch here when I do. Thank you. hbase-shaded-client artifact is missing dependency (therefore, does not work) - Key: HBASE-13889 URL: https://issues.apache.org/jira/browse/HBASE-13889 Project: HBase Issue Type: Bug Components: Client Affects Versions: 1.1.0, 1.1.0.1 Environment: N/A? Reporter: Dmitry Minkovsky Assignee: Elliott Clark Priority: Critical Fix For: 2.0.0, 1.3.0, 1.2.1, 1.1.3 Attachments: 13889.wip.patch, Screen Shot 2015-06-11 at 10.59.55 AM.png The {{hbase-shaded-client}} artifact was introduced in [HBASE-13517|https://issues.apache.org/jira/browse/HBASE-13517]. Thank you very much for this, as I am new to Java building and was having a very slow-moving time resolving conflicts. However, the shaded client artifact seems to be missing {{javax.xml.transform.TransformerException}}. I examined the JAR, which does not have this package/class. Steps to reproduce: Java: {code} package com.mycompany.app; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.client.Connection; import org.apache.hadoop.hbase.client.ConnectionFactory; public class App { public static void main( String[] args ) throws java.io.IOException { Configuration config = HBaseConfiguration.create(); Connection connection = ConnectionFactory.createConnection(config); } } {code} POM: {code} project xmlns=http://maven.apache.org/POM/4.0.0; xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance; xsi:schemaLocation=http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd; modelVersion4.0.0/modelVersion groupIdcom.mycompany.app/groupId artifactIdmy-app/artifactId
[jira] [Commented] (HBASE-14190) Assign system tables ahead of user region assignment
[ https://issues.apache.org/jira/browse/HBASE-14190?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14680947#comment-14680947 ] Ted Yu commented on HBASE-14190: Patch v7 uses hbase:meta as the registry of system tables. I think this should be fine for this JIRA. It is also consistent with the approach of patch v1: we assign the system table if it appears in hbase:meta. Assign system tables ahead of user region assignment Key: HBASE-14190 URL: https://issues.apache.org/jira/browse/HBASE-14190 Project: HBase Issue Type: Bug Reporter: Ted Yu Assignee: Ted Yu Priority: Critical Attachments: 14190-v5.txt, 14190-v6.txt, 14190-v7.txt Currently the namespace table region is assigned like user regions. I spent several hours working with a customer where master couldn't finish initialization. Even though master was restarted quite a few times, it went down with the following: {code} 2015-08-05 17:16:57,530 FATAL [hdpmaster1:6.activeMasterManager] master.HMaster: Master server abort: loaded coprocessors are: [] 2015-08-05 17:16:57,530 FATAL [hdpmaster1:6.activeMasterManager] master.HMaster: Unhandled exception. Starting shutdown. java.io.IOException: Timedout 30ms waiting for namespace table to be assigned at org.apache.hadoop.hbase.master.TableNamespaceManager.start(TableNamespaceManager.java:104) at org.apache.hadoop.hbase.master.HMaster.initNamespace(HMaster.java:985) at org.apache.hadoop.hbase.master.HMaster.finishActiveMasterInitialization(HMaster.java:779) at org.apache.hadoop.hbase.master.HMaster.access$500(HMaster.java:182) at org.apache.hadoop.hbase.master.HMaster$1.run(HMaster.java:1646) at java.lang.Thread.run(Thread.java:744) {code} During previous run(s), namespace table was created, hence leaving an entry in hbase:meta. The following if block in TableNamespaceManager#start() was skipped: {code} if (!MetaTableAccessor.tableExists(masterServices.getConnection(), TableName.NAMESPACE_TABLE_NAME)) { {code} TableNamespaceManager#start() spins, waiting for namespace region to be assigned. There was issue in master assigning user regions. We tried issuing 'assign' command from hbase shell which didn't work because of the following check in MasterRpcServices#assignRegion(): {code} master.checkInitialized(); {code} This scenario can be avoided if we assign hbase:namespace table after hbase:meta is assigned but before user table region assignment. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (HBASE-14190) Assign system tables ahead of user region assignment
[ https://issues.apache.org/jira/browse/HBASE-14190?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Ted Yu updated HBASE-14190: --- Attachment: (was: 14190-v5.txt) Assign system tables ahead of user region assignment Key: HBASE-14190 URL: https://issues.apache.org/jira/browse/HBASE-14190 Project: HBase Issue Type: Bug Reporter: Ted Yu Assignee: Ted Yu Priority: Critical Attachments: 14190-v6.txt, 14190-v7.txt Currently the namespace table region is assigned like user regions. I spent several hours working with a customer where master couldn't finish initialization. Even though master was restarted quite a few times, it went down with the following: {code} 2015-08-05 17:16:57,530 FATAL [hdpmaster1:6.activeMasterManager] master.HMaster: Master server abort: loaded coprocessors are: [] 2015-08-05 17:16:57,530 FATAL [hdpmaster1:6.activeMasterManager] master.HMaster: Unhandled exception. Starting shutdown. java.io.IOException: Timedout 30ms waiting for namespace table to be assigned at org.apache.hadoop.hbase.master.TableNamespaceManager.start(TableNamespaceManager.java:104) at org.apache.hadoop.hbase.master.HMaster.initNamespace(HMaster.java:985) at org.apache.hadoop.hbase.master.HMaster.finishActiveMasterInitialization(HMaster.java:779) at org.apache.hadoop.hbase.master.HMaster.access$500(HMaster.java:182) at org.apache.hadoop.hbase.master.HMaster$1.run(HMaster.java:1646) at java.lang.Thread.run(Thread.java:744) {code} During previous run(s), namespace table was created, hence leaving an entry in hbase:meta. The following if block in TableNamespaceManager#start() was skipped: {code} if (!MetaTableAccessor.tableExists(masterServices.getConnection(), TableName.NAMESPACE_TABLE_NAME)) { {code} TableNamespaceManager#start() spins, waiting for namespace region to be assigned. There was issue in master assigning user regions. We tried issuing 'assign' command from hbase shell which didn't work because of the following check in MasterRpcServices#assignRegion(): {code} master.checkInitialized(); {code} This scenario can be avoided if we assign hbase:namespace table after hbase:meta is assigned but before user table region assignment. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (HBASE-13376) Improvements to Stochastic load balancer
[ https://issues.apache.org/jira/browse/HBASE-13376?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Vandana Ayyalasomayajula updated HBASE-13376: - Attachment: HBASE-13376_2.patch Improvements to Stochastic load balancer Key: HBASE-13376 URL: https://issues.apache.org/jira/browse/HBASE-13376 Project: HBase Issue Type: Improvement Components: Balancer Affects Versions: 1.0.0, 0.98.12 Reporter: Vandana Ayyalasomayajula Assignee: Vandana Ayyalasomayajula Priority: Minor Attachments: 13376-v2.txt, HBASE-13376.patch, HBASE-13376_0.98.txt, HBASE-13376_0.txt, HBASE-13376_1.txt, HBASE-13376_1_1.txt, HBASE-13376_2.patch, HBASE-13376_2_branch-1.patch, HBASE-13376_98.patch, HBASE-13376_branch-1.patch There are two things this jira tries to address: 1. The locality picker in the stochastic balancer does not pick regions with least locality as candidates for swap/move. So when any user configures locality cost in the configs, the balancer does not always seems to move regions with bad locality. 2. When a cluster has equal number of loaded regions, it always picks the first one. It should pick a random region on one of the equally loaded servers. This improves a chance of finding a good candidate, when load picker is invoked several times. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-13889) hbase-shaded-client artifact is missing dependency (therefore, does not work)
[ https://issues.apache.org/jira/browse/HBASE-13889?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14680965#comment-14680965 ] Elliott Clark commented on HBASE-13889: --- Yeah pretty sure that this is a bug in the shade-jar. Trying to chase that down. hbase-shaded-client artifact is missing dependency (therefore, does not work) - Key: HBASE-13889 URL: https://issues.apache.org/jira/browse/HBASE-13889 Project: HBase Issue Type: Bug Components: Client Affects Versions: 1.1.0, 1.1.0.1 Environment: N/A? Reporter: Dmitry Minkovsky Assignee: Elliott Clark Priority: Critical Fix For: 2.0.0, 1.3.0, 1.2.1, 1.1.3 Attachments: 13889.wip.patch, Screen Shot 2015-06-11 at 10.59.55 AM.png The {{hbase-shaded-client}} artifact was introduced in [HBASE-13517|https://issues.apache.org/jira/browse/HBASE-13517]. Thank you very much for this, as I am new to Java building and was having a very slow-moving time resolving conflicts. However, the shaded client artifact seems to be missing {{javax.xml.transform.TransformerException}}. I examined the JAR, which does not have this package/class. Steps to reproduce: Java: {code} package com.mycompany.app; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.client.Connection; import org.apache.hadoop.hbase.client.ConnectionFactory; public class App { public static void main( String[] args ) throws java.io.IOException { Configuration config = HBaseConfiguration.create(); Connection connection = ConnectionFactory.createConnection(config); } } {code} POM: {code} project xmlns=http://maven.apache.org/POM/4.0.0; xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance; xsi:schemaLocation=http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd; modelVersion4.0.0/modelVersion groupIdcom.mycompany.app/groupId artifactIdmy-app/artifactId version1.0-SNAPSHOT/version
[jira] [Assigned] (HBASE-12911) Client-side metrics
[ https://issues.apache.org/jira/browse/HBASE-12911?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Nick Dimiduk reassigned HBASE-12911: Assignee: Nick Dimiduk Client-side metrics --- Key: HBASE-12911 URL: https://issues.apache.org/jira/browse/HBASE-12911 Project: HBase Issue Type: Brainstorming Components: Client, Performance, Usability Reporter: Nick Dimiduk Assignee: Nick Dimiduk There's very little visibility into the hbase client. Folks who care to add some kind of metrics collection end up wrapping Table method invocations with {{System.currentTimeMillis()}}. For a crude example of this, have a look at what I did in {{PerformanceEvaluation}} for exposing requests latencies up to {{IntegrationTestRegionReplicaPerf}}. The client is quite complex, there's a lot going on under the hood that is impossible to see right now without a profiler. Being a crucial part of the performance of this distributed system, we should have deeper visibility into the client's function. I'm not sure that wiring into the hadoop metrics system is the right choice because the client is often embedded as a library in a user's application. We should have integration with our metrics tools so that, i.e., a client embedded in a coprocessor can report metrics through the usual RS channels, or a client used in a MR job can do the same. I would propose an interface-based system with pluggable implementations. Out of the box we'd include a hadoop-metrics implementation and one other, possibly [dropwizard/metrics|https://github.com/dropwizard/metrics]. Thoughts? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (HBASE-13376) Improvements to Stochastic load balancer
[ https://issues.apache.org/jira/browse/HBASE-13376?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Vandana Ayyalasomayajula updated HBASE-13376: - Attachment: (was: HBASE-13376_2.patch) Improvements to Stochastic load balancer Key: HBASE-13376 URL: https://issues.apache.org/jira/browse/HBASE-13376 Project: HBase Issue Type: Improvement Components: Balancer Affects Versions: 1.0.0, 0.98.12 Reporter: Vandana Ayyalasomayajula Assignee: Vandana Ayyalasomayajula Priority: Minor Attachments: 13376-v2.txt, HBASE-13376.patch, HBASE-13376_0.98.txt, HBASE-13376_0.txt, HBASE-13376_1.txt, HBASE-13376_1_1.txt, HBASE-13376_2_branch-1.patch, HBASE-13376_98.patch, HBASE-13376_branch-1.patch There are two things this jira tries to address: 1. The locality picker in the stochastic balancer does not pick regions with least locality as candidates for swap/move. So when any user configures locality cost in the configs, the balancer does not always seems to move regions with bad locality. 2. When a cluster has equal number of loaded regions, it always picks the first one. It should pick a random region on one of the equally loaded servers. This improves a chance of finding a good candidate, when load picker is invoked several times. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (HBASE-13376) Improvements to Stochastic load balancer
[ https://issues.apache.org/jira/browse/HBASE-13376?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Ted Yu updated HBASE-13376: --- Status: Patch Available (was: Open) Improvements to Stochastic load balancer Key: HBASE-13376 URL: https://issues.apache.org/jira/browse/HBASE-13376 Project: HBase Issue Type: Improvement Components: Balancer Affects Versions: 0.98.12, 1.0.0 Reporter: Vandana Ayyalasomayajula Assignee: Vandana Ayyalasomayajula Priority: Minor Attachments: 13376-v2.txt, HBASE-13376.patch, HBASE-13376_0.98.txt, HBASE-13376_0.txt, HBASE-13376_1.txt, HBASE-13376_1_1.txt, HBASE-13376_2.patch, HBASE-13376_2_branch-1.patch, HBASE-13376_98.patch, HBASE-13376_branch-1.patch There are two things this jira tries to address: 1. The locality picker in the stochastic balancer does not pick regions with least locality as candidates for swap/move. So when any user configures locality cost in the configs, the balancer does not always seems to move regions with bad locality. 2. When a cluster has equal number of loaded regions, it always picks the first one. It should pick a random region on one of the equally loaded servers. This improves a chance of finding a good candidate, when load picker is invoked several times. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-13889) hbase-shaded-client artifact is missing dependency (therefore, does not work)
[ https://issues.apache.org/jira/browse/HBASE-13889?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14680984#comment-14680984 ] Elliott Clark commented on HBASE-13889: --- Pretty sure that we are seeing: https://issues.apache.org/jira/browse/MSHADE-156 hbase-shaded-client artifact is missing dependency (therefore, does not work) - Key: HBASE-13889 URL: https://issues.apache.org/jira/browse/HBASE-13889 Project: HBase Issue Type: Bug Components: Client Affects Versions: 1.1.0, 1.1.0.1 Environment: N/A? Reporter: Dmitry Minkovsky Assignee: Elliott Clark Priority: Critical Fix For: 2.0.0, 1.3.0, 1.2.1, 1.1.3 Attachments: 13889.wip.patch, Screen Shot 2015-06-11 at 10.59.55 AM.png The {{hbase-shaded-client}} artifact was introduced in [HBASE-13517|https://issues.apache.org/jira/browse/HBASE-13517]. Thank you very much for this, as I am new to Java building and was having a very slow-moving time resolving conflicts. However, the shaded client artifact seems to be missing {{javax.xml.transform.TransformerException}}. I examined the JAR, which does not have this package/class. Steps to reproduce: Java: {code} package com.mycompany.app; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.client.Connection; import org.apache.hadoop.hbase.client.ConnectionFactory; public class App { public static void main( String[] args ) throws java.io.IOException { Configuration config = HBaseConfiguration.create(); Connection connection = ConnectionFactory.createConnection(config); } } {code} POM: {code} project xmlns=http://maven.apache.org/POM/4.0.0; xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance; xsi:schemaLocation=http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd; modelVersion4.0.0/modelVersion groupIdcom.mycompany.app/groupId artifactIdmy-app/artifactId version1.0-SNAPSHOT/version
[jira] [Updated] (HBASE-5878) Use getVisibleLength public api from HdfsDataInputStream from Hadoop-2.
[ https://issues.apache.org/jira/browse/HBASE-5878?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andrew Purtell updated HBASE-5878: -- Resolution: Fixed Hadoop Flags: Reviewed Fix Version/s: 1.1.2 1.2.0 1.0.2 0.98.14 Status: Resolved (was: Patch Available) Thanks. Pushed the v6 master patch to master, branch-1, and branch-1.2. Pushed the v1 branch-1.0 patch to branch-1.0 and branch-1.1. Pushed the v7 0.98 patch to 0.98 (checked Hadoop 1 and 2 builds). WAL unit tests pass all. Use getVisibleLength public api from HdfsDataInputStream from Hadoop-2. --- Key: HBASE-5878 URL: https://issues.apache.org/jira/browse/HBASE-5878 Project: HBase Issue Type: Bug Components: wal Reporter: Uma Maheswara Rao G Assignee: Ashish Singhi Fix For: 2.0.0, 0.98.14, 1.0.2, 1.2.0, 1.1.2, 1.3.0 Attachments: HBASE-5878-branch-1.0.patch, HBASE-5878-v2.patch, HBASE-5878-v3.patch, HBASE-5878-v4.patch, HBASE-5878-v5-0.98.patch, HBASE-5878-v5.patch, HBASE-5878-v5.patch, HBASE-5878-v6-0.98.patch, HBASE-5878-v6.patch, HBASE-5878-v7-0.98.patch, HBASE-5878.patch SequencFileLogReader: Currently Hbase using getFileLength api from DFSInputStream class by reflection. DFSInputStream is not exposed as public. So, this may change in future. Now HDFS exposed HdfsDataInputStream as public API. We can make use of it, when we are not able to find the getFileLength api from DFSInputStream as a else condition. So, that we will not have any sudden surprise like we are facing today. Also, it is just logging one warn message and proceeding if it throws any exception while getting the length. I think we can re-throw the exception because there is no point in continuing with dataloss. {code} long adjust = 0; try { Field fIn = FilterInputStream.class.getDeclaredField(in); fIn.setAccessible(true); Object realIn = fIn.get(this.in); // In hadoop 0.22, DFSInputStream is a standalone class. Before this, // it was an inner class of DFSClient. if (realIn.getClass().getName().endsWith(DFSInputStream)) { Method getFileLength = realIn.getClass(). getDeclaredMethod(getFileLength, new Class? []{}); getFileLength.setAccessible(true); long realLength = ((Long)getFileLength. invoke(realIn, new Object []{})).longValue(); assert(realLength = this.length); adjust = realLength - this.length; } else { LOG.info(Input stream class: + realIn.getClass().getName() + , not adjusting length); } } catch(Exception e) { SequenceFileLogReader.LOG.warn( Error while trying to get accurate file length. + Truncation / data loss may occur if RegionServers die., e); } return adjust + super.getPos(); {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-12911) Client-side metrics
[ https://issues.apache.org/jira/browse/HBASE-12911?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14680990#comment-14680990 ] Nick Dimiduk commented on HBASE-12911: -- Git fat-fingered an unintended push. Reverted. Sorry for the noise. Will post a WIP patch shortly. Client-side metrics --- Key: HBASE-12911 URL: https://issues.apache.org/jira/browse/HBASE-12911 Project: HBase Issue Type: Brainstorming Components: Client, Performance, Usability Reporter: Nick Dimiduk Assignee: Nick Dimiduk There's very little visibility into the hbase client. Folks who care to add some kind of metrics collection end up wrapping Table method invocations with {{System.currentTimeMillis()}}. For a crude example of this, have a look at what I did in {{PerformanceEvaluation}} for exposing requests latencies up to {{IntegrationTestRegionReplicaPerf}}. The client is quite complex, there's a lot going on under the hood that is impossible to see right now without a profiler. Being a crucial part of the performance of this distributed system, we should have deeper visibility into the client's function. I'm not sure that wiring into the hadoop metrics system is the right choice because the client is often embedded as a library in a user's application. We should have integration with our metrics tools so that, i.e., a client embedded in a coprocessor can report metrics through the usual RS channels, or a client used in a MR job can do the same. I would propose an interface-based system with pluggable implementations. Out of the box we'd include a hadoop-metrics implementation and one other, possibly [dropwizard/metrics|https://github.com/dropwizard/metrics]. Thoughts? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (HBASE-14202) Reduce garbage we create
Anoop Sam John created HBASE-14202: -- Summary: Reduce garbage we create Key: HBASE-14202 URL: https://issues.apache.org/jira/browse/HBASE-14202 Project: HBase Issue Type: Sub-task Affects Versions: 2.0.0 Reporter: Anoop Sam John Assignee: Anoop Sam John Fix For: 2.0.0 2 optimizations wrt no# short living objects we create 1. IOEngine#read call to read from L2 cache is always creating a Pair object to return the BB and MemoryType. We can avoid this by making the read API to return a Cacheable. Pass the CacheableDeserializer, to be used, also to the read API. Setter for MemoryType is already there in Cacheable interface. 2. ByteBuff#asSubByteBuffer(int, int, Pair) avoids Pair object creation every time as we pass the shared Pair object. Still as pair can take only Objects, the primitive int has to be boxed into an Integer object every time. This can be avoided by creating a new Pair type which is a pair of an Object and a primitive int. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (HBASE-14202) Reduce garbage we create
[ https://issues.apache.org/jira/browse/HBASE-14202?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Anoop Sam John updated HBASE-14202: --- Attachment: HBASE-14202.patch Simpler patch. Ping [~ram_krish], [~stack] Reduce garbage we create Key: HBASE-14202 URL: https://issues.apache.org/jira/browse/HBASE-14202 Project: HBase Issue Type: Sub-task Components: regionserver, Scanners Affects Versions: 2.0.0 Reporter: Anoop Sam John Assignee: Anoop Sam John Fix For: 2.0.0 Attachments: HBASE-14202.patch 2 optimizations wrt no# short living objects we create 1. IOEngine#read call to read from L2 cache is always creating a Pair object to return the BB and MemoryType. We can avoid this by making the read API to return a Cacheable. Pass the CacheableDeserializer, to be used, also to the read API. Setter for MemoryType is already there in Cacheable interface. 2. ByteBuff#asSubByteBuffer(int, int, Pair) avoids Pair object creation every time as we pass the shared Pair object. Still as pair can take only Objects, the primitive int has to be boxed into an Integer object every time. This can be avoided by creating a new Pair type which is a pair of an Object and a primitive int. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-5878) Use getVisibleLength public api from HdfsDataInputStream from Hadoop-2.
[ https://issues.apache.org/jira/browse/HBASE-5878?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14681196#comment-14681196 ] Hudson commented on HBASE-5878: --- FAILURE: Integrated in HBase-TRUNK #6712 (See [https://builds.apache.org/job/HBase-TRUNK/6712/]) HBASE-5878 Use getVisibleLength public api from HdfsDataInputStream from Hadoop-2. (apurtell: rev 6e8cdec242b6c40c09601982bad0a79a569e66c4) * hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/SequenceFileLogReader.java Use getVisibleLength public api from HdfsDataInputStream from Hadoop-2. --- Key: HBASE-5878 URL: https://issues.apache.org/jira/browse/HBASE-5878 Project: HBase Issue Type: Bug Components: wal Reporter: Uma Maheswara Rao G Assignee: Ashish Singhi Fix For: 2.0.0, 0.98.14, 1.0.2, 1.2.0, 1.1.2, 1.3.0 Attachments: HBASE-5878-branch-1.0.patch, HBASE-5878-v2.patch, HBASE-5878-v3.patch, HBASE-5878-v4.patch, HBASE-5878-v5-0.98.patch, HBASE-5878-v5.patch, HBASE-5878-v5.patch, HBASE-5878-v6-0.98.patch, HBASE-5878-v6.patch, HBASE-5878-v7-0.98.patch, HBASE-5878.patch SequencFileLogReader: Currently Hbase using getFileLength api from DFSInputStream class by reflection. DFSInputStream is not exposed as public. So, this may change in future. Now HDFS exposed HdfsDataInputStream as public API. We can make use of it, when we are not able to find the getFileLength api from DFSInputStream as a else condition. So, that we will not have any sudden surprise like we are facing today. Also, it is just logging one warn message and proceeding if it throws any exception while getting the length. I think we can re-throw the exception because there is no point in continuing with dataloss. {code} long adjust = 0; try { Field fIn = FilterInputStream.class.getDeclaredField(in); fIn.setAccessible(true); Object realIn = fIn.get(this.in); // In hadoop 0.22, DFSInputStream is a standalone class. Before this, // it was an inner class of DFSClient. if (realIn.getClass().getName().endsWith(DFSInputStream)) { Method getFileLength = realIn.getClass(). getDeclaredMethod(getFileLength, new Class? []{}); getFileLength.setAccessible(true); long realLength = ((Long)getFileLength. invoke(realIn, new Object []{})).longValue(); assert(realLength = this.length); adjust = realLength - this.length; } else { LOG.info(Input stream class: + realIn.getClass().getName() + , not adjusting length); } } catch(Exception e) { SequenceFileLogReader.LOG.warn( Error while trying to get accurate file length. + Truncation / data loss may occur if RegionServers die., e); } return adjust + super.getPos(); {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-12911) Client-side metrics
[ https://issues.apache.org/jira/browse/HBASE-12911?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14681193#comment-14681193 ] Hudson commented on HBASE-12911: FAILURE: Integrated in HBase-TRUNK #6712 (See [https://builds.apache.org/job/HBase-TRUNK/6712/]) HBASE-12911 Client-side metrics (ndimiduk: rev 06989fd1f936f905a94e6e98e462ba72704d05c4) * hbase-client/src/main/java/org/apache/hadoop/hbase/client/ConnectionImplementation.java * hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/client/MetricsConnectionWrapper.java * hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/client/MetricsConnectionSource.java * hbase-client/src/main/java/org/apache/hadoop/hbase/client/Connection.java * hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/client/MetricsConnectionSourceFactory.java * hbase-client/src/main/java/org/apache/hadoop/hbase/client/ConnectionAdapter.java * hbase-client/pom.xml * hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/client/MetricsConnectionSourceFactoryImpl.java * hbase-client/src/main/java/org/apache/hadoop/hbase/client/MetricsConnectionWrapperImpl.java * hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/client/MetricsConnectionSourceImpl.java * hbase-client/src/main/java/org/apache/hadoop/hbase/client/MetaCache.java * hbase-hadoop2-compat/src/main/resources/META-INF/services/org.apache.hadoop.hbase.client.MetricsConnectionSourceFactory * hbase-client/src/main/java/org/apache/hadoop/hbase/client/MetricsConnection.java Revert HBASE-12911 Client-side metrics (ndimiduk: rev e4106b4c4a3b762e5c9c2b35adf3e048a3ab3b2d) * hbase-hadoop2-compat/src/main/resources/META-INF/services/org.apache.hadoop.hbase.client.MetricsConnectionSourceFactory * hbase-client/src/main/java/org/apache/hadoop/hbase/client/ConnectionAdapter.java * hbase-client/pom.xml * hbase-client/src/main/java/org/apache/hadoop/hbase/client/Connection.java * hbase-client/src/main/java/org/apache/hadoop/hbase/client/MetaCache.java * hbase-client/src/main/java/org/apache/hadoop/hbase/client/ConnectionImplementation.java * hbase-client/src/main/java/org/apache/hadoop/hbase/client/MetricsConnectionWrapperImpl.java * hbase-client/src/main/java/org/apache/hadoop/hbase/client/MetricsConnection.java * hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/client/MetricsConnectionSource.java * hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/client/MetricsConnectionWrapper.java * hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/client/MetricsConnectionSourceImpl.java * hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/client/MetricsConnectionSourceFactoryImpl.java * hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/client/MetricsConnectionSourceFactory.java Client-side metrics --- Key: HBASE-12911 URL: https://issues.apache.org/jira/browse/HBASE-12911 Project: HBase Issue Type: Brainstorming Components: Client, Performance, Usability Reporter: Nick Dimiduk Assignee: Nick Dimiduk There's very little visibility into the hbase client. Folks who care to add some kind of metrics collection end up wrapping Table method invocations with {{System.currentTimeMillis()}}. For a crude example of this, have a look at what I did in {{PerformanceEvaluation}} for exposing requests latencies up to {{IntegrationTestRegionReplicaPerf}}. The client is quite complex, there's a lot going on under the hood that is impossible to see right now without a profiler. Being a crucial part of the performance of this distributed system, we should have deeper visibility into the client's function. I'm not sure that wiring into the hadoop metrics system is the right choice because the client is often embedded as a library in a user's application. We should have integration with our metrics tools so that, i.e., a client embedded in a coprocessor can report metrics through the usual RS channels, or a client used in a MR job can do the same. I would propose an interface-based system with pluggable implementations. Out of the box we'd include a hadoop-metrics implementation and one other, possibly [dropwizard/metrics|https://github.com/dropwizard/metrics]. Thoughts? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-14194) Undeprecate methods in ThriftServerRunner.HBaseHandler
[ https://issues.apache.org/jira/browse/HBASE-14194?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14681199#comment-14681199 ] Hudson commented on HBASE-14194: FAILURE: Integrated in HBase-1.2 #99 (See [https://builds.apache.org/job/HBase-1.2/99/]) HBASE-14194 Undeprecate methods in ThriftServerRunner.HBaseHandler (apurtell: rev 323e48adab37926c982fac9cc7427beb0999d8fb) * hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/ThriftServerRunner.java Undeprecate methods in ThriftServerRunner.HBaseHandler -- Key: HBASE-14194 URL: https://issues.apache.org/jira/browse/HBASE-14194 Project: HBase Issue Type: Improvement Reporter: Lars Francke Assignee: Lars Francke Priority: Trivial Fix For: 2.0.0, 1.2.0, 1.3.0 Attachments: HBASE-14194.patch The methods {{get}}, {{getVer}}, {{getVerTs}}, {{atomicIncrement}} were deprecated back in HBASE-1304. My guess is this was because it wasn't distinguishing between column family and column qualifier but I'm not sure. Either way it's been in there for six years without documentation or a deprecation at the interface level so it adds to my confusion and I'll attach a patch to remove the deprecations. I guess at one point the whole old Thrift server will be deprecated. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-5878) Use getVisibleLength public api from HdfsDataInputStream from Hadoop-2.
[ https://issues.apache.org/jira/browse/HBASE-5878?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14681201#comment-14681201 ] Hudson commented on HBASE-5878: --- FAILURE: Integrated in HBase-1.2 #99 (See [https://builds.apache.org/job/HBase-1.2/99/]) HBASE-5878 Use getVisibleLength public api from HdfsDataInputStream from Hadoop-2. (apurtell: rev 7f33e6330a37b0401c2f9143ddbea67361217453) * hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/SequenceFileLogReader.java Use getVisibleLength public api from HdfsDataInputStream from Hadoop-2. --- Key: HBASE-5878 URL: https://issues.apache.org/jira/browse/HBASE-5878 Project: HBase Issue Type: Bug Components: wal Reporter: Uma Maheswara Rao G Assignee: Ashish Singhi Fix For: 2.0.0, 0.98.14, 1.0.2, 1.2.0, 1.1.2, 1.3.0 Attachments: HBASE-5878-branch-1.0.patch, HBASE-5878-v2.patch, HBASE-5878-v3.patch, HBASE-5878-v4.patch, HBASE-5878-v5-0.98.patch, HBASE-5878-v5.patch, HBASE-5878-v5.patch, HBASE-5878-v6-0.98.patch, HBASE-5878-v6.patch, HBASE-5878-v7-0.98.patch, HBASE-5878.patch SequencFileLogReader: Currently Hbase using getFileLength api from DFSInputStream class by reflection. DFSInputStream is not exposed as public. So, this may change in future. Now HDFS exposed HdfsDataInputStream as public API. We can make use of it, when we are not able to find the getFileLength api from DFSInputStream as a else condition. So, that we will not have any sudden surprise like we are facing today. Also, it is just logging one warn message and proceeding if it throws any exception while getting the length. I think we can re-throw the exception because there is no point in continuing with dataloss. {code} long adjust = 0; try { Field fIn = FilterInputStream.class.getDeclaredField(in); fIn.setAccessible(true); Object realIn = fIn.get(this.in); // In hadoop 0.22, DFSInputStream is a standalone class. Before this, // it was an inner class of DFSClient. if (realIn.getClass().getName().endsWith(DFSInputStream)) { Method getFileLength = realIn.getClass(). getDeclaredMethod(getFileLength, new Class? []{}); getFileLength.setAccessible(true); long realLength = ((Long)getFileLength. invoke(realIn, new Object []{})).longValue(); assert(realLength = this.length); adjust = realLength - this.length; } else { LOG.info(Input stream class: + realIn.getClass().getName() + , not adjusting length); } } catch(Exception e) { SequenceFileLogReader.LOG.warn( Error while trying to get accurate file length. + Truncation / data loss may occur if RegionServers die., e); } return adjust + super.getPos(); {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (HBASE-14203) remove duplicate code getTableDescriptor in HTable
[ https://issues.apache.org/jira/browse/HBASE-14203?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Heng Chen updated HBASE-14203: -- Attachment: HBASE-14203.patch remove duplicate code getTableDescriptor in HTable -- Key: HBASE-14203 URL: https://issues.apache.org/jira/browse/HBASE-14203 Project: HBase Issue Type: Improvement Reporter: Heng Chen Priority: Trivial Attachments: HBASE-14203.patch As TODO in comment said, {{HTable.getTableDescriptor}} is same as {{HAdmin.getTableDescriptor}}. remove the duplicate code. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (HBASE-14203) remove duplicate code getTableDescriptor in HTable
[ https://issues.apache.org/jira/browse/HBASE-14203?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Heng Chen updated HBASE-14203: -- Status: Patch Available (was: Open) remove duplicate code getTableDescriptor in HTable -- Key: HBASE-14203 URL: https://issues.apache.org/jira/browse/HBASE-14203 Project: HBase Issue Type: Improvement Reporter: Heng Chen Priority: Trivial Attachments: HBASE-14203.patch As TODO in comment said, {{HTable.getTableDescriptor}} is same as {{HAdmin.getTableDescriptor}}. remove the duplicate code. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-14202) Reduce garbage we create
[ https://issues.apache.org/jira/browse/HBASE-14202?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14681209#comment-14681209 ] stack commented on HBASE-14202: --- The return of Cacheable is a nice one. The Object/int pair is ugly but confined and +1 on less object creation. +1 if hadoopqa says it good. Reduce garbage we create Key: HBASE-14202 URL: https://issues.apache.org/jira/browse/HBASE-14202 Project: HBase Issue Type: Sub-task Components: regionserver, Scanners Affects Versions: 2.0.0 Reporter: Anoop Sam John Assignee: Anoop Sam John Fix For: 2.0.0 Attachments: HBASE-14202.patch 2 optimizations wrt no# short living objects we create 1. IOEngine#read call to read from L2 cache is always creating a Pair object to return the BB and MemoryType. We can avoid this by making the read API to return a Cacheable. Pass the CacheableDeserializer, to be used, also to the read API. Setter for MemoryType is already there in Cacheable interface. 2. ByteBuff#asSubByteBuffer(int, int, Pair) avoids Pair object creation every time as we pass the shared Pair object. Still as pair can take only Objects, the primitive int has to be boxed into an Integer object every time. This can be avoided by creating a new Pair type which is a pair of an Object and a primitive int. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-13376) Improvements to Stochastic load balancer
[ https://issues.apache.org/jira/browse/HBASE-13376?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14681220#comment-14681220 ] Hadoop QA commented on HBASE-13376: --- {color:red}-1 overall{color}. Here are the results of testing the latest attachment http://issues.apache.org/jira/secure/attachment/12749727/HBASE-13376_3.patch against master branch at commit 3d5801602da7cde1f20bdd4b898e8b3cac77f2a3. ATTACHMENT ID: 12749727 {color:green}+1 @author{color}. The patch does not contain any @author tags. {color:green}+1 tests included{color}. The patch appears to include 3 new or modified tests. {color:green}+1 hadoop versions{color}. The patch compiles with all supported hadoop versions (2.4.0 2.4.1 2.5.0 2.5.1 2.5.2 2.6.0 2.7.0) {color:green}+1 javac{color}. The applied patch does not increase the total number of javac compiler warnings. {color:green}+1 protoc{color}. The applied patch does not increase the total number of protoc compiler warnings. {color:green}+1 javadoc{color}. The javadoc tool did not generate any warning messages. {color:green}+1 checkstyle{color}. The applied patch does not increase the total number of checkstyle errors {color:green}+1 findbugs{color}. The patch does not introduce any new Findbugs (version 2.0.3) warnings. {color:green}+1 release audit{color}. The applied patch does not increase the total number of release audit warnings. {color:green}+1 lineLengths{color}. The patch does not introduce lines longer than 100 {color:green}+1 site{color}. The mvn post-site goal succeeds with this patch. {color:red}-1 core tests{color}. The patch failed these unit tests: Test results: https://builds.apache.org/job/PreCommit-HBASE-Build/15036//testReport/ Release Findbugs (version 2.0.3)warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/15036//artifact/patchprocess/newFindbugsWarnings.html Checkstyle Errors: https://builds.apache.org/job/PreCommit-HBASE-Build/15036//artifact/patchprocess/checkstyle-aggregate.html Console output: https://builds.apache.org/job/PreCommit-HBASE-Build/15036//console This message is automatically generated. Improvements to Stochastic load balancer Key: HBASE-13376 URL: https://issues.apache.org/jira/browse/HBASE-13376 Project: HBase Issue Type: Improvement Components: Balancer Affects Versions: 1.0.0, 0.98.12 Reporter: Vandana Ayyalasomayajula Assignee: Vandana Ayyalasomayajula Priority: Minor Attachments: 13376-v2.txt, HBASE-13376.patch, HBASE-13376_0.98.txt, HBASE-13376_0.txt, HBASE-13376_1.txt, HBASE-13376_1_1.txt, HBASE-13376_2.patch, HBASE-13376_2_branch-1.patch, HBASE-13376_3.patch, HBASE-13376_98.patch, HBASE-13376_branch-1.patch There are two things this jira tries to address: 1. The locality picker in the stochastic balancer does not pick regions with least locality as candidates for swap/move. So when any user configures locality cost in the configs, the balancer does not always seems to move regions with bad locality. 2. When a cluster has equal number of loaded regions, it always picks the first one. It should pick a random region on one of the equally loaded servers. This improves a chance of finding a good candidate, when load picker is invoked several times. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-5878) Use getVisibleLength public api from HdfsDataInputStream from Hadoop-2.
[ https://issues.apache.org/jira/browse/HBASE-5878?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14681115#comment-14681115 ] Hudson commented on HBASE-5878: --- FAILURE: Integrated in HBase-1.3 #99 (See [https://builds.apache.org/job/HBase-1.3/99/]) HBASE-5878 Use getVisibleLength public api from HdfsDataInputStream from Hadoop-2. (apurtell: rev 0862abd6599a6936fb8079f4c70afc660175ba11) * hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/SequenceFileLogReader.java Use getVisibleLength public api from HdfsDataInputStream from Hadoop-2. --- Key: HBASE-5878 URL: https://issues.apache.org/jira/browse/HBASE-5878 Project: HBase Issue Type: Bug Components: wal Reporter: Uma Maheswara Rao G Assignee: Ashish Singhi Fix For: 2.0.0, 0.98.14, 1.0.2, 1.2.0, 1.1.2, 1.3.0 Attachments: HBASE-5878-branch-1.0.patch, HBASE-5878-v2.patch, HBASE-5878-v3.patch, HBASE-5878-v4.patch, HBASE-5878-v5-0.98.patch, HBASE-5878-v5.patch, HBASE-5878-v5.patch, HBASE-5878-v6-0.98.patch, HBASE-5878-v6.patch, HBASE-5878-v7-0.98.patch, HBASE-5878.patch SequencFileLogReader: Currently Hbase using getFileLength api from DFSInputStream class by reflection. DFSInputStream is not exposed as public. So, this may change in future. Now HDFS exposed HdfsDataInputStream as public API. We can make use of it, when we are not able to find the getFileLength api from DFSInputStream as a else condition. So, that we will not have any sudden surprise like we are facing today. Also, it is just logging one warn message and proceeding if it throws any exception while getting the length. I think we can re-throw the exception because there is no point in continuing with dataloss. {code} long adjust = 0; try { Field fIn = FilterInputStream.class.getDeclaredField(in); fIn.setAccessible(true); Object realIn = fIn.get(this.in); // In hadoop 0.22, DFSInputStream is a standalone class. Before this, // it was an inner class of DFSClient. if (realIn.getClass().getName().endsWith(DFSInputStream)) { Method getFileLength = realIn.getClass(). getDeclaredMethod(getFileLength, new Class? []{}); getFileLength.setAccessible(true); long realLength = ((Long)getFileLength. invoke(realIn, new Object []{})).longValue(); assert(realLength = this.length); adjust = realLength - this.length; } else { LOG.info(Input stream class: + realIn.getClass().getName() + , not adjusting length); } } catch(Exception e) { SequenceFileLogReader.LOG.warn( Error while trying to get accurate file length. + Truncation / data loss may occur if RegionServers die., e); } return adjust + super.getPos(); {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-13376) Improvements to Stochastic load balancer
[ https://issues.apache.org/jira/browse/HBASE-13376?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14681123#comment-14681123 ] Hadoop QA commented on HBASE-13376: --- {color:red}-1 overall{color}. Here are the results of testing the latest attachment http://issues.apache.org/jira/secure/attachment/12749720/HBASE-13376_2.patch against master branch at commit ae35f65e9ac12256b4514e6ba6ef5333e9e90870. ATTACHMENT ID: 12749720 {color:green}+1 @author{color}. The patch does not contain any @author tags. {color:green}+1 tests included{color}. The patch appears to include 3 new or modified tests. {color:green}+1 hadoop versions{color}. The patch compiles with all supported hadoop versions (2.4.0 2.4.1 2.5.0 2.5.1 2.5.2 2.6.0 2.7.0) {color:green}+1 javac{color}. The applied patch does not increase the total number of javac compiler warnings. {color:green}+1 protoc{color}. The applied patch does not increase the total number of protoc compiler warnings. {color:green}+1 javadoc{color}. The javadoc tool did not generate any warning messages. {color:green}+1 checkstyle{color}. The applied patch does not increase the total number of checkstyle errors {color:green}+1 findbugs{color}. The patch does not introduce any new Findbugs (version 2.0.3) warnings. {color:green}+1 release audit{color}. The applied patch does not increase the total number of release audit warnings. {color:green}+1 lineLengths{color}. The patch does not introduce lines longer than 100 {color:green}+1 site{color}. The mvn post-site goal succeeds with this patch. {color:red}-1 core tests{color}. The patch failed these unit tests: {color:red}-1 core zombie tests{color}. There are 1 zombie test(s): at org.apache.hadoop.hbase.mapreduce.TestImportExport.testDurability(TestImportExport.java:639) Test results: https://builds.apache.org/job/PreCommit-HBASE-Build/15035//testReport/ Release Findbugs (version 2.0.3)warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/15035//artifact/patchprocess/newFindbugsWarnings.html Checkstyle Errors: https://builds.apache.org/job/PreCommit-HBASE-Build/15035//artifact/patchprocess/checkstyle-aggregate.html Console output: https://builds.apache.org/job/PreCommit-HBASE-Build/15035//console This message is automatically generated. Improvements to Stochastic load balancer Key: HBASE-13376 URL: https://issues.apache.org/jira/browse/HBASE-13376 Project: HBase Issue Type: Improvement Components: Balancer Affects Versions: 1.0.0, 0.98.12 Reporter: Vandana Ayyalasomayajula Assignee: Vandana Ayyalasomayajula Priority: Minor Attachments: 13376-v2.txt, HBASE-13376.patch, HBASE-13376_0.98.txt, HBASE-13376_0.txt, HBASE-13376_1.txt, HBASE-13376_1_1.txt, HBASE-13376_2.patch, HBASE-13376_2_branch-1.patch, HBASE-13376_3.patch, HBASE-13376_98.patch, HBASE-13376_branch-1.patch There are two things this jira tries to address: 1. The locality picker in the stochastic balancer does not pick regions with least locality as candidates for swap/move. So when any user configures locality cost in the configs, the balancer does not always seems to move regions with bad locality. 2. When a cluster has equal number of loaded regions, it always picks the first one. It should pick a random region on one of the equally loaded servers. This improves a chance of finding a good candidate, when load picker is invoked several times. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-5878) Use getVisibleLength public api from HdfsDataInputStream from Hadoop-2.
[ https://issues.apache.org/jira/browse/HBASE-5878?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14681135#comment-14681135 ] Hudson commented on HBASE-5878: --- FAILURE: Integrated in HBase-1.1 #605 (See [https://builds.apache.org/job/HBase-1.1/605/]) HBASE-5878 Use getVisibleLength public api from HdfsDataInputStream from Hadoop 2 (apurtell: rev 22b96831584d44a63c71c5366f372622d13fd9b4) * hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/SequenceFileLogReader.java Use getVisibleLength public api from HdfsDataInputStream from Hadoop-2. --- Key: HBASE-5878 URL: https://issues.apache.org/jira/browse/HBASE-5878 Project: HBase Issue Type: Bug Components: wal Reporter: Uma Maheswara Rao G Assignee: Ashish Singhi Fix For: 2.0.0, 0.98.14, 1.0.2, 1.2.0, 1.1.2, 1.3.0 Attachments: HBASE-5878-branch-1.0.patch, HBASE-5878-v2.patch, HBASE-5878-v3.patch, HBASE-5878-v4.patch, HBASE-5878-v5-0.98.patch, HBASE-5878-v5.patch, HBASE-5878-v5.patch, HBASE-5878-v6-0.98.patch, HBASE-5878-v6.patch, HBASE-5878-v7-0.98.patch, HBASE-5878.patch SequencFileLogReader: Currently Hbase using getFileLength api from DFSInputStream class by reflection. DFSInputStream is not exposed as public. So, this may change in future. Now HDFS exposed HdfsDataInputStream as public API. We can make use of it, when we are not able to find the getFileLength api from DFSInputStream as a else condition. So, that we will not have any sudden surprise like we are facing today. Also, it is just logging one warn message and proceeding if it throws any exception while getting the length. I think we can re-throw the exception because there is no point in continuing with dataloss. {code} long adjust = 0; try { Field fIn = FilterInputStream.class.getDeclaredField(in); fIn.setAccessible(true); Object realIn = fIn.get(this.in); // In hadoop 0.22, DFSInputStream is a standalone class. Before this, // it was an inner class of DFSClient. if (realIn.getClass().getName().endsWith(DFSInputStream)) { Method getFileLength = realIn.getClass(). getDeclaredMethod(getFileLength, new Class? []{}); getFileLength.setAccessible(true); long realLength = ((Long)getFileLength. invoke(realIn, new Object []{})).longValue(); assert(realLength = this.length); adjust = realLength - this.length; } else { LOG.info(Input stream class: + realIn.getClass().getName() + , not adjusting length); } } catch(Exception e) { SequenceFileLogReader.LOG.warn( Error while trying to get accurate file length. + Truncation / data loss may occur if RegionServers die., e); } return adjust + super.getPos(); {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-14197) TestRegionServerHostname#testInvalidRegionServerHostnameAbortsServer fails in Jenkins
[ https://issues.apache.org/jira/browse/HBASE-14197?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14681139#comment-14681139 ] Hudson commented on HBASE-14197: FAILURE: Integrated in HBase-1.1 #606 (See [https://builds.apache.org/job/HBase-1.1/606/]) HBASE-14197 TestRegionServerHostname#testInvalidRegionServerHostnameAbortsServer fails in Jenkins (apurtell: rev 111620f5c9f999cfac78936a8ddb550abf3164c5) * hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionServerHostname.java TestRegionServerHostname#testInvalidRegionServerHostnameAbortsServer fails in Jenkins - Key: HBASE-14197 URL: https://issues.apache.org/jira/browse/HBASE-14197 Project: HBase Issue Type: Test Reporter: Ted Yu Assignee: Ted Yu Priority: Minor Fix For: 2.0.0, 1.2.0, 1.1.2, 1.3.0 Attachments: 14197-v1.txt, 14197-v2.txt The following test failure can be observed in various recent Jenkins builds: {code} testInvalidRegionServerHostnameAbortsServer(org.apache.hadoop.hbase.regionserver.TestRegionServerHostname) Time elapsed: 9.344 sec FAILURE! java.lang.AssertionError: null at org.junit.Assert.fail(Assert.java:86) at org.junit.Assert.assertTrue(Assert.java:41) at org.junit.Assert.assertTrue(Assert.java:52) at org.apache.hadoop.hbase.regionserver.TestRegionServerHostname.testInvalidRegionServerHostnameAbortsServer(TestRegionServerHostname.java:65) {code} The test inspects exception message and looks for specific sentence, making it vulnerable to environment changes. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (HBASE-5878) Use getVisibleLength public api from HdfsDataInputStream from Hadoop-2.
[ https://issues.apache.org/jira/browse/HBASE-5878?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andrew Purtell updated HBASE-5878: -- Fix Version/s: 0.98.14 Use getVisibleLength public api from HdfsDataInputStream from Hadoop-2. --- Key: HBASE-5878 URL: https://issues.apache.org/jira/browse/HBASE-5878 Project: HBase Issue Type: Bug Components: wal Reporter: Uma Maheswara Rao G Assignee: Ashish Singhi Fix For: 2.0.0, 0.98.14, 1.0.2, 1.2.0, 1.1.2, 1.3.0 Attachments: HBASE-5878-branch-1.0.patch, HBASE-5878-v2.patch, HBASE-5878-v3.patch, HBASE-5878-v4.patch, HBASE-5878-v5-0.98.patch, HBASE-5878-v5.patch, HBASE-5878-v5.patch, HBASE-5878-v6-0.98.patch, HBASE-5878-v6.patch, HBASE-5878-v7-0.98.patch, HBASE-5878.patch SequencFileLogReader: Currently Hbase using getFileLength api from DFSInputStream class by reflection. DFSInputStream is not exposed as public. So, this may change in future. Now HDFS exposed HdfsDataInputStream as public API. We can make use of it, when we are not able to find the getFileLength api from DFSInputStream as a else condition. So, that we will not have any sudden surprise like we are facing today. Also, it is just logging one warn message and proceeding if it throws any exception while getting the length. I think we can re-throw the exception because there is no point in continuing with dataloss. {code} long adjust = 0; try { Field fIn = FilterInputStream.class.getDeclaredField(in); fIn.setAccessible(true); Object realIn = fIn.get(this.in); // In hadoop 0.22, DFSInputStream is a standalone class. Before this, // it was an inner class of DFSClient. if (realIn.getClass().getName().endsWith(DFSInputStream)) { Method getFileLength = realIn.getClass(). getDeclaredMethod(getFileLength, new Class? []{}); getFileLength.setAccessible(true); long realLength = ((Long)getFileLength. invoke(realIn, new Object []{})).longValue(); assert(realLength = this.length); adjust = realLength - this.length; } else { LOG.info(Input stream class: + realIn.getClass().getName() + , not adjusting length); } } catch(Exception e) { SequenceFileLogReader.LOG.warn( Error while trying to get accurate file length. + Truncation / data loss may occur if RegionServers die., e); } return adjust + super.getPos(); {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-5878) Use getVisibleLength public api from HdfsDataInputStream from Hadoop-2.
[ https://issues.apache.org/jira/browse/HBASE-5878?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14681004#comment-14681004 ] Andrew Purtell commented on HBASE-5878: --- I reverted the 0.98 patch from 0.98 and applied the branch-1.0 patch there instead, so the result here is the new changes from branch-1.2 and up, only the one line change to rethrow an exception if we fail to read the file length from branch-1.1 back. I think that's a good outcome. Use getVisibleLength public api from HdfsDataInputStream from Hadoop-2. --- Key: HBASE-5878 URL: https://issues.apache.org/jira/browse/HBASE-5878 Project: HBase Issue Type: Bug Components: wal Reporter: Uma Maheswara Rao G Assignee: Ashish Singhi Fix For: 2.0.0, 0.98.14, 1.0.2, 1.2.0, 1.1.2, 1.3.0 Attachments: HBASE-5878-branch-1.0.patch, HBASE-5878-v2.patch, HBASE-5878-v3.patch, HBASE-5878-v4.patch, HBASE-5878-v5-0.98.patch, HBASE-5878-v5.patch, HBASE-5878-v5.patch, HBASE-5878-v6-0.98.patch, HBASE-5878-v6.patch, HBASE-5878-v7-0.98.patch, HBASE-5878.patch SequencFileLogReader: Currently Hbase using getFileLength api from DFSInputStream class by reflection. DFSInputStream is not exposed as public. So, this may change in future. Now HDFS exposed HdfsDataInputStream as public API. We can make use of it, when we are not able to find the getFileLength api from DFSInputStream as a else condition. So, that we will not have any sudden surprise like we are facing today. Also, it is just logging one warn message and proceeding if it throws any exception while getting the length. I think we can re-throw the exception because there is no point in continuing with dataloss. {code} long adjust = 0; try { Field fIn = FilterInputStream.class.getDeclaredField(in); fIn.setAccessible(true); Object realIn = fIn.get(this.in); // In hadoop 0.22, DFSInputStream is a standalone class. Before this, // it was an inner class of DFSClient. if (realIn.getClass().getName().endsWith(DFSInputStream)) { Method getFileLength = realIn.getClass(). getDeclaredMethod(getFileLength, new Class? []{}); getFileLength.setAccessible(true); long realLength = ((Long)getFileLength. invoke(realIn, new Object []{})).longValue(); assert(realLength = this.length); adjust = realLength - this.length; } else { LOG.info(Input stream class: + realIn.getClass().getName() + , not adjusting length); } } catch(Exception e) { SequenceFileLogReader.LOG.warn( Error while trying to get accurate file length. + Truncation / data loss may occur if RegionServers die., e); } return adjust + super.getPos(); {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Assigned] (HBASE-8963) Add configuration option to skip HFile archiving
[ https://issues.apache.org/jira/browse/HBASE-8963?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andrew Purtell reassigned HBASE-8963: - Assignee: Ted Yu (was: bharath v) This has been stalled for a while, I think its okay for you to take it. Let us know if otherwise [~bharathv] Add configuration option to skip HFile archiving Key: HBASE-8963 URL: https://issues.apache.org/jira/browse/HBASE-8963 Project: HBase Issue Type: Improvement Reporter: Ted Yu Assignee: Ted Yu Fix For: 2.0.0 Attachments: HBASE-8963.trunk.v1.patch, HBASE-8963.trunk.v2.patch, HBASE-8963.trunk.v3.patch, HBASE-8963.trunk.v4.patch, HBASE-8963.trunk.v5.patch, HBASE-8963.trunk.v6.patch, HBASE-8963.trunk.v7.patch, HBASE-8963.trunk.v8.patch, HBASE-8963.trunk.v9.patch Currently HFileArchiver is always called when a table is dropped. A configuration option (either global or per table) should be provided so that archiving can be skipped when table is deleted. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-14194) Undeprecate methods in ThriftServerRunner.HBaseHandler
[ https://issues.apache.org/jira/browse/HBASE-14194?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14681012#comment-14681012 ] Andrew Purtell commented on HBASE-14194: +1 Applied to branch-1.2 and up. Undeprecate methods in ThriftServerRunner.HBaseHandler -- Key: HBASE-14194 URL: https://issues.apache.org/jira/browse/HBASE-14194 Project: HBase Issue Type: Improvement Reporter: Lars Francke Assignee: Lars Francke Priority: Trivial Fix For: 2.0.0, 1.2.0, 1.3.0 Attachments: HBASE-14194.patch The methods {{get}}, {{getVer}}, {{getVerTs}}, {{atomicIncrement}} were deprecated back in HBASE-1304. My guess is this was because it wasn't distinguishing between column family and column qualifier but I'm not sure. Either way it's been in there for six years without documentation or a deprecation at the interface level so it adds to my confusion and I'll attach a patch to remove the deprecations. I guess at one point the whole old Thrift server will be deprecated. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (HBASE-14194) Undeprecate methods in ThriftServerRunner.HBaseHandler
[ https://issues.apache.org/jira/browse/HBASE-14194?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andrew Purtell updated HBASE-14194: --- Resolution: Fixed Hadoop Flags: Reviewed Fix Version/s: 1.3.0 1.2.0 2.0.0 Status: Resolved (was: Patch Available) Undeprecate methods in ThriftServerRunner.HBaseHandler -- Key: HBASE-14194 URL: https://issues.apache.org/jira/browse/HBASE-14194 Project: HBase Issue Type: Improvement Reporter: Lars Francke Assignee: Lars Francke Priority: Trivial Fix For: 2.0.0, 1.2.0, 1.3.0 Attachments: HBASE-14194.patch The methods {{get}}, {{getVer}}, {{getVerTs}}, {{atomicIncrement}} were deprecated back in HBASE-1304. My guess is this was because it wasn't distinguishing between column family and column qualifier but I'm not sure. Either way it's been in there for six years without documentation or a deprecation at the interface level so it adds to my confusion and I'll attach a patch to remove the deprecations. I guess at one point the whole old Thrift server will be deprecated. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (HBASE-14181) Add Spark DataFrame DataSource to HBase-Spark Module
[ https://issues.apache.org/jira/browse/HBASE-14181?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Ted Malaska updated HBASE-14181: Attachment: HBASE-14181.3.patch Forgot the pushDownFilter file Add Spark DataFrame DataSource to HBase-Spark Module Key: HBASE-14181 URL: https://issues.apache.org/jira/browse/HBASE-14181 Project: HBase Issue Type: New Feature Components: spark Reporter: Ted Malaska Assignee: Ted Malaska Priority: Minor Attachments: HBASE-14181.1.patch, HBASE-14181.2.patch, HBASE-14181.3.patch Build a RelationProvider for HBase-Spark Module. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (HBASE-13376) Improvements to Stochastic load balancer
[ https://issues.apache.org/jira/browse/HBASE-13376?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Vandana Ayyalasomayajula updated HBASE-13376: - Attachment: HBASE-13376_3.patch Renamed the patch to avoid confusion. Improvements to Stochastic load balancer Key: HBASE-13376 URL: https://issues.apache.org/jira/browse/HBASE-13376 Project: HBase Issue Type: Improvement Components: Balancer Affects Versions: 1.0.0, 0.98.12 Reporter: Vandana Ayyalasomayajula Assignee: Vandana Ayyalasomayajula Priority: Minor Attachments: 13376-v2.txt, HBASE-13376.patch, HBASE-13376_0.98.txt, HBASE-13376_0.txt, HBASE-13376_1.txt, HBASE-13376_1_1.txt, HBASE-13376_2.patch, HBASE-13376_2_branch-1.patch, HBASE-13376_3.patch, HBASE-13376_98.patch, HBASE-13376_branch-1.patch There are two things this jira tries to address: 1. The locality picker in the stochastic balancer does not pick regions with least locality as candidates for swap/move. So when any user configures locality cost in the configs, the balancer does not always seems to move regions with bad locality. 2. When a cluster has equal number of loaded regions, it always picks the first one. It should pick a random region on one of the equally loaded servers. This improves a chance of finding a good candidate, when load picker is invoked several times. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-14169) API to refreshSuperUserGroupsConfiguration
[ https://issues.apache.org/jira/browse/HBASE-14169?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14681060#comment-14681060 ] Andrew Purtell commented on HBASE-14169: Agreed, we do what we can until proc-v2, +1 from me too API to refreshSuperUserGroupsConfiguration -- Key: HBASE-14169 URL: https://issues.apache.org/jira/browse/HBASE-14169 Project: HBase Issue Type: New Feature Reporter: Francis Liu Assignee: Francis Liu Attachments: HBASE-14169.patch, HBASE-14169_2.patch For deployments that use security. User impersonation (AKA doAs()) is needed for some services (ie Stargate, thriftserver, Oozie, etc). Impersonation definitions are defined in a xml config file and read and cached by the ProxyUsers class. Calling this api will refresh cached information, eliminating the need to restart the master/regionserver whenever the configuration is changed. Implementation just adds another method to AccessControlService. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-14190) Assign system tables ahead of user region assignment
[ https://issues.apache.org/jira/browse/HBASE-14190?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14681063#comment-14681063 ] Hadoop QA commented on HBASE-14190: --- {color:red}-1 overall{color}. Here are the results of testing the latest attachment http://issues.apache.org/jira/secure/attachment/12749715/14190-v7.txt against master branch at commit ae35f65e9ac12256b4514e6ba6ef5333e9e90870. ATTACHMENT ID: 12749715 {color:green}+1 @author{color}. The patch does not contain any @author tags. {color:green}+1 tests included{color}. The patch appears to include 3 new or modified tests. {color:green}+1 hadoop versions{color}. The patch compiles with all supported hadoop versions (2.4.0 2.4.1 2.5.0 2.5.1 2.5.2 2.6.0 2.7.0) {color:green}+1 javac{color}. The applied patch does not increase the total number of javac compiler warnings. {color:green}+1 protoc{color}. The applied patch does not increase the total number of protoc compiler warnings. {color:green}+1 javadoc{color}. The javadoc tool did not generate any warning messages. {color:red}-1 checkstyle{color}. The applied patch generated 1865 checkstyle errors (more than the master's current 1862 errors). {color:green}+1 findbugs{color}. The patch does not introduce any new Findbugs (version 2.0.3) warnings. {color:green}+1 release audit{color}. The applied patch does not increase the total number of release audit warnings. {color:green}+1 lineLengths{color}. The patch does not introduce lines longer than 100 {color:green}+1 site{color}. The mvn post-site goal succeeds with this patch. {color:red}-1 core tests{color}. The patch failed these unit tests: org.apache.hadoop.hbase.security.visibility.TestDefaultScanLabelGeneratorStack org.apache.hadoop.hbase.util.hbck.TestOfflineMetaRebuildBase org.apache.hadoop.hbase.master.TestRestartCluster {color:red}-1 core zombie tests{color}. There are 3 zombie test(s): at org.apache.hadoop.hbase.client.TestRestoreSnapshotFromClient.testCloneSnapshotOfCloned(TestRestoreSnapshotFromClient.java:245) at org.apache.hadoop.hbase.client.TestReplicasClient.testReverseScanWithReplicas(TestReplicasClient.java:612) Test results: https://builds.apache.org/job/PreCommit-HBASE-Build/15034//testReport/ Release Findbugs (version 2.0.3)warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/15034//artifact/patchprocess/newFindbugsWarnings.html Checkstyle Errors: https://builds.apache.org/job/PreCommit-HBASE-Build/15034//artifact/patchprocess/checkstyle-aggregate.html Console output: https://builds.apache.org/job/PreCommit-HBASE-Build/15034//console This message is automatically generated. Assign system tables ahead of user region assignment Key: HBASE-14190 URL: https://issues.apache.org/jira/browse/HBASE-14190 Project: HBase Issue Type: Bug Reporter: Ted Yu Assignee: Ted Yu Priority: Critical Attachments: 14190-v6.txt, 14190-v7.txt Currently the namespace table region is assigned like user regions. I spent several hours working with a customer where master couldn't finish initialization. Even though master was restarted quite a few times, it went down with the following: {code} 2015-08-05 17:16:57,530 FATAL [hdpmaster1:6.activeMasterManager] master.HMaster: Master server abort: loaded coprocessors are: [] 2015-08-05 17:16:57,530 FATAL [hdpmaster1:6.activeMasterManager] master.HMaster: Unhandled exception. Starting shutdown. java.io.IOException: Timedout 30ms waiting for namespace table to be assigned at org.apache.hadoop.hbase.master.TableNamespaceManager.start(TableNamespaceManager.java:104) at org.apache.hadoop.hbase.master.HMaster.initNamespace(HMaster.java:985) at org.apache.hadoop.hbase.master.HMaster.finishActiveMasterInitialization(HMaster.java:779) at org.apache.hadoop.hbase.master.HMaster.access$500(HMaster.java:182) at org.apache.hadoop.hbase.master.HMaster$1.run(HMaster.java:1646) at java.lang.Thread.run(Thread.java:744) {code} During previous run(s), namespace table was created, hence leaving an entry in hbase:meta. The following if block in TableNamespaceManager#start() was skipped: {code} if (!MetaTableAccessor.tableExists(masterServices.getConnection(), TableName.NAMESPACE_TABLE_NAME)) { {code} TableNamespaceManager#start() spins, waiting for namespace region to be assigned. There was issue in master assigning user regions. We tried issuing 'assign' command from hbase shell which didn't work because of the following check in MasterRpcServices#assignRegion(): {code}
[jira] [Commented] (HBASE-13907) Document how to deploy a coprocessor
[ https://issues.apache.org/jira/browse/HBASE-13907?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14681065#comment-14681065 ] Andrew Purtell commented on HBASE-13907: bq. Folks who are running coprocessors are already kind of down a dark path, but should we encourage the cleaner rolling restart of region servers to reduce the chances we have to debug classloader pain? +1, I'd recommend this, and leave out language related to alternatives Document how to deploy a coprocessor Key: HBASE-13907 URL: https://issues.apache.org/jira/browse/HBASE-13907 Project: HBase Issue Type: Bug Components: documentation Reporter: Misty Stanley-Jones Assignee: Misty Stanley-Jones Attachments: HBASE-13907-1.patch, HBASE-13907-2.patch, HBASE-13907.patch Capture this information: Where are the dependencies located for these classes? Is there a path on HDFS or local disk that dependencies need to be placed so that each RegionServer has access to them? It is suggested to bundle them as a single jar so that RS can load the whole jar and resolve dependencies. If you are not able to do that, you need place the dependencies in regionservers class path so that they are loaded during RS startup. Do either of these options work for you? Btw, you can load the coprocessors/filters into path specified by hbase.dynamic.jars.dir [1], so that they are loaded dynamically by regionservers when the class is accessed (or you can place them in the RS class path too, so that they are loaded during RS JVM startup). How would one deploy these using an automated system? (puppet/chef/ansible/etc) You can probably use these tools to automate shipping the jars to above locations? Tests our developers have done suggest that simply disabling a coprocessor, replacing the jar with a different version, and enabling the coprocessor again does not load the newest version. With that in mind how does one know which version is currently deployed and enabled without resorting to parsing `hbase shell` output or restarting hbase? Actually this is a design issue with current classloader. You can't reload a class in a JVM unless you delete all the current references to it. Since the current JVM (classloader) has reference to it, you can't overwrite it unless you kill the JVM, which is equivalent to restarting it. So you still have the older class loaded in place. For this to work, classloader design should be changed. If it works for you, you can rename the coprocessor class name and the new version of jar and RS loads it properly. Where does logging go, and how does one access it? Does logging need to be configured in a certain way? Can you please specify which logging you are referring to? Where is a good location to place configuration files? Same as above, are these hbase configs or something else? If hbase configs, are these gateway configs/server side? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-14186) Read mvcc vlong optimization
[ https://issues.apache.org/jira/browse/HBASE-14186?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14681067#comment-14681067 ] Andrew Purtell commented on HBASE-14186: Picking back to the 1.x branches now Read mvcc vlong optimization Key: HBASE-14186 URL: https://issues.apache.org/jira/browse/HBASE-14186 Project: HBase Issue Type: Sub-task Components: Performance, Scanners Reporter: Anoop Sam John Assignee: Anoop Sam John Fix For: 2.0.0 Attachments: HBASE-14186.patch {code} for (int idx = 0; idx remaining; idx++) { byte b = blockBuffer.getByteAfterPosition(offsetFromPos + idx); i = i 8; i = i | (b 0xFF); } {code} Doing the read as in case of BIG_ENDIAN. After HBASE-12600, we tend to keep the mvcc and so byte by byte read looks eating up lot of CPU time. (In my test HFileReaderImpl#_readMvccVersion comes on top in terms of hot methods). We can optimize here by reading 4 or 2 bytes in one shot when the length of the vlong is more than 4 bytes. We will in turn use UnsafeAccess methods which handles ENDIAN. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-14190) Assign system tables ahead of user region assignment
[ https://issues.apache.org/jira/browse/HBASE-14190?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14681084#comment-14681084 ] Ted Yu commented on HBASE-14190: TestDefaultScanLabelGeneratorStack passes locally. I can work on investigating / fixing test failures. Meanwhile, comment on approach in v7 would help shape the direction we go. Assign system tables ahead of user region assignment Key: HBASE-14190 URL: https://issues.apache.org/jira/browse/HBASE-14190 Project: HBase Issue Type: Bug Reporter: Ted Yu Assignee: Ted Yu Priority: Critical Attachments: 14190-v6.txt, 14190-v7.txt Currently the namespace table region is assigned like user regions. I spent several hours working with a customer where master couldn't finish initialization. Even though master was restarted quite a few times, it went down with the following: {code} 2015-08-05 17:16:57,530 FATAL [hdpmaster1:6.activeMasterManager] master.HMaster: Master server abort: loaded coprocessors are: [] 2015-08-05 17:16:57,530 FATAL [hdpmaster1:6.activeMasterManager] master.HMaster: Unhandled exception. Starting shutdown. java.io.IOException: Timedout 30ms waiting for namespace table to be assigned at org.apache.hadoop.hbase.master.TableNamespaceManager.start(TableNamespaceManager.java:104) at org.apache.hadoop.hbase.master.HMaster.initNamespace(HMaster.java:985) at org.apache.hadoop.hbase.master.HMaster.finishActiveMasterInitialization(HMaster.java:779) at org.apache.hadoop.hbase.master.HMaster.access$500(HMaster.java:182) at org.apache.hadoop.hbase.master.HMaster$1.run(HMaster.java:1646) at java.lang.Thread.run(Thread.java:744) {code} During previous run(s), namespace table was created, hence leaving an entry in hbase:meta. The following if block in TableNamespaceManager#start() was skipped: {code} if (!MetaTableAccessor.tableExists(masterServices.getConnection(), TableName.NAMESPACE_TABLE_NAME)) { {code} TableNamespaceManager#start() spins, waiting for namespace region to be assigned. There was issue in master assigning user regions. We tried issuing 'assign' command from hbase shell which didn't work because of the following check in MasterRpcServices#assignRegion(): {code} master.checkInitialized(); {code} This scenario can be avoided if we assign hbase:namespace table after hbase:meta is assigned but before user table region assignment. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-5878) Use getVisibleLength public api from HdfsDataInputStream from Hadoop-2.
[ https://issues.apache.org/jira/browse/HBASE-5878?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14681100#comment-14681100 ] Hudson commented on HBASE-5878: --- SUCCESS: Integrated in HBase-1.2-IT #82 (See [https://builds.apache.org/job/HBase-1.2-IT/82/]) HBASE-5878 Use getVisibleLength public api from HdfsDataInputStream from Hadoop-2. (apurtell: rev 7f33e6330a37b0401c2f9143ddbea67361217453) * hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/SequenceFileLogReader.java Use getVisibleLength public api from HdfsDataInputStream from Hadoop-2. --- Key: HBASE-5878 URL: https://issues.apache.org/jira/browse/HBASE-5878 Project: HBase Issue Type: Bug Components: wal Reporter: Uma Maheswara Rao G Assignee: Ashish Singhi Fix For: 2.0.0, 0.98.14, 1.0.2, 1.2.0, 1.1.2, 1.3.0 Attachments: HBASE-5878-branch-1.0.patch, HBASE-5878-v2.patch, HBASE-5878-v3.patch, HBASE-5878-v4.patch, HBASE-5878-v5-0.98.patch, HBASE-5878-v5.patch, HBASE-5878-v5.patch, HBASE-5878-v6-0.98.patch, HBASE-5878-v6.patch, HBASE-5878-v7-0.98.patch, HBASE-5878.patch SequencFileLogReader: Currently Hbase using getFileLength api from DFSInputStream class by reflection. DFSInputStream is not exposed as public. So, this may change in future. Now HDFS exposed HdfsDataInputStream as public API. We can make use of it, when we are not able to find the getFileLength api from DFSInputStream as a else condition. So, that we will not have any sudden surprise like we are facing today. Also, it is just logging one warn message and proceeding if it throws any exception while getting the length. I think we can re-throw the exception because there is no point in continuing with dataloss. {code} long adjust = 0; try { Field fIn = FilterInputStream.class.getDeclaredField(in); fIn.setAccessible(true); Object realIn = fIn.get(this.in); // In hadoop 0.22, DFSInputStream is a standalone class. Before this, // it was an inner class of DFSClient. if (realIn.getClass().getName().endsWith(DFSInputStream)) { Method getFileLength = realIn.getClass(). getDeclaredMethod(getFileLength, new Class? []{}); getFileLength.setAccessible(true); long realLength = ((Long)getFileLength. invoke(realIn, new Object []{})).longValue(); assert(realLength = this.length); adjust = realLength - this.length; } else { LOG.info(Input stream class: + realIn.getClass().getName() + , not adjusting length); } } catch(Exception e) { SequenceFileLogReader.LOG.warn( Error while trying to get accurate file length. + Truncation / data loss may occur if RegionServers die., e); } return adjust + super.getPos(); {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-5878) Use getVisibleLength public api from HdfsDataInputStream from Hadoop-2.
[ https://issues.apache.org/jira/browse/HBASE-5878?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14680998#comment-14680998 ] Andrew Purtell commented on HBASE-5878: --- Missed TestHLog because it's outside of o.a.h.h.regionserver.wal.* . I'm going to revert the 0.98 commit. Let's just forget about it there. Use getVisibleLength public api from HdfsDataInputStream from Hadoop-2. --- Key: HBASE-5878 URL: https://issues.apache.org/jira/browse/HBASE-5878 Project: HBase Issue Type: Bug Components: wal Reporter: Uma Maheswara Rao G Assignee: Ashish Singhi Fix For: 2.0.0, 1.0.2, 1.2.0, 1.1.2, 1.3.0 Attachments: HBASE-5878-branch-1.0.patch, HBASE-5878-v2.patch, HBASE-5878-v3.patch, HBASE-5878-v4.patch, HBASE-5878-v5-0.98.patch, HBASE-5878-v5.patch, HBASE-5878-v5.patch, HBASE-5878-v6-0.98.patch, HBASE-5878-v6.patch, HBASE-5878-v7-0.98.patch, HBASE-5878.patch SequencFileLogReader: Currently Hbase using getFileLength api from DFSInputStream class by reflection. DFSInputStream is not exposed as public. So, this may change in future. Now HDFS exposed HdfsDataInputStream as public API. We can make use of it, when we are not able to find the getFileLength api from DFSInputStream as a else condition. So, that we will not have any sudden surprise like we are facing today. Also, it is just logging one warn message and proceeding if it throws any exception while getting the length. I think we can re-throw the exception because there is no point in continuing with dataloss. {code} long adjust = 0; try { Field fIn = FilterInputStream.class.getDeclaredField(in); fIn.setAccessible(true); Object realIn = fIn.get(this.in); // In hadoop 0.22, DFSInputStream is a standalone class. Before this, // it was an inner class of DFSClient. if (realIn.getClass().getName().endsWith(DFSInputStream)) { Method getFileLength = realIn.getClass(). getDeclaredMethod(getFileLength, new Class? []{}); getFileLength.setAccessible(true); long realLength = ((Long)getFileLength. invoke(realIn, new Object []{})).longValue(); assert(realLength = this.length); adjust = realLength - this.length; } else { LOG.info(Input stream class: + realIn.getClass().getName() + , not adjusting length); } } catch(Exception e) { SequenceFileLogReader.LOG.warn( Error while trying to get accurate file length. + Truncation / data loss may occur if RegionServers die., e); } return adjust + super.getPos(); {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (HBASE-5878) Use getVisibleLength public api from HdfsDataInputStream from Hadoop-2.
[ https://issues.apache.org/jira/browse/HBASE-5878?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andrew Purtell updated HBASE-5878: -- Fix Version/s: (was: 0.98.14) Use getVisibleLength public api from HdfsDataInputStream from Hadoop-2. --- Key: HBASE-5878 URL: https://issues.apache.org/jira/browse/HBASE-5878 Project: HBase Issue Type: Bug Components: wal Reporter: Uma Maheswara Rao G Assignee: Ashish Singhi Fix For: 2.0.0, 1.0.2, 1.2.0, 1.1.2, 1.3.0 Attachments: HBASE-5878-branch-1.0.patch, HBASE-5878-v2.patch, HBASE-5878-v3.patch, HBASE-5878-v4.patch, HBASE-5878-v5-0.98.patch, HBASE-5878-v5.patch, HBASE-5878-v5.patch, HBASE-5878-v6-0.98.patch, HBASE-5878-v6.patch, HBASE-5878-v7-0.98.patch, HBASE-5878.patch SequencFileLogReader: Currently Hbase using getFileLength api from DFSInputStream class by reflection. DFSInputStream is not exposed as public. So, this may change in future. Now HDFS exposed HdfsDataInputStream as public API. We can make use of it, when we are not able to find the getFileLength api from DFSInputStream as a else condition. So, that we will not have any sudden surprise like we are facing today. Also, it is just logging one warn message and proceeding if it throws any exception while getting the length. I think we can re-throw the exception because there is no point in continuing with dataloss. {code} long adjust = 0; try { Field fIn = FilterInputStream.class.getDeclaredField(in); fIn.setAccessible(true); Object realIn = fIn.get(this.in); // In hadoop 0.22, DFSInputStream is a standalone class. Before this, // it was an inner class of DFSClient. if (realIn.getClass().getName().endsWith(DFSInputStream)) { Method getFileLength = realIn.getClass(). getDeclaredMethod(getFileLength, new Class? []{}); getFileLength.setAccessible(true); long realLength = ((Long)getFileLength. invoke(realIn, new Object []{})).longValue(); assert(realLength = this.length); adjust = realLength - this.length; } else { LOG.info(Input stream class: + realIn.getClass().getName() + , not adjusting length); } } catch(Exception e) { SequenceFileLogReader.LOG.warn( Error while trying to get accurate file length. + Truncation / data loss may occur if RegionServers die., e); } return adjust + super.getPos(); {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (HBASE-13889) Fix hbase-shaded-client artifact so it works on hbase-downstreamer
[ https://issues.apache.org/jira/browse/HBASE-13889?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Elliott Clark updated HBASE-13889: -- Summary: Fix hbase-shaded-client artifact so it works on hbase-downstreamer (was: hbase-shaded-client artifact is missing dependency (therefore, does not work)) Fix hbase-shaded-client artifact so it works on hbase-downstreamer -- Key: HBASE-13889 URL: https://issues.apache.org/jira/browse/HBASE-13889 Project: HBase Issue Type: Bug Components: Client Affects Versions: 1.1.0, 1.1.0.1 Environment: N/A? Reporter: Dmitry Minkovsky Assignee: Elliott Clark Priority: Critical Fix For: 2.0.0, 1.3.0, 1.2.1, 1.1.3 Attachments: 13889.wip.patch, Screen Shot 2015-06-11 at 10.59.55 AM.png The {{hbase-shaded-client}} artifact was introduced in [HBASE-13517|https://issues.apache.org/jira/browse/HBASE-13517]. Thank you very much for this, as I am new to Java building and was having a very slow-moving time resolving conflicts. However, the shaded client artifact seems to be missing {{javax.xml.transform.TransformerException}}. I examined the JAR, which does not have this package/class. Steps to reproduce: Java: {code} package com.mycompany.app; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.client.Connection; import org.apache.hadoop.hbase.client.ConnectionFactory; public class App { public static void main( String[] args ) throws java.io.IOException { Configuration config = HBaseConfiguration.create(); Connection connection = ConnectionFactory.createConnection(config); } } {code} POM: {code} project xmlns=http://maven.apache.org/POM/4.0.0; xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance; xsi:schemaLocation=http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd; modelVersion4.0.0/modelVersion groupIdcom.mycompany.app/groupId artifactIdmy-app/artifactId version1.0-SNAPSHOT/version
[jira] [Commented] (HBASE-13706) CoprocessorClassLoader should not exempt Hive classes
[ https://issues.apache.org/jira/browse/HBASE-13706?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14681044#comment-14681044 ] Jerry He commented on HBASE-13706: -- I tested both the branch-1 version of the patch and the master version of the patches with Phoenix. Note these two versions are different changes, with the master version more dramatic. {noformat} [biadmin@bdvs1163 bin]$ ./sqlline.py localhost:2181:/hbase-unsecure ../examples/STOCK_SYMBOL.sql Setting property: [isolation, TRANSACTION_READ_COMMITTED] Setting property: [run, ../examples/STOCK_SYMBOL.sql] issuing: !connect jdbc:phoenix:localhost:2181:/hbase-unsecure none none org.apache.phoenix.jdbc.PhoenixDriver Connecting to jdbc:phoenix:localhost:2181:/hbase-unsecure SLF4J: Failed to load class org.slf4j.impl.StaticLoggerBinder. SLF4J: Defaulting to no-operation (NOP) logger implementation SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details. 15/08/10 16:46:40 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable Connected to: Phoenix (version 4.4) Driver: PhoenixEmbeddedDriver (version 4.4) Autocommit status: true Transaction isolation: TRANSACTION_READ_COMMITTED Building list of tables and columns for tab-completion (set fastconnect to true to skip)... 94/94 (100%) Done Done 1/4 CREATE TABLE IF NOT EXISTS STOCK_SYMBOL (SYMBOL VARCHAR NOT NULL PRIMARY KEY, COMPANY VARCHAR); No rows affected (0.281 seconds) 2/4 UPSERT INTO STOCK_SYMBOL VALUES ('CRM','SalesForce.com'); 1 row affected (0.055 seconds) 3/4 SELECT * FROM STOCK_SYMBOL; +--+--+ | SYMBOL | COMPANY | +--+--+ | CRM | SalesForce.com | +--+--+ 1 row selected (0.195 seconds) 4/4 Closing: org.apache.phoenix.jdbc.PhoenixConnection sqlline version 1.1.8 {noformat} 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: 2.0.0, 1.0.1, 1.1.0, 0.98.12 Reporter: Jerry He Assignee: Jerry He Priority: Minor Fix For: 2.0.0, 1.2.0, 1.3.0 Attachments: HBASE-13706-branch-1.patch, HBASE-13706-master-v2.patch, HBASE-13706-master-v2.patch, HBASE-13706.patch 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] [Updated] (HBASE-13889) Fix hbase-shaded-client artifact so it works on hbase-downstreamer
[ https://issues.apache.org/jira/browse/HBASE-13889?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Elliott Clark updated HBASE-13889: -- Attachment: HBASE-13889.patch Since there's a bug with changing strings that match relocations here's a patch that's more explicit about it's relocations. It's a pain but it works for me on trunk. I haven't checked to see if there are any different depencencies on branch-1 or branch-1.2 Fix hbase-shaded-client artifact so it works on hbase-downstreamer -- Key: HBASE-13889 URL: https://issues.apache.org/jira/browse/HBASE-13889 Project: HBase Issue Type: Bug Components: Client Affects Versions: 1.1.0, 1.1.0.1 Environment: N/A? Reporter: Dmitry Minkovsky Assignee: Elliott Clark Priority: Critical Fix For: 2.0.0, 1.3.0, 1.2.1, 1.1.3 Attachments: 13889.wip.patch, HBASE-13889.patch, Screen Shot 2015-06-11 at 10.59.55 AM.png The {{hbase-shaded-client}} artifact was introduced in [HBASE-13517|https://issues.apache.org/jira/browse/HBASE-13517]. Thank you very much for this, as I am new to Java building and was having a very slow-moving time resolving conflicts. However, the shaded client artifact seems to be missing {{javax.xml.transform.TransformerException}}. I examined the JAR, which does not have this package/class. Steps to reproduce: Java: {code} package com.mycompany.app; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.client.Connection; import org.apache.hadoop.hbase.client.ConnectionFactory; public class App { public static void main( String[] args ) throws java.io.IOException { Configuration config = HBaseConfiguration.create(); Connection connection = ConnectionFactory.createConnection(config); } } {code} POM: {code} project xmlns=http://maven.apache.org/POM/4.0.0; xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance; xsi:schemaLocation=http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd; modelVersion4.0.0/modelVersion groupIdcom.mycompany.app/groupId artifactIdmy-app/artifactId
[jira] [Commented] (HBASE-13706) CoprocessorClassLoader should not exempt Hive classes
[ https://issues.apache.org/jira/browse/HBASE-13706?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14681054#comment-14681054 ] Jerry He commented on HBASE-13706: -- Also looked at the hbase region server logs. No errors or exceptions there. 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: 2.0.0, 1.0.1, 1.1.0, 0.98.12 Reporter: Jerry He Assignee: Jerry He Priority: Minor Fix For: 2.0.0, 1.2.0, 1.3.0 Attachments: HBASE-13706-branch-1.patch, HBASE-13706-master-v2.patch, HBASE-13706-master-v2.patch, HBASE-13706.patch 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] [Commented] (HBASE-13706) CoprocessorClassLoader should not exempt Hive classes
[ https://issues.apache.org/jira/browse/HBASE-13706?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14681057#comment-14681057 ] Andrew Purtell commented on HBASE-13706: +1 for commit 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: 2.0.0, 1.0.1, 1.1.0, 0.98.12 Reporter: Jerry He Assignee: Jerry He Priority: Minor Fix For: 2.0.0, 1.2.0, 1.3.0 Attachments: HBASE-13706-branch-1.patch, HBASE-13706-master-v2.patch, HBASE-13706-master-v2.patch, HBASE-13706.patch 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] [Updated] (HBASE-14197) TestRegionServerHostname#testInvalidRegionServerHostnameAbortsServer fails in Jenkins
[ https://issues.apache.org/jira/browse/HBASE-14197?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andrew Purtell updated HBASE-14197: --- Fix Version/s: 1.1.2 1.2.0 I picked this test fix back to the other affected branches. TestRegionServerHostname#testInvalidRegionServerHostnameAbortsServer fails in Jenkins - Key: HBASE-14197 URL: https://issues.apache.org/jira/browse/HBASE-14197 Project: HBase Issue Type: Test Reporter: Ted Yu Assignee: Ted Yu Priority: Minor Fix For: 2.0.0, 1.2.0, 1.1.2, 1.3.0 Attachments: 14197-v1.txt, 14197-v2.txt The following test failure can be observed in various recent Jenkins builds: {code} testInvalidRegionServerHostnameAbortsServer(org.apache.hadoop.hbase.regionserver.TestRegionServerHostname) Time elapsed: 9.344 sec FAILURE! java.lang.AssertionError: null at org.junit.Assert.fail(Assert.java:86) at org.junit.Assert.assertTrue(Assert.java:41) at org.junit.Assert.assertTrue(Assert.java:52) at org.apache.hadoop.hbase.regionserver.TestRegionServerHostname.testInvalidRegionServerHostnameAbortsServer(TestRegionServerHostname.java:65) {code} The test inspects exception message and looks for specific sentence, making it vulnerable to environment changes. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-13062) Add documentation coverage for configuring dns server with thrift and rest gateways
[ https://issues.apache.org/jira/browse/HBASE-13062?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14681071#comment-14681071 ] Srikanth Srungarapu commented on HBASE-13062: - +1 lgtm. Just minor concern: Like we did in http://hbase.apache.org/book.html#_running_canary_in_a_kerberos_enabled_cluster, can we use default for value field? Add documentation coverage for configuring dns server with thrift and rest gateways --- Key: HBASE-13062 URL: https://issues.apache.org/jira/browse/HBASE-13062 Project: HBase Issue Type: Bug Components: documentation Reporter: Srikanth Srungarapu Assignee: Misty Stanley-Jones Priority: Minor Attachments: HBASE-13062.patch Currently, the documentation doesn't cover about configuring DNS with thrift or rest gateways, though code base does provide provision for doing so. The following parameters are being used for accomplishing the same. For REST: * hbase.rest.dns.interface * hbase.rest.dns.nameserver For Thrift: * hbase.thrift.dns.interface * hbase.thrift.dns.nameserver -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (HBASE-14199) maven-remote-resources-plugin failure processing NOTICE.vm in hbase-assembly
[ https://issues.apache.org/jira/browse/HBASE-14199?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andrew Purtell updated HBASE-14199: --- Attachment: HBASE-14199.patch Updated 'HBASE-14199.patch' applies to all branches. Velocity is really restricted, I don't think we can do better than AOBE to signal something is wrong in a way that fails the build. New patch only adds the supplemental model for Hadoop 1 for 0.98. maven-remote-resources-plugin failure processing NOTICE.vm in hbase-assembly Key: HBASE-14199 URL: https://issues.apache.org/jira/browse/HBASE-14199 Project: HBase Issue Type: Bug Affects Versions: 0.98.14 Reporter: Andrew Purtell Assignee: Andrew Purtell Priority: Blocker Fix For: 2.0.0, 0.98.14, 1.0.2, 1.2.0, 1.1.2, 1.3.0 Attachments: HBASE-14199-0.98.patch, HBASE-14199.patch, HBASE-14199.patch Only seen when building 0.98 with -Dhadoop.profile=1.1. Happens with both JDK 6 and 7. {noformat} [ERROR] Failed to execute goal org.apache.maven.plugins:maven-remote-resources-plugin:1.5:process (default) on project hbase-assembly: Error rendering velocity resource. Error invoking method 'get(java.lang.Integer)' in java.util.ArrayList at META-INF/NOTICE.vm[line 275, column 22]: InvocationTargetException: Index: 0, Size: 0 - [Help 1] {noformat} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Assigned] (HBASE-13153) enable bulkload to support replication
[ https://issues.apache.org/jira/browse/HBASE-13153?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Ashish Singhi reassigned HBASE-13153: - Assignee: Ashish Singhi enable bulkload to support replication -- Key: HBASE-13153 URL: https://issues.apache.org/jira/browse/HBASE-13153 Project: HBase Issue Type: Bug Components: API Reporter: sunhaitao Assignee: Ashish Singhi Currently we plan to use HBase Replication feature to deal with disaster tolerance scenario.But we encounter an issue that we will use bulkload very frequently,because bulkload bypass write path, and will not generate WAL, so the data will not be replicated to backup cluster. It's inappropriate to bukload twice both on active cluster and backup cluster. So i advise do some modification to bulkload feature to enable bukload to both active cluster and backup cluster -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-14071) Document troubleshooting unexpected filesystem usage by snapshots and WALs
[ https://issues.apache.org/jira/browse/HBASE-14071?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14679859#comment-14679859 ] Hudson commented on HBASE-14071: FAILURE: Integrated in HBase-TRUNK #6709 (See [https://builds.apache.org/job/HBase-TRUNK/6709/]) HBASE-14071 Document troubleshooting unexpected filesystem usage by snapshots and WALs (mstanleyjones: rev b29c731a57e2f37c4dd4401833ee2f29d0689ae3) * src/main/asciidoc/_chapters/troubleshooting.adoc Document troubleshooting unexpected filesystem usage by snapshots and WALs -- Key: HBASE-14071 URL: https://issues.apache.org/jira/browse/HBASE-14071 Project: HBase Issue Type: Task Reporter: Misty Stanley-Jones Assignee: Misty Stanley-Jones Fix For: 2.0.0 Attachments: HBASE-14071.patch Document how to troubleshoot things like unexpected snapshot and WAL growth on the filesystem -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-13924) Description for hbase.dynamic.jars.dir is wrong
[ https://issues.apache.org/jira/browse/HBASE-13924?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14679860#comment-14679860 ] Hudson commented on HBASE-13924: FAILURE: Integrated in HBase-TRUNK #6709 (See [https://builds.apache.org/job/HBase-TRUNK/6709/]) HBASE-13924 Description for hbase.dynamic.jars.dir is wrong (mstanleyjones: rev c7065c4c40e94bcce2035b8ea9813cfc6124a7e0) * hbase-common/src/main/resources/hbase-default.xml Description for hbase.dynamic.jars.dir is wrong --- Key: HBASE-13924 URL: https://issues.apache.org/jira/browse/HBASE-13924 Project: HBase Issue Type: Bug Affects Versions: 1.1.0.1 Reporter: Lars George Assignee: Misty Stanley-Jones Labels: beginner Fix For: 2.0.0 Attachments: HBASE-13924-v1.patch, HBASE-13924.patch The description in the following is wrong: {noformat} property namehbase.dynamic.jars.dir/name value${hbase.rootdir}/lib/value description The directory from which the custom filter/co-processor jars can be loaded dynamically by the region server without the need to restart. However, an already loaded filter/co-processor class would not be un-loaded. See HBASE-1936 for more details. /description /property {noformat} The {{DynamicClassLoader}} is *not* used for coprocessors, but only for filters, comparators, and exceptions. Fix. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-14147) REST Support for Namespaces
[ https://issues.apache.org/jira/browse/HBASE-14147?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14679839#comment-14679839 ] Hadoop QA commented on HBASE-14147: --- {color:red}-1 overall{color}. Here are the results of testing the latest attachment http://issues.apache.org/jira/secure/attachment/12749527/hbase-14147-v1.patch against master branch at commit c7065c4c40e94bcce2035b8ea9813cfc6124a7e0. ATTACHMENT ID: 12749527 {color:green}+1 @author{color}. The patch does not contain any @author tags. {color:green}+1 tests included{color}. The patch appears to include 16 new or modified tests. {color:green}+1 hadoop versions{color}. The patch compiles with all supported hadoop versions (2.4.0 2.4.1 2.5.0 2.5.1 2.5.2 2.6.0 2.7.0) {color:green}+1 javac{color}. The applied patch does not increase the total number of javac compiler warnings. {color:green}+1 protoc{color}. The applied patch does not increase the total number of protoc compiler warnings. {color:red}-1 javadoc{color}. The javadoc tool appears to have generated 5 warning messages. {color:green}+1 checkstyle{color}. The applied patch does not increase the total number of checkstyle errors {color:green}+1 findbugs{color}. The patch does not introduce any new Findbugs (version 2.0.3) warnings. {color:green}+1 release audit{color}. The applied patch does not increase the total number of release audit warnings. {color:green}+1 lineLengths{color}. The patch does not introduce lines longer than 100 {color:green}+1 site{color}. The mvn post-site goal succeeds with this patch. {color:green}+1 core tests{color}. The patch passed unit tests in . {color:red}-1 core zombie tests{color}. There are 1 zombie test(s): Test results: https://builds.apache.org/job/PreCommit-HBASE-Build/15027//testReport/ Release Findbugs (version 2.0.3)warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/15027//artifact/patchprocess/newFindbugsWarnings.html Checkstyle Errors: https://builds.apache.org/job/PreCommit-HBASE-Build/15027//artifact/patchprocess/checkstyle-aggregate.html Javadoc warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/15027//artifact/patchprocess/patchJavadocWarnings.txt Console output: https://builds.apache.org/job/PreCommit-HBASE-Build/15027//console This message is automatically generated. REST Support for Namespaces --- Key: HBASE-14147 URL: https://issues.apache.org/jira/browse/HBASE-14147 Project: HBase Issue Type: Sub-task Components: REST Affects Versions: 1.1.1 Reporter: Rick Kellogg Assignee: Matt Warhaftig Priority: Minor Attachments: hbase-14147-v1.patch Expand REST services to include addition features: * Create namespace * Alter namespace * Describe namespace * Drop namespace * List tables in a specific namespace * List all namespaces. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-14071) Document troubleshooting unexpected filesystem usage by snapshots and WALs
[ https://issues.apache.org/jira/browse/HBASE-14071?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14679660#comment-14679660 ] Ashish Singhi commented on HBASE-14071: --- Hi [~misty]. In the patch the path reference for snapshots and WALs are for older hbase versions. Atleast from 0.98+ versions (by default) bq. Snapshots are stored in `/hbase/.snapshots` /hbase/.hbase-snapshot/ bq. Write-ahead logs (WALs) are stored in subdirectories of `/hbase/.logs/` /hbase/WALs/ Do you want to mention here about {{MasterProcWALs}} ? bq. Already-processed WALs are stored in `/hbase/.logs/oldWALs/` /hbase/oldWALs/ bq. corrupt WALs are stored in `/hbase/.logs/.corrupt/` /hbase/corrupt/ Document troubleshooting unexpected filesystem usage by snapshots and WALs -- Key: HBASE-14071 URL: https://issues.apache.org/jira/browse/HBASE-14071 Project: HBase Issue Type: Task Reporter: Misty Stanley-Jones Assignee: Misty Stanley-Jones Fix For: 2.0.0 Attachments: HBASE-14071.patch Document how to troubleshoot things like unexpected snapshot and WAL growth on the filesystem -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-13446) Add docs warning about missing data for downstream on versions prior to HBASE-13262
[ https://issues.apache.org/jira/browse/HBASE-13446?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14679674#comment-14679674 ] Hudson commented on HBASE-13446: FAILURE: Integrated in HBase-TRUNK #6708 (See [https://builds.apache.org/job/HBase-TRUNK/6708/]) HBASE-13446 Add docs warning about missing data for downstream on versions prior to HBASE-13262 (mstanleyjones: rev 0daae433423da12343d4a64fdc987ffa64d4785f) * src/main/asciidoc/_chapters/upgrading.adoc * src/main/asciidoc/_chapters/troubleshooting.adoc Add docs warning about missing data for downstream on versions prior to HBASE-13262 --- Key: HBASE-13446 URL: https://issues.apache.org/jira/browse/HBASE-13446 Project: HBase Issue Type: Task Components: documentation Affects Versions: 0.98.0, 1.0.0 Reporter: Sean Busbey Assignee: Misty Stanley-Jones Priority: Critical Fix For: 2.0.0 Attachments: HBASE-13446.patch From conversation at the end of HBASE-13262: [~davelatham] {quote} Should we put a warning somewhere (mailing list? book?) about this? Something like: IF (client OR server is = 0.98.11/1.0.0) AND server has a smaller value for hbase.client.scanner.max.result.size than client does, THEN scan requests that reach the server's hbase.client.scanner.max.result.size are likely to miss data. In particular, 0.98.11 defaults hbase.client.scanner.max.result.size to 2MB but other versions default to larger values, so be very careful using 0.98.11 servers with any other client version. {quote} [~busbey] {quote} How about we add a note in the ref guide for upgrades and for troubleshooting? {quote} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-13262) ResultScanner doesn't return all rows in Scan
[ https://issues.apache.org/jira/browse/HBASE-13262?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14679675#comment-14679675 ] Hudson commented on HBASE-13262: FAILURE: Integrated in HBase-TRUNK #6708 (See [https://builds.apache.org/job/HBase-TRUNK/6708/]) HBASE-13446 Add docs warning about missing data for downstream on versions prior to HBASE-13262 (mstanleyjones: rev 0daae433423da12343d4a64fdc987ffa64d4785f) * src/main/asciidoc/_chapters/upgrading.adoc * src/main/asciidoc/_chapters/troubleshooting.adoc ResultScanner doesn't return all rows in Scan - Key: HBASE-13262 URL: https://issues.apache.org/jira/browse/HBASE-13262 Project: HBase Issue Type: Bug Components: Client Affects Versions: 2.0.0, 1.1.0 Environment: Single node, pseduo-distributed 1.1.0-SNAPSHOT Reporter: Josh Elser Assignee: Josh Elser Priority: Blocker Fix For: 2.0.0, 1.0.1, 1.1.0, 0.98.12 Attachments: 13262-0.98-testpatch.txt, HBASE-13262-0.98-v7.patch, HBASE-13262-branch-1-v2.patch, HBASE-13262-branch-1-v3.patch, HBASE-13262-branch-1.0-v7.patch, HBASE-13262-branch-1.patch, HBASE-13262-v1.patch, HBASE-13262-v2.patch, HBASE-13262-v3.patch, HBASE-13262-v4.patch, HBASE-13262-v5.patch, HBASE-13262-v6.patch, HBASE-13262-v7.patch, HBASE-13262-v7.patch, HBASE-13262.patch, regionserver-logging.diff, testrun_0.98.txt, testrun_branch1.0.txt Tried to write a simple Java client again 1.1.0-SNAPSHOT. * Write 1M rows, each row with 1 family, and 10 qualifiers (values [0-9]), for a total of 10M cells written * Read back the data from the table, ensure I saw 10M cells Running it against {{04ac1891}} (and earlier) yesterday, I would get ~20% of the actual rows. Running against 1.0.0, returns all 10M records as expected. [Code I was running|https://github.com/joshelser/hbase-hwhat/blob/master/src/main/java/hbase/HBaseTest.java] for the curious. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-12256) Update patch submission guidelines to call out binary file support
[ https://issues.apache.org/jira/browse/HBASE-12256?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14679676#comment-14679676 ] Hudson commented on HBASE-12256: FAILURE: Integrated in HBase-TRUNK #6708 (See [https://builds.apache.org/job/HBase-TRUNK/6708/]) HBASE-12256 Update patch submission guidelines to call out binary file support (mstanleyjones: rev aad7fbe6cd4e5e899fc4badfa7fe0264fe35c443) * src/main/asciidoc/_chapters/developer.adoc Update patch submission guidelines to call out binary file support -- Key: HBASE-12256 URL: https://issues.apache.org/jira/browse/HBASE-12256 Project: HBase Issue Type: Improvement Components: documentation Reporter: Sean Busbey Assignee: Misty Stanley-Jones Priority: Minor Labels: git Fix For: 2.0.0 Attachments: HBASE-12256.patch Our guidelines should call out where users need to take special care if they have binary files in their diff. (binary files here means anything {{file}} detects as data) By default {{git diff}} won't include binary files, instead it'll just say something like binary files differ. That'll render the patch useless. * Update reasons to favor format-patch to include can handle binary files changing by default. * Add a note on {{git diff}} (or change the default args) to use {{--binary}} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (HBASE-14200) Separate some subtests of TestStochasticLoadBalancer into TestStochasticLoadBalancer2
[ https://issues.apache.org/jira/browse/HBASE-14200?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Ted Yu updated HBASE-14200: --- Attachment: 14200-v2.txt Patch v2 simplifies TestStochasticLoadBalancer2.java Please take a look. Separate some subtests of TestStochasticLoadBalancer into TestStochasticLoadBalancer2 - Key: HBASE-14200 URL: https://issues.apache.org/jira/browse/HBASE-14200 Project: HBase Issue Type: Test Reporter: Ted Yu Assignee: Ted Yu Priority: Minor Fix For: 2.0.0, 1.3.0 Attachments: 14200-v1.txt, 14200-v2.txt More and more functionality is added to StochasticLoadBalancer , making TestStochasticLoadBalancer run longer. From https://builds.apache.org/job/PreCommit-HBASE-Build/15011/testReport/org.apache.hadoop.hbase.master.balancer/TestStochasticLoadBalancer/ where total runtime was 14 min, here are the longest subtests: testRegionReplicasOnLargeCluster: 1 min 34 sec testRegionReplicasOnMidCluster: 1 min 31 sec testRegionReplicasOnMidClusterHighReplication: 2 min testRegionReplicationOnMidClusterReplicationGreaterThanNumNodes: 2 min 25 sec This issue is to separate out the above subtests into TestStochasticLoadBalancer2, giving each of the tests around 7 min runtime. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (HBASE-5878) Use getVisibleLength public api from HdfsDataInputStream from Hadoop-2.
[ https://issues.apache.org/jira/browse/HBASE-5878?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Ashish Singhi updated HBASE-5878: - Attachment: HBASE-5878-v7-0.98.patch Use getVisibleLength public api from HdfsDataInputStream from Hadoop-2. --- Key: HBASE-5878 URL: https://issues.apache.org/jira/browse/HBASE-5878 Project: HBase Issue Type: Bug Components: wal Reporter: Uma Maheswara Rao G Assignee: Ashish Singhi Fix For: 2.0.0, 1.3.0 Attachments: HBASE-5878-branch-1.0.patch, HBASE-5878-v2.patch, HBASE-5878-v3.patch, HBASE-5878-v4.patch, HBASE-5878-v5-0.98.patch, HBASE-5878-v5.patch, HBASE-5878-v5.patch, HBASE-5878-v6-0.98.patch, HBASE-5878-v6.patch, HBASE-5878-v7-0.98.patch, HBASE-5878.patch SequencFileLogReader: Currently Hbase using getFileLength api from DFSInputStream class by reflection. DFSInputStream is not exposed as public. So, this may change in future. Now HDFS exposed HdfsDataInputStream as public API. We can make use of it, when we are not able to find the getFileLength api from DFSInputStream as a else condition. So, that we will not have any sudden surprise like we are facing today. Also, it is just logging one warn message and proceeding if it throws any exception while getting the length. I think we can re-throw the exception because there is no point in continuing with dataloss. {code} long adjust = 0; try { Field fIn = FilterInputStream.class.getDeclaredField(in); fIn.setAccessible(true); Object realIn = fIn.get(this.in); // In hadoop 0.22, DFSInputStream is a standalone class. Before this, // it was an inner class of DFSClient. if (realIn.getClass().getName().endsWith(DFSInputStream)) { Method getFileLength = realIn.getClass(). getDeclaredMethod(getFileLength, new Class? []{}); getFileLength.setAccessible(true); long realLength = ((Long)getFileLength. invoke(realIn, new Object []{})).longValue(); assert(realLength = this.length); adjust = realLength - this.length; } else { LOG.info(Input stream class: + realIn.getClass().getName() + , not adjusting length); } } catch(Exception e) { SequenceFileLogReader.LOG.warn( Error while trying to get accurate file length. + Truncation / data loss may occur if RegionServers die., e); } return adjust + super.getPos(); {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-14200) Separate some subtests of TestStochasticLoadBalancer into TestStochasticLoadBalancer2
[ https://issues.apache.org/jira/browse/HBASE-14200?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14680118#comment-14680118 ] Hadoop QA commented on HBASE-14200: --- {color:green}+1 overall{color}. Here are the results of testing the latest attachment http://issues.apache.org/jira/secure/attachment/12749564/14200-v2.txt against master branch at commit c7065c4c40e94bcce2035b8ea9813cfc6124a7e0. ATTACHMENT ID: 12749564 {color:green}+1 @author{color}. The patch does not contain any @author tags. {color:green}+1 tests included{color}. The patch appears to include 5 new or modified tests. {color:green}+1 hadoop versions{color}. The patch compiles with all supported hadoop versions (2.4.0 2.4.1 2.5.0 2.5.1 2.5.2 2.6.0 2.7.0) {color:green}+1 javac{color}. The applied patch does not increase the total number of javac compiler warnings. {color:green}+1 protoc{color}. The applied patch does not increase the total number of protoc compiler warnings. {color:green}+1 javadoc{color}. The javadoc tool did not generate any warning messages. {color:green}+1 checkstyle{color}. The applied patch does not increase the total number of checkstyle errors {color:green}+1 findbugs{color}. The patch does not introduce any new Findbugs (version 2.0.3) warnings. {color:green}+1 release audit{color}. The applied patch does not increase the total number of release audit warnings. {color:green}+1 lineLengths{color}. The patch does not introduce lines longer than 100 {color:green}+1 site{color}. The mvn post-site goal succeeds with this patch. {color:green}+1 core tests{color}. The patch passed unit tests in . Test results: https://builds.apache.org/job/PreCommit-HBASE-Build/15028//testReport/ Release Findbugs (version 2.0.3)warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/15028//artifact/patchprocess/newFindbugsWarnings.html Checkstyle Errors: https://builds.apache.org/job/PreCommit-HBASE-Build/15028//artifact/patchprocess/checkstyle-aggregate.html Console output: https://builds.apache.org/job/PreCommit-HBASE-Build/15028//console This message is automatically generated. Separate some subtests of TestStochasticLoadBalancer into TestStochasticLoadBalancer2 - Key: HBASE-14200 URL: https://issues.apache.org/jira/browse/HBASE-14200 Project: HBase Issue Type: Test Reporter: Ted Yu Assignee: Ted Yu Priority: Minor Fix For: 2.0.0, 1.3.0 Attachments: 14200-v1.txt, 14200-v2.txt More and more functionality is added to StochasticLoadBalancer , making TestStochasticLoadBalancer run longer. From https://builds.apache.org/job/PreCommit-HBASE-Build/15011/testReport/org.apache.hadoop.hbase.master.balancer/TestStochasticLoadBalancer/ where total runtime was 14 min, here are the longest subtests: testRegionReplicasOnLargeCluster: 1 min 34 sec testRegionReplicasOnMidCluster: 1 min 31 sec testRegionReplicasOnMidClusterHighReplication: 2 min testRegionReplicationOnMidClusterReplicationGreaterThanNumNodes: 2 min 25 sec This issue is to separate out the above subtests into TestStochasticLoadBalancer2, giving each of the tests around 7 min runtime. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-5878) Use getVisibleLength public api from HdfsDataInputStream from Hadoop-2.
[ https://issues.apache.org/jira/browse/HBASE-5878?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14680082#comment-14680082 ] Ashish Singhi commented on HBASE-5878: -- [~andrew.purt...@gmail.com], I have attached 0.98 version branch patch(v7) to support both hadoop 1 and hadoop 2. Please check if this looks ok. Thanks. Use getVisibleLength public api from HdfsDataInputStream from Hadoop-2. --- Key: HBASE-5878 URL: https://issues.apache.org/jira/browse/HBASE-5878 Project: HBase Issue Type: Bug Components: wal Reporter: Uma Maheswara Rao G Assignee: Ashish Singhi Fix For: 2.0.0, 1.3.0 Attachments: HBASE-5878-branch-1.0.patch, HBASE-5878-v2.patch, HBASE-5878-v3.patch, HBASE-5878-v4.patch, HBASE-5878-v5-0.98.patch, HBASE-5878-v5.patch, HBASE-5878-v5.patch, HBASE-5878-v6-0.98.patch, HBASE-5878-v6.patch, HBASE-5878-v7-0.98.patch, HBASE-5878.patch SequencFileLogReader: Currently Hbase using getFileLength api from DFSInputStream class by reflection. DFSInputStream is not exposed as public. So, this may change in future. Now HDFS exposed HdfsDataInputStream as public API. We can make use of it, when we are not able to find the getFileLength api from DFSInputStream as a else condition. So, that we will not have any sudden surprise like we are facing today. Also, it is just logging one warn message and proceeding if it throws any exception while getting the length. I think we can re-throw the exception because there is no point in continuing with dataloss. {code} long adjust = 0; try { Field fIn = FilterInputStream.class.getDeclaredField(in); fIn.setAccessible(true); Object realIn = fIn.get(this.in); // In hadoop 0.22, DFSInputStream is a standalone class. Before this, // it was an inner class of DFSClient. if (realIn.getClass().getName().endsWith(DFSInputStream)) { Method getFileLength = realIn.getClass(). getDeclaredMethod(getFileLength, new Class? []{}); getFileLength.setAccessible(true); long realLength = ((Long)getFileLength. invoke(realIn, new Object []{})).longValue(); assert(realLength = this.length); adjust = realLength - this.length; } else { LOG.info(Input stream class: + realIn.getClass().getName() + , not adjusting length); } } catch(Exception e) { SequenceFileLogReader.LOG.warn( Error while trying to get accurate file length. + Truncation / data loss may occur if RegionServers die., e); } return adjust + super.getPos(); {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-14200) Separate some subtests of TestStochasticLoadBalancer into TestStochasticLoadBalancer2
[ https://issues.apache.org/jira/browse/HBASE-14200?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14680169#comment-14680169 ] Anoop Sam John commented on HBASE-14200: LGTM Separate some subtests of TestStochasticLoadBalancer into TestStochasticLoadBalancer2 - Key: HBASE-14200 URL: https://issues.apache.org/jira/browse/HBASE-14200 Project: HBase Issue Type: Test Reporter: Ted Yu Assignee: Ted Yu Priority: Minor Fix For: 2.0.0, 1.3.0 Attachments: 14200-v1.txt, 14200-v2.txt More and more functionality is added to StochasticLoadBalancer , making TestStochasticLoadBalancer run longer. From https://builds.apache.org/job/PreCommit-HBASE-Build/15011/testReport/org.apache.hadoop.hbase.master.balancer/TestStochasticLoadBalancer/ where total runtime was 14 min, here are the longest subtests: testRegionReplicasOnLargeCluster: 1 min 34 sec testRegionReplicasOnMidCluster: 1 min 31 sec testRegionReplicasOnMidClusterHighReplication: 2 min testRegionReplicationOnMidClusterReplicationGreaterThanNumNodes: 2 min 25 sec This issue is to separate out the above subtests into TestStochasticLoadBalancer2, giving each of the tests around 7 min runtime. -- This message was sent by Atlassian JIRA (v6.3.4#6332)