You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by te...@apache.org on 2013/02/26 05:45:38 UTC

svn commit: r1450018 - /hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/regionserver/SplitLogWorker.java

Author: tedyu
Date: Tue Feb 26 04:45:38 2013
New Revision: 1450018

URL: http://svn.apache.org/r1450018
Log:
HBASE-7723 Remove NameNode URI from ZK splitlogs (Himanshu)


Modified:
    hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/regionserver/SplitLogWorker.java

Modified: hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/regionserver/SplitLogWorker.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/regionserver/SplitLogWorker.java?rev=1450018&r1=1450017&r2=1450018&view=diff
==============================================================================
--- hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/regionserver/SplitLogWorker.java (original)
+++ hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/regionserver/SplitLogWorker.java Tue Feb 26 04:45:38 2013
@@ -107,9 +107,10 @@ public class SplitLogWorker extends ZooK
         // TODO have to correctly figure out when log splitting has been
         // interrupted or has encountered a transient error and when it has
         // encountered a bad non-retry-able persistent error.
-        try {
+        try {          
+          String relativeLogPath = getRelativeLogPath(filename);
           if (HLogSplitter.splitLogFile(rootdir,
-              fs.getFileStatus(new Path(filename)), fs, conf, p) == false) {
+              fs.getFileStatus(new Path(rootdir, relativeLogPath)), fs, conf, p) == false) {
             return Status.PREEMPTED;
           }
         } catch (InterruptedIOException iioe) {
@@ -129,6 +130,21 @@ public class SplitLogWorker extends ZooK
         }
         return Status.DONE;
       }
+
+      private String getRelativeLogPath(String logPath) {
+        StringBuilder sb = new StringBuilder();
+        String znodeDelimiter = Character.toString(Path.SEPARATOR_CHAR);
+        String[] filenameSplits = logPath.split(znodeDelimiter);
+        int len = filenameSplits.length;
+        String relativeLogPath = logPath;
+        if (len > 3) {
+          // the last three terms are .logs/server/log-file
+          relativeLogPath = sb.append(filenameSplits[len - 3]).append(znodeDelimiter)
+            .append(filenameSplits[len - 2]).append(znodeDelimiter)
+            .append(filenameSplits[len - 1]).toString();
+        }
+        return relativeLogPath;
+      }
     });
   }