Author: afages Date: 2010-03-24 18:27:14 +0100 (Wed, 24 Mar 2010) New Revision: 269 Log: Modif HBase 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/Main.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-24 15:22:19 UTC (rev 268) +++ trunk/msm-hbase/src/main/java/org/nuiton/mapstoragemanager/plugins/hbase/HBase.java 2010-03-24 17:27:14 UTC (rev 269) @@ -13,14 +13,16 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.hadoop.hbase.MasterNotRunningException; -//import org.nuiton.mapstoragemanager.plugins.BigTable; +import org.nuiton.mapstoragemanager.plugins.BigTable; 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.TableNotDisabledException; import org.apache.hadoop.hbase.client.Get; import org.apache.hadoop.hbase.client.HBaseAdmin; +import org.apache.hadoop.hbase.client.HConnection; import org.apache.hadoop.hbase.client.HTable; import org.apache.hadoop.hbase.client.Put; import org.apache.hadoop.hbase.client.Result; @@ -33,7 +35,7 @@ * @author Copyright CodeLutin * @since 0.1-SNAPSHOT */ -public class HBase /*implements BigTable*/ { +public class HBase implements BigTable { /** * Logger. @@ -58,46 +60,42 @@ * The selected Table. */ private HTable selectedTable; -// private HTable table; -// private String familyName = "mylittlecolumnfamily"; -// private String rowName = "myLittleRow"; -// private String tableName = "mylittletable"; /** * HBase plugin Constructor. * @throws MasterNotRunningException */ public HBase() throws MasterNotRunningException { - // You need a configuration object to tell the client where to connect. - // When you create a HBaseConfiguration, it reads in whatever you've set - // into your hbase-site.xml and in hbase-default.xml, as long as these can - // be found on the CLASSPATH - org.apache.hadoop.conf.Configuration conf = - new org.apache.hadoop.conf.Configuration(); - config = new HBaseConfiguration(conf); + config = new HBaseConfiguration(); hBaseAdmin = new HBaseAdmin(config); } /** * {@inheritDoc} */ -// @Override + @Override public boolean connect(Properties properties) { - throw new UnsupportedOperationException("Not supported yet."); + config = new HBaseConfiguration(); + try { + hBaseAdmin = new HBaseAdmin(config); + return true; + } catch (MasterNotRunningException ex) { + LOG.error(ex, ex); + return false; + } } /** * {@inheritDoc} */ -// @Override + @Override public void createTable(String table) { HTableDescriptor hTableDescriptor = new HTableDescriptor(table); try { - hBaseAdmin.createTable(hTableDescriptor); - hBaseAdmin.enableTable(table); + HConnection hc = hBaseAdmin.getConnection(); + hc.getMaster().createTable(hTableDescriptor); LOG.trace("table " + table + " created."); - } catch (TableExistsException e) { LOG.trace("table " + table + " already created."); } catch (IOException ex) { @@ -109,13 +107,16 @@ /** * {@inheritDoc} */ -// @Override + @Override public void deleteTable(String table) { try { - // to delete a table, we have to disable it. - hBaseAdmin.disableTable(table); - hBaseAdmin.deleteTable(table); + HConnection hc = hBaseAdmin.getConnection(); + hc.getMaster().disableTable(table.getBytes()); + hc.getMaster().deleteTable(table.getBytes()); LOG.trace("table " + table + " deleted."); + + } catch (TableNotDisabledException e) { + LOG.trace("table " + table + " not disable."); } catch (IOException ex) { LOG.error(ex, ex); } @@ -124,7 +125,7 @@ /** * {@inheritDoc} */ -// @Override + @Override public Set<String> getTablesNames() { Set<String> tablesNames = new HashSet<String>(); try { @@ -144,17 +145,16 @@ /** * {@inheritDoc} */ -// @Override + @Override public void createColumn(String table, String column) { - HColumnDescriptor hColumnDescriptor = new HColumnDescriptor(column); + try { + HColumnDescriptor hcolumnDescriptor = new HColumnDescriptor(column); + HConnection hc = hBaseAdmin.getConnection(); + hc.getMaster().disableTable(table.getBytes()); + hc.getMaster().addColumn(table.getBytes(), hcolumnDescriptor); + hc.getMaster().enableTable(table.getBytes()); + LOG.trace("column " + column + " created."); - - try { - //hBaseAdmin.disableTable(table); - hBaseAdmin.getTableDescriptor(table.getBytes()).addFamily(hColumnDescriptor); - //hBaseAdmin.addColumn(table, hColumnDescriptor); - LOG.trace("colum " + column + " created in table " + table + "."); - //hBaseAdmin.enableTable(table); } catch (IOException ex) { LOG.error(ex, ex); } @@ -163,13 +163,19 @@ /** * {@inheritDoc} */ -// @Override + @Override public void deleteColumn(String table, String column) { + + /** + * Delete Column. + */ try { - hBaseAdmin.disableTable(table); - hBaseAdmin.deleteColumn(table, column); - LOG.trace("colum " + column + " deleted from table " + table + "."); - hBaseAdmin.enableTable(table); + HConnection hc = hBaseAdmin.getConnection(); + hc.getMaster().disableTable(table.getBytes()); + hc.getMaster().deleteColumn(table.getBytes(), column.getBytes()); + hc.getMaster().enableTable(table.getBytes()); + LOG.trace("column " + column + " created."); + } catch (IOException ex) { LOG.error(ex, ex); } @@ -178,7 +184,7 @@ /** * {@inheritDoc} */ -// @Override + @Override public Set<String> getColumnsNames(String table) { Set<String> columnsNames = new HashSet<String>(); // try { @@ -212,7 +218,7 @@ /** * {@inheritDoc} */ -// @Override + @Override public void put(String table, String column, String key, String content) { try { Put put = new Put(key.getBytes()); @@ -233,7 +239,7 @@ /** * {@inheritDoc} */ -// @Override + @Override public String get(String table, String column, String key) { String ret = ""; try { @@ -259,7 +265,7 @@ /** * {@inheritDoc} */ -// @Override + @Override public String get(String table, String column, String key, int version) { String ret = ""; try { @@ -287,7 +293,7 @@ /** * {@inheritDoc} */ -// @Override + @Override public Map<String, String> getRow(String table, String key) { Map<String, String> ret = new HashMap<String, String>(); try { @@ -318,7 +324,7 @@ /** * {@inheritDoc} */ -// @Override + @Override public Set<String> getKeys(String table) { Set<String> ret = new HashSet<String>(); try { @@ -342,7 +348,7 @@ /** * {@inheritDoc} */ -// @Override + @Override public void selectTable(String table) { try { selectedTable = new HTable(config, table); @@ -354,7 +360,7 @@ /** * {@inheritDoc} */ -// @Override + @Override public String getPluginName() { return this.getClass().getSimpleName(); } @@ -362,7 +368,7 @@ /** * {@inheritDoc} */ -// @Override + @Override public String getDescription() { throw new UnsupportedOperationException("Not supported yet."); } @@ -370,7 +376,7 @@ /** * {@inheritDoc} */ -// @Override + @Override public void load() { final String pluginName = getPluginName(); JMenu menuConnect = MainUI.getInstance().getMenuConnect(); @@ -397,7 +403,7 @@ /** * {@inheritDoc} */ -// @Override + @Override public void unload() { JMenu menuConnect = MainUI.getInstance().getMenuConnect(); if(menuItemConnect != null) { Modified: trunk/msm-hbase/src/main/java/org/nuiton/mapstoragemanager/plugins/hbase/Main.java =================================================================== --- trunk/msm-hbase/src/main/java/org/nuiton/mapstoragemanager/plugins/hbase/Main.java 2010-03-24 15:22:19 UTC (rev 268) +++ trunk/msm-hbase/src/main/java/org/nuiton/mapstoragemanager/plugins/hbase/Main.java 2010-03-24 17:27:14 UTC (rev 269) @@ -1,11 +1,140 @@ package org.nuiton.mapstoragemanager.plugins.hbase; +import java.io.IOException; +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.ColumnNameParseException; +import org.apache.hadoop.hbase.HBaseConfiguration; +import org.apache.hadoop.hbase.HColumnDescriptor; +import org.apache.hadoop.hbase.HServerAddress; +import org.apache.hadoop.hbase.HTableDescriptor; import org.apache.hadoop.hbase.MasterNotRunningException; +import org.apache.hadoop.hbase.TableExistsException; +import org.apache.hadoop.hbase.TableNotDisabledException; +import org.apache.hadoop.hbase.client.HBaseAdmin; +import org.apache.hadoop.hbase.client.HConnection; +import org.apache.hadoop.hbase.client.HTable; +import org.apache.hadoop.hbase.client.ServerCallable; +import org.apache.hadoop.hbase.ipc.HRegionInterface; +import org.apache.hadoop.hbase.util.Bytes; -public class Main{ +public class Main { - public static void main(String[] args) throws MasterNotRunningException { - HBase hb = new HBase(); + /** + * Logger. + */ + private static final Log LOG = LogFactory.getLog(Main.class); + + public static void main(String[] args) { + HBaseConfiguration conf = new HBaseConfiguration(); + conf.set("hbase.client.pause", "1000"); + conf.set("hbase.master.port", "60000"); + conf.set("hbase.regionserver.port", "60020"); + conf.set("hbase.regionserver.info.port", "60030"); + conf.set("hbase.client.retries.number", "5"); + HBaseAdmin hBaseAdmin = null; + try { + LOG.debug("BEGIN : hBaseAdmin = new HBaseAdmin(conf);"); + hBaseAdmin = new HBaseAdmin(conf); + LOG.debug("END : hBaseAdmin = new HBaseAdmin(conf);"); + + } catch (MasterNotRunningException ex) { + LOG.fatal(ex, ex); + } + + if (hBaseAdmin == null) { + LOG.debug("hbaseAdmin : NULL"); + } else { + LOG.debug("hbaseAdmin : NOT NULL"); + } + + HConnection hc = hBaseAdmin.getConnection(); + /** + * Create Table. + */ + String tableName = null; + try { + tableName = "test"; + HTableDescriptor hTableDescriptor = new HTableDescriptor(tableName); + hc.getMaster().createTable(hTableDescriptor); + LOG.trace("table " + tableName + " created."); + + } catch (TableExistsException e) { + LOG.trace("table " + tableName + " already created."); + } catch (IOException ex) { + LOG.error(ex, ex); + } + + /** + * Create Column. + */ + String columnName = null; + try { + tableName = "test"; + columnName = "testCol"; + HColumnDescriptor hcolumnDescriptor = new HColumnDescriptor(columnName); + hc.getMaster().disableTable(tableName.getBytes()); + hc.getMaster().addColumn(tableName.getBytes(), hcolumnDescriptor); + hc.getMaster().enableTable(tableName.getBytes()); + LOG.trace("column " + columnName + " created."); + + } catch (IOException ex) { + LOG.error(ex, ex); + } + + /** + * List Tables. + */ + HTableDescriptor[] hTableDesriptors = null; + try { + System.out.println(hc.listTables().length); + LOG.debug("BEGIN : hTableDesriptors = hc.listTables()"); + hc.getMaster(); + hc.tableExists(tableName.getBytes()); + hTableDesriptors = hc.listTables(); + LOG.debug("END : hTableDesriptors = hc.listTables()"); + } catch (IOException ex) { + LOG.fatal(ex, ex); + } + + for (HTableDescriptor htable : hTableDesriptors) { + LOG.debug(htable.getName()); + } + + /** + * List ColumnsNames. + */ + + /** + * Delete Column. + */ + try { + tableName = "test"; + columnName = "testCol"; + hc.getMaster().disableTable(tableName.getBytes()); + hc.getMaster().deleteColumn(tableName.getBytes(), columnName.getBytes()); + hc.getMaster().enableTable(tableName.getBytes()); + LOG.trace("column " + columnName + " deleted."); + + } catch (IOException ex) { + LOG.error(ex, ex); + } + + /** + * Delete Table. + */ + try { + tableName = "test"; + hc.getMaster().disableTable(tableName.getBytes()); + hc.getMaster().deleteTable(tableName.getBytes()); + LOG.trace("table " + tableName + " deleted."); + + } catch (TableNotDisabledException e) { + LOG.trace("table " + tableName + " not disable."); + } catch (IOException ex) { + LOG.error(ex, ex); + } } - -} \ No newline at end of file +}