From 10c33cc48d0df175aa1c4c9c6a50e5ece7dc81bb Mon Sep 17 00:00:00 2001 From: Michael Stack Date: Wed, 15 Jul 2009 05:38:40 +0000 Subject: [PATCH] HBASE-1215 [migration] 0.19.0 -> 0.20.0 migration (hfile, HCD changes, HSK changes) -- part 1 git-svn-id: https://svn.apache.org/repos/asf/hadoop/hbase/trunk@794140 13f79535-47bb-0310-9956-ffa450edef68 --- .../org/apache/hadoop/hbase/HConstants.java | 3 +- .../org/apache/hadoop/hbase/util/FSUtils.java | 33 ++++++++ .../org/apache/hadoop/hbase/util/Migrate.java | 75 +++++++++++++++--- src/test/data/hbase-0.19-two-small-tables.zip | Bin 0 -> 19494 bytes .../hadoop/hbase/util/MigrationTest.java | 60 +++++++------- src/testdata/HADOOP-2478-testdata-v0.1.zip | Bin 222741 -> 0 bytes 6 files changed, 130 insertions(+), 41 deletions(-) create mode 100644 src/test/data/hbase-0.19-two-small-tables.zip delete mode 100644 src/testdata/HADOOP-2478-testdata-v0.1.zip diff --git a/src/java/org/apache/hadoop/hbase/HConstants.java b/src/java/org/apache/hadoop/hbase/HConstants.java index 6ca4fc3561c..06a91a6835b 100644 --- a/src/java/org/apache/hadoop/hbase/HConstants.java +++ b/src/java/org/apache/hadoop/hbase/HConstants.java @@ -47,8 +47,9 @@ public interface HConstants { * Version 4 supports only one kind of bloom filter. * Version 5 changes versions in catalog table regions. * Version 6 enables blockcaching on catalog tables. + * Version 7 introduces hfile -- hbase 0.19 to 0.20.. */ - public static final String FILE_SYSTEM_VERSION = "6"; + public static final String FILE_SYSTEM_VERSION = "7"; // Configuration parameters diff --git a/src/java/org/apache/hadoop/hbase/util/FSUtils.java b/src/java/org/apache/hadoop/hbase/util/FSUtils.java index 59da1cc46fc..ae885f2f0d4 100644 --- a/src/java/org/apache/hadoop/hbase/util/FSUtils.java +++ b/src/java/org/apache/hadoop/hbase/util/FSUtils.java @@ -29,8 +29,10 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.hadoop.fs.FSDataInputStream; import org.apache.hadoop.fs.FSDataOutputStream; +import org.apache.hadoop.fs.FileStatus; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; +import org.apache.hadoop.fs.PathFilter; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.HConstants; import org.apache.hadoop.hbase.HRegionInfo; @@ -265,4 +267,35 @@ public class FSUtils { HRegion.getRegionDir(rootdir, HRegionInfo.ROOT_REGIONINFO); return fs.exists(rootRegionDir); } + + + /** + * Runs through the hbase rootdir and checks all stores have only + * one file in them -- that is, they've been major compacted. Looks + * at root and meta tables too. + * @param fs + * @param c + * @return True if this hbase install is major compacted. + * @throws IOException + */ + public static boolean isMajorCompacted(final FileSystem fs, + final HBaseConfiguration c) + throws IOException { + // Presumes any directory under hbase.rootdir is a table. + FileStatus [] directories = + fs.listStatus(new Path(c.get(HConstants.HBASE_DIR)), new PathFilter() { + public boolean accept(Path p) { + boolean isdir = false; + try { + isdir = fs.getFileStatus(p).isDir(); + } catch (IOException e) { + e.printStackTrace(); + } + return isdir; + } + }); + for (int i = 0; i < directories.length; i++) { + + } + } } \ No newline at end of file diff --git a/src/java/org/apache/hadoop/hbase/util/Migrate.java b/src/java/org/apache/hadoop/hbase/util/Migrate.java index 26697475c8b..ef47a9fda57 100644 --- a/src/java/org/apache/hadoop/hbase/util/Migrate.java +++ b/src/java/org/apache/hadoop/hbase/util/Migrate.java @@ -26,8 +26,10 @@ import org.apache.commons.cli.Options; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.hadoop.conf.Configured; +import org.apache.hadoop.fs.FileStatus; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; +import org.apache.hadoop.fs.PathFilter; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.HColumnDescriptor; import org.apache.hadoop.hbase.HConstants; @@ -86,7 +88,7 @@ public class Migrate extends Configured implements Tool { private static final float HBASE_0_1_VERSION = 0.1f; // Filesystem version we can migrate from - private static final int PREVIOUS_VERSION = 4; + private static final int PREVIOUS_VERSION = 6; private static final String MIGRATION_LINK = " See http://wiki.apache.org/hadoop/Hbase/HowToMigrate for more information."; @@ -185,14 +187,14 @@ public class Migrate extends Configured implements Tool { if (version == HBASE_0_1_VERSION || Integer.valueOf(versionStr).intValue() < PREVIOUS_VERSION) { String msg = "Cannot upgrade from " + versionStr + " to " + - HConstants.FILE_SYSTEM_VERSION + " you must install hbase-0.2.x, run " + + HConstants.FILE_SYSTEM_VERSION + " you must install an earlier hbase, run " + "the upgrade tool, reinstall this version and run this utility again." + MIGRATION_LINK; System.out.println(msg); throw new IOException(msg); } - migrate4To6(); + migrate6to7(); if (!readOnly) { // Set file system version @@ -209,17 +211,31 @@ public class Migrate extends Configured implements Tool { } } - // Move the fileystem version from 4 to 6. - // In here we rewrite the catalog table regions so they keep 10 versions - // instead of 1. - private void migrate4To6() throws IOException { + // Move the fileystem version from 6 to 7. + private void migrate6to7() throws IOException { if (this.readOnly && this.migrationNeeded) { return; } + // Before we start, make sure all is major compacted. + if (!allMajorCompacted()) { + String msg = "All tables must be major compacted before the migration can begin." + + MIGRATION_LINK; + System.out.println(msg); + throw new IOException(msg); + } final MetaUtils utils = new MetaUtils(this.conf); try { - // These two operations are effectively useless. -ROOT- is hardcode, - // at least until hbase 0.20.0 when we store it out in ZK. + // Preperation + // TODO: Fail if not all major compacted first + + // TODO: Set the .META. and -ROOT- to flush at 16k? 32k? + // TODO: Enable block cache on all tables + // TODO: Rewrite MEMCACHE_FLUSHSIZE as MEMSTORE_FLUSHSIZE – name has changed. + // TODO: Remove tableindexer 'index' attribute index from TableDescriptor (See HBASE-1586) + // TODO: TODO: Move of in-memory parameter from table to column family (from HTD to HCD). + // TODO: Purge isInMemory, etc., methods from HTD as part of migration. + // TODO: Clean up old region log files (HBASE-698) + updateVersions(utils.getRootRegion().getRegionInfo()); enableBlockCache(utils.getRootRegion().getRegionInfo()); // Scan the root region @@ -235,11 +251,52 @@ public class Migrate extends Configured implements Tool { return true; } }); + LOG.info("TODO: Note on make sure not using old hbase-default.xml"); + /* + * hbase.master / hbase.master.hostname are obsolete, that's replaced by +hbase.cluster.distributed. This config must be set to "true" to have a +fully-distributed cluster and the server lines in zoo.cfg must not +point to "localhost". + +The clients must have a valid zoo.cfg in their classpath since we +don't provide the master address. + +hbase.master.dns.interface and hbase.master.dns.nameserver should be +set to control the master's address (not mandatory). + */ + LOG.info("TODO: Note on zookeeper config. before starting:"); } finally { utils.shutdown(); } } + /** + * Runs through the hbase rootdir and checks all stores have only + * one file in them -- that is, they've been major compacted. Looks + * at root and meta tables too. + * @param fs + * @param c + * @return True if this hbase install is major compacted. + * @throws IOException + */ + public static boolean isMajorCompacted(final FileSystem fs, + final HBaseConfiguration c) + throws IOException { + FileStatus [] directories = + fs.listStatus(new Path(c.get(HConstants.HBASE_DIR)), new PathFilter() { + public boolean accept(Path p) { + boolean isdir = false; + try { + isdir = fs.getFileStatus(p).isDir(); + } catch (IOException e) { + e.printStackTrace(); + } + return isdir; + } + }); + + } + /* * Enable blockcaching on catalog tables. * @param mr diff --git a/src/test/data/hbase-0.19-two-small-tables.zip b/src/test/data/hbase-0.19-two-small-tables.zip new file mode 100644 index 0000000000000000000000000000000000000000..2c3473fa17dcdab75635427b79f5aac344d001d4 GIT binary patch literal 19494 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 literal 0 HcmV?d00001 diff --git a/src/test/org/apache/hadoop/hbase/util/MigrationTest.java b/src/test/org/apache/hadoop/hbase/util/MigrationTest.java index e1be537b96c..fae10065c07 100644 --- a/src/test/org/apache/hadoop/hbase/util/MigrationTest.java +++ b/src/test/org/apache/hadoop/hbase/util/MigrationTest.java @@ -20,14 +20,13 @@ package org.apache.hadoop.hbase.util; -import java.io.FileNotFoundException; import java.io.IOException; +import java.io.InputStream; import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.apache.hadoop.fs.FSDataInputStream; import org.apache.hadoop.fs.FSDataOutputStream; import org.apache.hadoop.fs.FileStatus; import org.apache.hadoop.fs.FileSystem; @@ -42,30 +41,32 @@ import org.apache.hadoop.hbase.client.HBaseAdmin; import org.apache.hadoop.hbase.client.HConnectionManager; import org.apache.hadoop.hbase.client.HTable; import org.apache.hadoop.hbase.client.Result; -import org.apache.hadoop.hbase.client.Scan; -import org.apache.hadoop.hbase.client.ResultScanner; /** - * Runs migration of filesystem from hbase 0.x to 0.x + * Runs migration of filesystem from hbase 0.19 to hbase 0.20. + * Not part of general test suite because takes time. */ public class MigrationTest extends HBaseTestCase { private static final Log LOG = LogFactory.getLog(MigrationTest.class); - - // This is the name of the table that is in the data file. - private static final String TABLENAME = "TestUpgrade"; - - // The table has two columns - private static final byte [][] TABLENAME_COLUMNS = - {Bytes.toBytes("column_a:"), Bytes.toBytes("column_b:")}; // Expected count of rows in migrated table. - private static final int EXPECTED_COUNT = 17576; + private static final int EXPECTED_COUNT = 3; /** - * Test migration. To be used in future migrations + * Test migration. * @throws IOException */ - public void testUpgrade() throws IOException { + public void testMigration() throws IOException { + Path rootdir = getUnitTestdir(getName()); + FileSystem fs = FileSystem.get(this.conf); + Path hbasedir = loadTestData(fs, rootdir); + assertTrue(fs.exists(hbasedir)); + listPaths(fs, hbasedir, -1); + Migrate migrator = new Migrate(this.conf); + Path qualified = fs.makeQualified(hbasedir); + String uri = qualified.toString(); + this.conf.set("hbase.rootdir", uri); + migrator.run(new String [] {"upgrade"}); } /* @@ -74,24 +75,18 @@ public class MigrationTest extends HBaseTestCase { * @param rootDir * @throws IOException */ - private void loadTestData(final FileSystem dfs, final Path rootDir) + private Path loadTestData(final FileSystem dfs, final Path rootDir) throws IOException { - FileSystem localfs = FileSystem.getLocal(conf); - // Get path for zip file. If running this test in eclipse, define - // the system property src.testdata for your test run. - String srcTestdata = System.getProperty("src.testdata"); - if (srcTestdata == null) { - throw new NullPointerException("Define src.test system property"); + String hbasedir = "hbase-0.19-two-small-tables"; + InputStream is = this.getClass().getClassLoader(). + getResourceAsStream("data/" + hbasedir + ".zip"); + ZipInputStream zip = new ZipInputStream(is); + try { + unzip(zip, dfs, rootDir); + } finally { + zip.close(); } - Path data = new Path(srcTestdata, "HADOOP-2478-testdata-v0.1.zip"); - if (!localfs.exists(data)) { - throw new FileNotFoundException(data.toString()); - } - FSDataInputStream hs = localfs.open(data); - ZipInputStream zip = new ZipInputStream(hs); - unzip(zip, dfs, rootDir); - zip.close(); - hs.close(); + return new Path(rootDir, hbasedir); } /* @@ -116,6 +111,7 @@ public class MigrationTest extends HBaseTestCase { assertTrue(hb.isMasterRunning()); HTableDescriptor [] tables = hb.listTables(); boolean foundTable = false; + /* for (int i = 0; i < tables.length; i++) { if (Bytes.equals(Bytes.toBytes(TABLENAME), tables[i].getName())) { foundTable = true; @@ -148,6 +144,8 @@ public class MigrationTest extends HBaseTestCase { } finally { s.close(); } + + */ } finally { HConnectionManager.deleteConnectionInfo(conf, false); cluster.shutdown(); diff --git a/src/testdata/HADOOP-2478-testdata-v0.1.zip b/src/testdata/HADOOP-2478-testdata-v0.1.zip deleted file mode 100644 index f5f3d89a5e2e3f96d4eeb48ce118907d774bcbf8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 222741 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