| /** |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| */ |
| |
| package org.apache.hcatalog.hbase.snapshot; |
| |
| import static org.junit.Assert.assertEquals; |
| import static org.junit.Assert.assertTrue; |
| |
| import java.net.URI; |
| import java.util.Map; |
| |
| import org.apache.hadoop.fs.Path; |
| import org.apache.hadoop.hbase.HBaseConfiguration; |
| import org.apache.hadoop.hbase.client.HBaseAdmin; |
| import org.apache.hadoop.hive.cli.CliSessionState; |
| import org.apache.hadoop.hive.conf.HiveConf; |
| import org.apache.hadoop.hive.conf.HiveConf.ConfVars; |
| import org.apache.hadoop.hive.ql.processors.CommandProcessorResponse; |
| import org.apache.hadoop.hive.ql.session.SessionState; |
| import org.apache.hcatalog.cli.HCatDriver; |
| import org.apache.hcatalog.cli.SemanticAnalysis.HCatSemanticAnalyzer; |
| import org.apache.hcatalog.hbase.SkeletonHBaseTest; |
| import org.apache.zookeeper.ZooKeeper; |
| import org.apache.zookeeper.data.Stat; |
| import org.junit.Test; |
| |
| |
| public class TestZNodeSetUp extends SkeletonHBaseTest { |
| |
| private static HiveConf hcatConf; |
| private static HCatDriver hcatDriver; |
| |
| public void Initialize() throws Exception { |
| |
| hcatConf = getHiveConf(); |
| hcatConf.set(ConfVars.SEMANTIC_ANALYZER_HOOK.varname, |
| HCatSemanticAnalyzer.class.getName()); |
| URI fsuri = getFileSystem().getUri(); |
| Path whPath = new Path(fsuri.getScheme(), fsuri.getAuthority(), |
| getTestDir()); |
| hcatConf.set(HiveConf.ConfVars.HADOOPFS.varname, fsuri.toString()); |
| hcatConf.set(ConfVars.METASTOREWAREHOUSE.varname, whPath.toString()); |
| |
| //Add hbase properties |
| |
| for (Map.Entry<String, String> el : getHbaseConf()) { |
| if (el.getKey().startsWith("hbase.")) { |
| hcatConf.set(el.getKey(), el.getValue()); |
| } |
| } |
| HBaseConfiguration.merge(hcatConf, |
| RevisionManagerConfiguration.create()); |
| hcatConf.set(RMConstants.ZOOKEEPER_DATADIR, "/rm_base"); |
| SessionState.start(new CliSessionState(hcatConf)); |
| hcatDriver = new HCatDriver(); |
| |
| } |
| |
| @Test |
| public void testBasicZNodeCreation() throws Exception { |
| |
| Initialize(); |
| int port = getHbaseConf().getInt("hbase.zookeeper.property.clientPort", 2181); |
| String servers = getHbaseConf().get("hbase.zookeeper.quorum"); |
| String[] splits = servers.split(","); |
| StringBuffer sb = new StringBuffer(); |
| for (String split : splits) { |
| sb.append(split); |
| sb.append(':'); |
| sb.append(port); |
| } |
| |
| hcatDriver.run("drop table test_table"); |
| CommandProcessorResponse response = hcatDriver |
| .run("create table test_table(key int, value string) STORED BY " + |
| "'org.apache.hcatalog.hbase.HBaseHCatStorageHandler'" |
| + "TBLPROPERTIES ('hbase.columns.mapping'=':key,cf1:val')"); |
| |
| assertEquals(0, response.getResponseCode()); |
| |
| HBaseAdmin hAdmin = new HBaseAdmin(getHbaseConf()); |
| boolean doesTableExist = hAdmin.tableExists("test_table"); |
| assertTrue(doesTableExist); |
| |
| |
| ZKUtil zkutil = new ZKUtil(sb.toString(), "/rm_base"); |
| ZooKeeper zk = zkutil.getSession(); |
| String tablePath = PathUtil.getTxnDataPath("/rm_base", "test_table"); |
| Stat tempTwo = zk.exists(tablePath, false); |
| assertTrue(tempTwo != null); |
| |
| String cfPath = PathUtil.getTxnDataPath("/rm_base", "test_table") + "/cf1"; |
| Stat tempThree = zk.exists(cfPath, false); |
| assertTrue(tempThree != null); |
| |
| hcatDriver.run("drop table test_table"); |
| |
| System.out.println("Table path : " + tablePath); |
| Stat tempFour = zk.exists(tablePath, false); |
| assertTrue(tempFour == null); |
| |
| } |
| |
| } |