From 6d491a19bb074d9a70d17d33925ee4b2637538fc Mon Sep 17 00:00:00 2001 From: "qianhao.zhou" Date: Wed, 10 Dec 2014 10:36:40 +0800 Subject: [PATCH 1/5] fix CI issue --- .../com/kylinolap/rest/controller/JobControllerTest.java | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/server/src/test/java/com/kylinolap/rest/controller/JobControllerTest.java b/server/src/test/java/com/kylinolap/rest/controller/JobControllerTest.java index 9e963e2..6583ebe 100644 --- a/server/src/test/java/com/kylinolap/rest/controller/JobControllerTest.java +++ b/server/src/test/java/com/kylinolap/rest/controller/JobControllerTest.java @@ -21,10 +21,12 @@ import java.util.List; import java.util.Map; +import com.kylinolap.common.KylinConfig; import com.kylinolap.cube.CubeDescManager; import com.kylinolap.cube.CubeInstance; import com.kylinolap.cube.CubeManager; import com.kylinolap.cube.model.CubeDesc; +import com.kylinolap.job.JobDAO; import com.kylinolap.metadata.MetadataManager; import com.kylinolap.rest.exception.InternalErrorException; import com.kylinolap.rest.exception.NotFoundException; @@ -77,11 +79,12 @@ public void setup() throws Exception { @Test public void testBasics() throws IOException { - CubeManager cubeManager = CubeManager.getInstance(getTestConfig()); + KylinConfig testConfig = getTestConfig(); + CubeManager cubeManager = CubeManager.getInstance(testConfig); if (cubeManager.getCube(CUBE_NAME) != null) { cubeManager.dropCube(CUBE_NAME, false); } - CubeDescManager cubeDescManager = CubeDescManager.getInstance(getTestConfig()); + CubeDescManager cubeDescManager = CubeDescManager.getInstance(testConfig); CubeDesc cubeDesc = cubeDescManager.getCubeDesc("test_kylin_cube_with_slr_left_join_desc"); CubeInstance cube = cubeManager.createCube(CUBE_NAME, "DEFAULT", cubeDesc, "test"); assertNotNull(cube); @@ -91,7 +94,7 @@ public void testBasics() throws IOException { JobBuildRequest jobBuildRequest = new JobBuildRequest(); jobBuildRequest.setBuildType("BUILD"); - jobBuildRequest.setStartTime(1386806400000L); + jobBuildRequest.setStartTime(0L); jobBuildRequest.setEndTime(new Date().getTime()); JobInstance job = cubeController.rebuild(CUBE_NAME, jobBuildRequest); @@ -99,11 +102,7 @@ public void testBasics() throws IOException { Assert.assertNotNull(jobSchedulerController.get(job.getId())); Map output = jobSchedulerController.getStepOutput(job.getId(), 0); Assert.assertNotNull(output); - try { - jobSchedulerController.cancel(job.getId()); - } catch (InternalErrorException e) { - - } + JobDAO.getInstance(testConfig).deleteJob(job); // jobSchedulerController.cancel(job.getId()); } From aca05648924147002034817d57555faa46cf4817 Mon Sep 17 00:00:00 2001 From: "qianhao.zhou" Date: Thu, 11 Dec 2014 14:20:02 +0800 Subject: [PATCH 2/5] fix CI issue --- .../rest/controller/JobControllerTest.java | 53 ++++++++++++---------- 1 file changed, 28 insertions(+), 25 deletions(-) diff --git a/server/src/test/java/com/kylinolap/rest/controller/JobControllerTest.java b/server/src/test/java/com/kylinolap/rest/controller/JobControllerTest.java index 6583ebe..ddf7ac8 100644 --- a/server/src/test/java/com/kylinolap/rest/controller/JobControllerTest.java +++ b/server/src/test/java/com/kylinolap/rest/controller/JobControllerTest.java @@ -16,38 +16,29 @@ package com.kylinolap.rest.controller; -import java.io.IOException; -import java.util.Date; -import java.util.List; -import java.util.Map; - import com.kylinolap.common.KylinConfig; import com.kylinolap.cube.CubeDescManager; import com.kylinolap.cube.CubeInstance; import com.kylinolap.cube.CubeManager; import com.kylinolap.cube.model.CubeDesc; import com.kylinolap.job.JobDAO; -import com.kylinolap.metadata.MetadataManager; -import com.kylinolap.rest.exception.InternalErrorException; -import com.kylinolap.rest.exception.NotFoundException; -import org.junit.Assert; -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.Test; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.authentication.TestingAuthenticationToken; -import org.springframework.security.core.Authentication; -import org.springframework.security.core.context.SecurityContextHolder; - import com.kylinolap.job.JobInstance; import com.kylinolap.rest.request.JobBuildRequest; import com.kylinolap.rest.request.JobListRequest; import com.kylinolap.rest.service.CubeService; import com.kylinolap.rest.service.JobService; import com.kylinolap.rest.service.ServiceTestBase; +import org.junit.After; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; +import org.springframework.beans.factory.annotation.Autowired; + +import java.io.IOException; +import java.util.Date; +import java.util.Map; import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; /** * @author xduo @@ -63,6 +54,10 @@ CubeService cubeService; private static final String CUBE_NAME = "new_job_controller"; + private CubeManager cubeManager; + private CubeDescManager cubeDescManager; + private JobDAO jobDAO; + @Before public void setup() throws Exception { @@ -73,18 +68,23 @@ public void setup() throws Exception { cubeController = new CubeController(); cubeController.setJobService(jobService); cubeController.setCubeService(cubeService); + KylinConfig testConfig = getTestConfig(); + cubeManager = CubeManager.getInstance(testConfig); + cubeDescManager = CubeDescManager.getInstance(testConfig); - } + jobDAO = JobDAO.getInstance(testConfig); - @Test - public void testBasics() throws IOException { + } - KylinConfig testConfig = getTestConfig(); - CubeManager cubeManager = CubeManager.getInstance(testConfig); + @After + public void tearDown() throws Exception { if (cubeManager.getCube(CUBE_NAME) != null) { cubeManager.dropCube(CUBE_NAME, false); } - CubeDescManager cubeDescManager = CubeDescManager.getInstance(testConfig); + } + + @Test + public void testBasics() throws IOException { CubeDesc cubeDesc = cubeDescManager.getCubeDesc("test_kylin_cube_with_slr_left_join_desc"); CubeInstance cube = cubeManager.createCube(CUBE_NAME, "DEFAULT", cubeDesc, "test"); assertNotNull(cube); @@ -102,7 +102,10 @@ public void testBasics() throws IOException { Assert.assertNotNull(jobSchedulerController.get(job.getId())); Map output = jobSchedulerController.getStepOutput(job.getId(), 0); Assert.assertNotNull(output); - JobDAO.getInstance(testConfig).deleteJob(job); + jobDAO.deleteJob(job); + if (cubeManager.getCube(CUBE_NAME) != null) { + cubeManager.dropCube(CUBE_NAME, false); + } // jobSchedulerController.cancel(job.getId()); } From a4d39c4b59121480ca5615a2ba95d01dbddfa108 Mon Sep 17 00:00:00 2001 From: shaofengshi Date: Wed, 17 Dec 2014 15:29:51 +0800 Subject: [PATCH 3/5] Cleanup unused cube after building cube --- .../test/java/com/kylinolap/job/BuildCubeWithEngineTest.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/job/src/test/java/com/kylinolap/job/BuildCubeWithEngineTest.java b/job/src/test/java/com/kylinolap/job/BuildCubeWithEngineTest.java index c15f463..34cc28a 100644 --- a/job/src/test/java/com/kylinolap/job/BuildCubeWithEngineTest.java +++ b/job/src/test/java/com/kylinolap/job/BuildCubeWithEngineTest.java @@ -34,6 +34,7 @@ import com.google.common.collect.Lists; import com.kylinolap.common.KylinConfig; import com.kylinolap.common.util.ClasspathUtil; +import com.kylinolap.common.util.CliCommandExecutor; import com.kylinolap.common.util.HBaseMetadataTestCase; import com.kylinolap.common.util.JsonUtil; import com.kylinolap.cube.CubeBuildTypeEnum; @@ -249,4 +250,13 @@ protected void waitCubeBuilt(List jobs) throws Exception { } return jobUuids; } + + private void cleanupOldCubes() { + try { + CliCommandExecutor cli = KylinConfig.getInstanceFromEnv().getCliCommandExecutor(); + cli.execute("hbase org.apache.hadoop.util.RunJar /root/kylin-job-0.6.3-SNAPSHOT-job.jar com.kylinolap.job.hadoop.cube.StorageCleanupJob --delete true"); + } catch (IOException e) { + e.printStackTrace(); + } + } } \ No newline at end of file From 03f577b649bd236d665ee97ae358d6c1bf3ebec9 Mon Sep 17 00:00:00 2001 From: shaofengshi Date: Wed, 17 Dec 2014 17:31:40 +0800 Subject: [PATCH 4/5] Export metadata & cube after running build cube with engine. --- .../com/kylinolap/job/BuildCubeWithEngineTest.java | 47 +++++--- .../java/com/kylinolap/job/ExportHBaseData.java | 127 +++++++++++++++++++++ .../storage/minicluster/ExportHBaseData.java | 127 --------------------- 3 files changed, 155 insertions(+), 146 deletions(-) create mode 100644 job/src/test/java/com/kylinolap/job/ExportHBaseData.java delete mode 100644 storage/src/test/java/com/kylinolap/storage/minicluster/ExportHBaseData.java diff --git a/job/src/test/java/com/kylinolap/job/BuildCubeWithEngineTest.java b/job/src/test/java/com/kylinolap/job/BuildCubeWithEngineTest.java index 34cc28a..df3dc8d 100644 --- a/job/src/test/java/com/kylinolap/job/BuildCubeWithEngineTest.java +++ b/job/src/test/java/com/kylinolap/job/BuildCubeWithEngineTest.java @@ -25,6 +25,7 @@ import java.util.List; import java.util.TimeZone; +import org.apache.hadoop.util.ToolRunner; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; @@ -34,7 +35,6 @@ import com.google.common.collect.Lists; import com.kylinolap.common.KylinConfig; import com.kylinolap.common.util.ClasspathUtil; -import com.kylinolap.common.util.CliCommandExecutor; import com.kylinolap.common.util.HBaseMetadataTestCase; import com.kylinolap.common.util.JsonUtil; import com.kylinolap.cube.CubeBuildTypeEnum; @@ -45,6 +45,7 @@ import com.kylinolap.job.constant.JobStatusEnum; import com.kylinolap.job.engine.JobEngineConfig; import com.kylinolap.job.exception.InvalidJobInstanceException; +import com.kylinolap.job.hadoop.cube.StorageCleanupJob; /** * @author ysong1 @@ -74,8 +75,12 @@ public void before() throws Exception { } @After - public void after() throws IOException { + public void after() throws Exception { // jobManager.deleteAllJobs(); + int exitCode = cleanupOldCubes(); + if (exitCode == 0) + exportHBaseData(); + this.cleanupTestMetadata(); } @@ -85,8 +90,8 @@ public void testCubes() throws Exception { // start job schedule engine jobManager.startJobEngine(10); -// testSimpleLeftJoinCube(); - + // testSimpleLeftJoinCube(); + // keep this order. testLeftJoinCube(); testInnerJoinCube(); @@ -181,28 +186,28 @@ private void testLeftJoinCube() throws Exception { @SuppressWarnings("unused") private void testSimpleLeftJoinCube() throws Exception { DeployUtil.prepareTestData("left", "test_kylin_cube_with_slr_left_join_empty"); - + SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd"); f.setTimeZone(TimeZone.getTimeZone("GMT")); long dateStart; long dateEnd; - + ArrayList jobs = new ArrayList(); - + // this cube's start date is 0, end date is 20501112000000 CubeManager cubeMgr = CubeManager.getInstance(KylinConfig.getInstanceFromEnv()); dateStart = cubeMgr.getCube("test_kylin_cube_with_slr_left_join_empty").getDescriptor().getCubePartitionDesc().getPartitionDateStart(); dateEnd = f.parse("2050-11-12").getTime(); jobs.addAll(this.submitJob("test_kylin_cube_with_slr_left_join_empty", dateStart, dateEnd, CubeBuildTypeEnum.BUILD)); - + // this cube's start date is 0, end date is 20501112000000 dateStart = cubeMgr.getCube("test_kylin_cube_without_slr_left_join_empty").getDescriptor().getCubePartitionDesc().getPartitionDateStart(); dateEnd = f.parse("2050-11-12").getTime(); jobs.addAll(this.submitJob("test_kylin_cube_without_slr_left_join_empty", dateStart, dateEnd, CubeBuildTypeEnum.BUILD)); - + waitCubeBuilt(jobs); } - + protected void waitCubeBuilt(List jobs) throws Exception { boolean allFinished = false; @@ -244,19 +249,23 @@ protected void waitCubeBuilt(List jobs) throws Exception { seg.setLastBuildJobID(uuid); } cubeMgr.updateCube(cube); - for (JobInstance job: jobs) { + for (JobInstance job : jobs) { // submit job to store jobManager.submitJob(job); } return jobUuids; } - - private void cleanupOldCubes() { - try { - CliCommandExecutor cli = KylinConfig.getInstanceFromEnv().getCliCommandExecutor(); - cli.execute("hbase org.apache.hadoop.util.RunJar /root/kylin-job-0.6.3-SNAPSHOT-job.jar com.kylinolap.job.hadoop.cube.StorageCleanupJob --delete true"); - } catch (IOException e) { - e.printStackTrace(); - } + + private int cleanupOldCubes() throws Exception { + String[] args = { "--delete", "true" }; + + int exitCode = ToolRunner.run(new StorageCleanupJob(), args); + return exitCode; + } + + private void exportHBaseData() throws IOException { + ExportHBaseData export = new ExportHBaseData(); + export.setup(); + export.exportTables(); } } \ No newline at end of file diff --git a/job/src/test/java/com/kylinolap/job/ExportHBaseData.java b/job/src/test/java/com/kylinolap/job/ExportHBaseData.java new file mode 100644 index 0000000..76daa43 --- /dev/null +++ b/job/src/test/java/com/kylinolap/job/ExportHBaseData.java @@ -0,0 +1,127 @@ +package com.kylinolap.job; + +import java.io.IOException; + +import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.hbase.HTableDescriptor; +import org.apache.hadoop.hbase.client.HBaseAdmin; +import org.apache.hadoop.hbase.client.HConnection; + +import com.kylinolap.common.KylinConfig; +import com.kylinolap.common.persistence.HBaseConnection; +import com.kylinolap.common.util.AbstractKylinTestCase; +import com.kylinolap.common.util.CliCommandExecutor; +import com.kylinolap.common.util.SSHClient; + +public class ExportHBaseData { + + KylinConfig kylinConfig; + HTableDescriptor[] allTables; + Configuration config; + HBaseAdmin hbase; + CliCommandExecutor cli = null; + String exportFolder; + String backupArchive = null; + String tableNameBase; + + public void setup() throws IOException { + long currentTIME = System.currentTimeMillis(); + exportFolder = "/tmp/hbase-export/" + currentTIME + "/"; + backupArchive = "/tmp/kylin_" + currentTIME + ".tar.gz"; + + KylinConfig.destoryInstance(); + System.setProperty(KylinConfig.KYLIN_CONF, AbstractKylinTestCase.SANDBOX_TEST_DATA); + + kylinConfig = KylinConfig.getInstanceFromEnv(); + cli = kylinConfig.getCliCommandExecutor(); + + String metadataUrl = kylinConfig.getMetadataUrl(); + // split TABLE@HBASE_URL + int cut = metadataUrl.indexOf('@'); + tableNameBase = metadataUrl.substring(0, cut); + String hbaseUrl = cut < 0 ? metadataUrl : metadataUrl.substring(cut + 1); + + HConnection conn = HBaseConnection.get(hbaseUrl); + try { + hbase = new HBaseAdmin(conn); + config = hbase.getConfiguration(); + allTables = hbase.listTables(); + } catch (IOException e) { + e.printStackTrace(); + throw e; + } + + } + + public void tearDown() { + + // cleanup hdfs + try { + if (cli != null && exportFolder != null) { + cli.execute("hadoop fs -rm -r " + exportFolder); + } + } catch (IOException e) { + e.printStackTrace(); + } + // cleanup sandbox disk + try { + if (cli != null && exportFolder != null) { + cli.execute("rm -r " + exportFolder); + } + } catch (IOException e) { + e.printStackTrace(); + } + + // delete archive file on sandbox + try { + if (cli != null && backupArchive != null) { + cli.execute("rm " + backupArchive); + } + } catch (IOException e) { + e.printStackTrace(); + } + + + KylinConfig.destoryInstance(); + + } + + public void exportTables() throws IOException { + cli.execute("mkdir -p " + exportFolder); + + for (HTableDescriptor table : allTables) { + String tName = table.getNameAsString(); + if (!tName.startsWith(tableNameBase) && !tName.startsWith("KYLIN_")) +// if (!tName.equals(tableNameBase) ) // this is for debug + continue; + + cli.execute("hbase org.apache.hadoop.hbase.mapreduce.Export " + tName + " " + exportFolder + tName); + } + + cli.execute("hadoop fs -copyToLocal " + exportFolder + " " + exportFolder); + cli.execute("tar -zcvf " + backupArchive + " --directory=" + exportFolder + " ."); + downloadToLocal(); + } + + public void downloadToLocal() throws IOException { + + SSHClient ssh = new SSHClient(kylinConfig.getRemoteHadoopCliHostname(), kylinConfig.getRemoteHadoopCliUsername(), kylinConfig.getRemoteHadoopCliPassword()); + try { + ssh.scpFileToLocal(backupArchive, "../examples/test_case_data/minicluster/hbase-export.tar.gz"); + } catch (Exception e) { + e.printStackTrace(); + } + } + + public static void main(String[] args) { + ExportHBaseData export = new ExportHBaseData(); + try { + export.setup(); + export.exportTables(); + } catch (IOException e) { + e.printStackTrace(); + } finally { + export.tearDown(); + } + } +} diff --git a/storage/src/test/java/com/kylinolap/storage/minicluster/ExportHBaseData.java b/storage/src/test/java/com/kylinolap/storage/minicluster/ExportHBaseData.java deleted file mode 100644 index fa91fff..0000000 --- a/storage/src/test/java/com/kylinolap/storage/minicluster/ExportHBaseData.java +++ /dev/null @@ -1,127 +0,0 @@ -package com.kylinolap.storage.minicluster; - -import java.io.IOException; - -import org.apache.hadoop.conf.Configuration; -import org.apache.hadoop.hbase.HTableDescriptor; -import org.apache.hadoop.hbase.client.HBaseAdmin; -import org.apache.hadoop.hbase.client.HConnection; - -import com.kylinolap.common.KylinConfig; -import com.kylinolap.common.persistence.HBaseConnection; -import com.kylinolap.common.util.AbstractKylinTestCase; -import com.kylinolap.common.util.CliCommandExecutor; -import com.kylinolap.common.util.SSHClient; - -public class ExportHBaseData { - - KylinConfig kylinConfig; - HTableDescriptor[] allTables; - Configuration config; - HBaseAdmin hbase; - CliCommandExecutor cli = null; - String exportFolder; - String backupArchive = null; - String tableNameBase; - - public void setup() throws IOException { - long currentTIME = System.currentTimeMillis(); - exportFolder = "/tmp/hbase-export/" + currentTIME + "/"; - backupArchive = "/tmp/kylin_" + currentTIME + ".tar.gz"; - - KylinConfig.destoryInstance(); - System.setProperty(KylinConfig.KYLIN_CONF, AbstractKylinTestCase.SANDBOX_TEST_DATA); - - kylinConfig = KylinConfig.getInstanceFromEnv(); - cli = kylinConfig.getCliCommandExecutor(); - - String metadataUrl = kylinConfig.getMetadataUrl(); - // split TABLE@HBASE_URL - int cut = metadataUrl.indexOf('@'); - tableNameBase = metadataUrl.substring(0, cut); - String hbaseUrl = cut < 0 ? metadataUrl : metadataUrl.substring(cut + 1); - - HConnection conn = HBaseConnection.get(hbaseUrl); - try { - hbase = new HBaseAdmin(conn); - config = hbase.getConfiguration(); - allTables = hbase.listTables(); - } catch (IOException e) { - e.printStackTrace(); - throw e; - } - - } - - public void tearDown() { - - // cleanup hdfs - try { - if (cli != null && exportFolder != null) { - cli.execute("hadoop fs -rm -r " + exportFolder); - } - } catch (IOException e) { - e.printStackTrace(); - } - // cleanup sandbox disk - try { - if (cli != null && exportFolder != null) { - cli.execute("rm -r " + exportFolder); - } - } catch (IOException e) { - e.printStackTrace(); - } - - // delete archive file on sandbox - try { - if (cli != null && backupArchive != null) { - cli.execute("rm " + backupArchive); - } - } catch (IOException e) { - e.printStackTrace(); - } - - - KylinConfig.destoryInstance(); - - } - - public void exportTables() throws IOException { - cli.execute("mkdir -p " + exportFolder); - - for (HTableDescriptor table : allTables) { - String tName = table.getNameAsString(); - if (!tName.startsWith(tableNameBase) && !tName.startsWith("KYLIN_")) -// if (!tName.equals(tableNameBase) ) // this is for debug - continue; - - cli.execute("hbase org.apache.hadoop.hbase.mapreduce.Export " + tName + " " + exportFolder + tName); - } - - cli.execute("hadoop fs -copyToLocal " + exportFolder + " " + exportFolder); - cli.execute("tar -zcvf " + backupArchive + " --directory=" + exportFolder + " ."); - downloadToLocal(); - } - - public void downloadToLocal() throws IOException { - - SSHClient ssh = new SSHClient(kylinConfig.getRemoteHadoopCliHostname(), kylinConfig.getRemoteHadoopCliUsername(), kylinConfig.getRemoteHadoopCliPassword()); - try { - ssh.scpFileToLocal(backupArchive, "../examples/test_case_data/minicluster/hbase-export.tar.gz"); - } catch (Exception e) { - e.printStackTrace(); - } - } - - public static void main(String[] args) { - ExportHBaseData export = new ExportHBaseData(); - try { - export.setup(); - export.exportTables(); - } catch (IOException e) { - e.printStackTrace(); - } finally { - export.tearDown(); - } - } -} From 0681b39a815b864576b279db38a0a19cd559178d Mon Sep 17 00:00:00 2001 From: shaofengshi Date: Thu, 18 Dec 2014 17:50:12 +0800 Subject: [PATCH 5/5] Update KylinQueryTest with mini cluster --- query/pom.xml | 16 ++++++++++++++++ .../java/com/kylinolap/query/test/KylinQueryTest.java | 12 ++++++++---- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/query/pom.xml b/query/pom.xml index 0f035b3..01ad39c 100644 --- a/query/pom.xml +++ b/query/pom.xml @@ -119,6 +119,22 @@ hive-jdbc provided + + org.apache.hbase + hbase-testing-util + ${hbase-hadoop2.version} + test + + + javax.servlet + servlet-api + + + javax.servlet.jsp + jsp-api + + + diff --git a/query/src/test/java/com/kylinolap/query/test/KylinQueryTest.java b/query/src/test/java/com/kylinolap/query/test/KylinQueryTest.java index 037a2da..b82bdbb 100644 --- a/query/src/test/java/com/kylinolap/query/test/KylinQueryTest.java +++ b/query/src/test/java/com/kylinolap/query/test/KylinQueryTest.java @@ -18,12 +18,12 @@ import static org.junit.Assert.*; import java.io.File; +import java.io.IOException; import java.sql.DriverManager; import java.sql.SQLException; import java.util.List; import java.util.Properties; -import com.kylinolap.storage.hbase.coprocessor.observer.ObserverEnabler; import org.apache.commons.lang3.StringUtils; import org.dbunit.database.DatabaseConnection; import org.dbunit.database.IDatabaseConnection; @@ -35,11 +35,13 @@ import com.kylinolap.common.KylinConfig; import com.kylinolap.common.util.AbstractKylinTestCase; import com.kylinolap.common.util.HBaseMetadataTestCase; +import com.kylinolap.common.util.HBaseMiniclusterMetadataTestCase; import com.kylinolap.cube.CubeManager; import com.kylinolap.metadata.project.ProjectInstance; import com.kylinolap.query.enumerator.OLAPQuery; import com.kylinolap.query.relnode.OLAPContext; import com.kylinolap.query.schema.OLAPSchemaFactory; +import com.kylinolap.storage.hbase.coprocessor.observer.ObserverEnabler; public class KylinQueryTest extends KylinTestBase { @@ -52,14 +54,15 @@ public static void setUp() throws Exception { preferCubeOf(joinType); } - protected static void setupAll() throws SQLException { + protected static void setupAll() throws SQLException, IOException, ClassNotFoundException, InterruptedException { setUpEnv(); setUpCubeConn(); setUpH2Conn(); } - private static void setUpEnv() { - HBaseMetadataTestCase.staticCreateTestMetadata(AbstractKylinTestCase.SANDBOX_TEST_DATA); + private static void setUpEnv() throws IOException, ClassNotFoundException, InterruptedException { + HBaseMetadataTestCase.staticCreateTestMetadata(AbstractKylinTestCase.MINICLUSTER_TEST_DATA); + HBaseMiniclusterMetadataTestCase.startupMinicluster(); config = KylinConfig.getInstanceFromEnv(); } @@ -84,6 +87,7 @@ public static void tearDown() throws Exception { printInfo("tearDown"); printInfo("Closing connection..."); clean(); + HBaseMiniclusterMetadataTestCase.shutdownMiniCluster(); } protected static void clean() {