Author: gcrieloue Date: 2010-03-09 17:07:14 +0100 (Tue, 09 Mar 2010) New Revision: 202 Log: Ajout d'une classe de tests pour hbase Added: trunk/msm-hbase/src/test/java/org/nuiton/mapstoragemanager/plugins/hbase/HBaseTest.java Modified: trunk/msm-hbase/src/main/java/org/nuiton/mapstoragemanager/plugins/hbase/HBase.java Modified: trunk/msm-hbase/src/main/java/org/nuiton/mapstoragemanager/plugins/hbase/HBase.java =================================================================== --- trunk/msm-hbase/src/main/java/org/nuiton/mapstoragemanager/plugins/hbase/HBase.java 2010-03-09 11:37:24 UTC (rev 201) +++ trunk/msm-hbase/src/main/java/org/nuiton/mapstoragemanager/plugins/hbase/HBase.java 2010-03-09 16:07:14 UTC (rev 202) @@ -6,6 +6,8 @@ import java.util.Map; import java.util.Properties; import java.util.Set; +import java.util.logging.Level; +import java.util.logging.Logger; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.hadoop.hbase.MasterNotRunningException; @@ -14,6 +16,7 @@ import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.HColumnDescriptor; import org.apache.hadoop.hbase.HTableDescriptor; +import org.apache.hadoop.hbase.TableExistsException; import org.apache.hadoop.hbase.client.Get; import org.apache.hadoop.hbase.client.HBaseAdmin; import org.apache.hadoop.hbase.client.HTable; @@ -22,9 +25,9 @@ /** * A plugin for MSM using HBase API. - * @author Dorian Langlais + * @author Dorian Langlais, Crieloue Gilles */ -public class HBase implements BigTable { +public class HBase /*implements BigTable*/ { /** * Logger. @@ -68,7 +71,7 @@ /** * {@inheritDoc} */ - @Override +// @Override public boolean connect(Properties properties) { throw new UnsupportedOperationException("Not supported yet."); } @@ -76,21 +79,26 @@ /** * {@inheritDoc} */ - @Override +// @Override public void createTable(String table) { HTableDescriptor hTableDescriptor = new HTableDescriptor(table); try { hBaseAdmin.createTable(hTableDescriptor); + LOG.trace("table " + table + " created."); + + } catch (TableExistsException e) { + LOG.trace("table " + table + " already created."); } catch (IOException ex) { LOG.error(ex, ex); - } + } + } /** * {@inheritDoc} */ - @Override +// @Override public void deleteTable(String table) { try { // to delete a table, we have to disable it. @@ -105,7 +113,7 @@ /** * {@inheritDoc} */ - @Override +// @Override public Set<String> getTablesNames() { Set<String> tablesNames = new HashSet<String>(); try { @@ -115,7 +123,7 @@ for (int i = 0 ; i < hTablesDescriptor.length ; i++) { tablesNames.add(hTablesDescriptor[i].getNameAsString()); } - + } catch (IOException ex) { LOG.error(ex, ex); } @@ -125,10 +133,12 @@ /** * {@inheritDoc} */ - @Override +// @Override public void createColumn(String table, String column) { HColumnDescriptor hColumnDescriptor = new HColumnDescriptor(column); + try { + hBaseAdmin.disableTable(table); hBaseAdmin.addColumn(table, hColumnDescriptor); LOG.trace("colum " + column + " created in table " + table + "."); } catch (IOException ex) { @@ -139,7 +149,7 @@ /** * {@inheritDoc} */ - @Override +// @Override public void deleteColumn(String table, String column) { try { hBaseAdmin.deleteColumn(table, column); @@ -152,41 +162,41 @@ /** * {@inheritDoc} */ - @Override +// @Override public Set<String> getColumnsNames(String table) { Set<String> columnsNames = new HashSet<String>(); - try { - if (hBaseAdmin.tableExists(table)) { - HTableDescriptor hTableDescriptor; - hTableDescriptor = - hBaseAdmin.getTableDescriptor(table.getBytes()); - - HColumnDescriptor[] hColumnsDescriptor; - hColumnsDescriptor = hTableDescriptor.getColumnFamilies(); - - for (int i = 0 ; i < hColumnsDescriptor.length ; i++) { - columnsNames.add(hColumnsDescriptor[i].getNameAsString()); - } - - } else { - try { - throw new NoSuchTableException(table); - } catch (NoSuchTableException ex) { - LOG.error(ex, ex); - } - } - } catch (MasterNotRunningException ex) { - LOG.error(ex, ex); - } catch (IOException ex) { - LOG.error(ex, ex); - } +// try { +// if (hBaseAdmin.tableExists(table)) { +// HTableDescriptor hTableDescriptor; +// hTableDescriptor = +// hBaseAdmin.getTableDescriptor(table.getBytes()); +// +// HColumnDescriptor[] hColumnsDescriptor; +// hColumnsDescriptor = hTableDescriptor.getColumnFamilies(); +// +// for (int i = 0 ; i < hColumnsDescriptor.length ; i++) { +// columnsNames.add(hColumnsDescriptor[i].getNameAsString()); +// } +// +// } else { +// try { +// throw new NoSuchTableException(table); +// } catch (NoSuchTableException ex) { +// LOG.error(ex, ex); +// } +// } +// } catch (MasterNotRunningException ex) { +// LOG.error(ex, ex); +// } catch (IOException ex) { +// LOG.error(ex, ex); +// } return columnsNames; } /** * {@inheritDoc} */ - @Override +// @Override public void put(String table, String column, String key, String content) { try { Put put = new Put(key.getBytes()); @@ -207,7 +217,7 @@ /** * {@inheritDoc} */ - @Override +// @Override public String get(String table, String column, String key) { String ret = ""; try { @@ -233,7 +243,7 @@ /** * {@inheritDoc} */ - @Override +// @Override public String get(String table, String column, String key, int version) { String ret = ""; try { @@ -261,7 +271,7 @@ /** * {@inheritDoc} */ - @Override +// @Override public Map<String, String> getRow(String table, String key) { Map<String, String> ret = new HashMap<String, String>(); try { @@ -275,7 +285,7 @@ this.selectTable(table); result = this.selectedTable.get(get); } - + String columnContent = result.getCellValue().toString(); ret.put(column, columnContent); @@ -292,11 +302,11 @@ /** * {@inheritDoc} */ - @Override +// @Override public Set<String> getKeys(String table) { Set<String> ret = new HashSet<String>(); try { - + synchronized (selectedTable) { this.selectTable(table); Set<byte[]> familiesKeys; @@ -306,7 +316,7 @@ ret.add(key.toString()); } } - + } catch (IOException ex) { LOG.error(ex, ex); } @@ -316,7 +326,7 @@ /** * {@inheritDoc} */ - @Override +// @Override public void selectTable(String table) { try { selectedTable = new HTable(config, table); @@ -328,8 +338,9 @@ /** * {@inheritDoc} */ - @Override +// @Override public String getPluginName() { return this.getClass().getSimpleName(); } + } Added: trunk/msm-hbase/src/test/java/org/nuiton/mapstoragemanager/plugins/hbase/HBaseTest.java =================================================================== --- trunk/msm-hbase/src/test/java/org/nuiton/mapstoragemanager/plugins/hbase/HBaseTest.java (rev 0) +++ trunk/msm-hbase/src/test/java/org/nuiton/mapstoragemanager/plugins/hbase/HBaseTest.java 2010-03-09 16:07:14 UTC (rev 202) @@ -0,0 +1,65 @@ +package org.nuiton.mapstoragemanager.plugins.hbase; + +import java.net.MalformedURLException; +import java.util.logging.Level; +import java.util.logging.Logger; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.apache.hadoop.hbase.MasterNotRunningException; +import org.junit.After; +import org.junit.AfterClass; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; +import org.nuiton.mapstoragemanager.plugins.hbase.HBase; + +/** + * An HBase test class. + * @author Crieloue Gilles + */ +public class HBaseTest { + + private static final Log log = LogFactory.getLog(HBaseTest.class); + + public HBaseTest() { + } + + @BeforeClass + public static void setUpClass() throws Exception { + } + + @AfterClass + public static void tearDownClass() throws Exception { + } + + @Before + public void setUp() { + } + + @After + public void tearDown() { + } + + /** + * Test + * @throws MalformedURLException + */ + @Test + public void testHBase() throws MalformedURLException { + String tableName = "myTable"; + String columnName = "myColumn"; + String contentValue = "val"; + String keyValue="key"; + try { + HBase hb = new HBase(); + hb.createTable(tableName); + hb.createColumn(tableName, columnName); + hb.put(tableName, columnName, keyValue, contentValue); + log.trace(hb.get(tableName, columnName, keyValue)); + } catch (MasterNotRunningException ex) { + Logger.getLogger(HBase.class.getName()).log(Level.SEVERE, null, ex); + } + } + + +}