Author: dlanglais Date: 2010-02-25 15:26:32 +0100 (Thu, 25 Feb 2010) New Revision: 127 Added: trunk/msm-hbase/src/main/java/org/nuiton/mapstoragemanager/plugins/hbase/MyLittleHBaseClient.java trunk/msm-hbase/src/site/failedBuild_25.02.2010.txt Modified: trunk/msm-hbase/pom.xml trunk/msm-hbase/src/main/java/org/nuiton/mapstoragemanager/plugins/hbase/HBaseNewBigTable.java Log: tentative d'avancement sur le plugin HBase, je n'arrive pas ?\195?\160 lancer MyLittleHBaseClient <- classe trouv?\195?\169e sur le site de hbase, ainsi que la trace du build dans src/site/ Modified: trunk/msm-hbase/pom.xml =================================================================== --- trunk/msm-hbase/pom.xml 2010-02-25 14:12:17 UTC (rev 126) +++ trunk/msm-hbase/pom.xml 2010-02-25 14:26:32 UTC (rev 127) @@ -9,6 +9,19 @@ <id>org.nuiton</id> <url>http://maven.nuiton.org/release</url> </repository> + <repository> + <id>sharengo-maven2-repository</id> + <name>Sharengo's repository</name> + <url>http://maven2.sharengo.org</url> + <snapshots> + <enabled>true</enabled> + <checksumPolicy>warn</checksumPolicy> + </snapshots> + <releases> + <enabled>true</enabled> + <checksumPolicy>warn</checksumPolicy> + </releases> + </repository> </repositories> <modelVersion>4.0.0</modelVersion> @@ -55,16 +68,56 @@ <!-- HBase --> <dependency> - <groupId>org.apache.mahout.hadoop</groupId> - <artifactId>hadoop-core</artifactId> - <version>0.20.1</version> + <groupId>commons-logging</groupId> + <artifactId>commons-logging</artifactId> </dependency> - <dependency> - <groupId>org.apache.mahout.hbase</groupId> + <groupId>log4j</groupId> + <artifactId>log4j</artifactId> + <version>1.2.4</version> + </dependency> + <dependency> + <groupId>org.apache.hadoop.zookeeper</groupId> + <artifactId>zookeeper</artifactId> + <version>r785019-hbase-1329</version> + <scope>compile</scope> + </dependency> + <dependency> + <groupId>org.hadoop</groupId> + <artifactId>hadoop</artifactId> + <version>0.20.0-plus4681-core</version> + <scope>compile</scope> + </dependency> + <dependency> + <groupId>org.hadoop</groupId> <artifactId>hbase</artifactId> <version>0.20.0</version> + <scope>compile</scope> </dependency> + <dependency> + <groupId>org.hadoop</groupId> + <artifactId>hbase-test</artifactId> + <version>0.20.0</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.hadoop</groupId> + <artifactId>hadoop-test</artifactId> + <version>0.20.0</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>commons-cli</groupId> + <artifactId>commons-cli</artifactId> + <version>1.1</version> + <scope>test</scope> + </dependency> + + <dependency> + <groupId>org.mortbay.jetty</groupId> + <artifactId>jetty</artifactId> + <version>6.1.8</version> + </dependency> </dependencies> <!-- ************************************************************* --> @@ -147,7 +200,7 @@ <build> <!--<plugins> - + <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> @@ -215,3 +268,4 @@ + Modified: trunk/msm-hbase/src/main/java/org/nuiton/mapstoragemanager/plugins/hbase/HBaseNewBigTable.java =================================================================== --- trunk/msm-hbase/src/main/java/org/nuiton/mapstoragemanager/plugins/hbase/HBaseNewBigTable.java 2010-02-25 14:12:17 UTC (rev 126) +++ trunk/msm-hbase/src/main/java/org/nuiton/mapstoragemanager/plugins/hbase/HBaseNewBigTable.java 2010-02-25 14:26:32 UTC (rev 127) @@ -90,6 +90,8 @@ */ public void deleteTable(String table) { try { + // to delete a table, we have to disable it. + hBaseAdmin.disableTable(table); hBaseAdmin.deleteTable(table); LOG.trace("table " + table + " deleted."); } catch (IOException ex) { Added: trunk/msm-hbase/src/main/java/org/nuiton/mapstoragemanager/plugins/hbase/MyLittleHBaseClient.java =================================================================== --- trunk/msm-hbase/src/main/java/org/nuiton/mapstoragemanager/plugins/hbase/MyLittleHBaseClient.java (rev 0) +++ trunk/msm-hbase/src/main/java/org/nuiton/mapstoragemanager/plugins/hbase/MyLittleHBaseClient.java 2010-02-25 14:26:32 UTC (rev 127) @@ -0,0 +1,108 @@ +package org.nuiton.mapstoragemanager.plugins.hbase; + +import java.io.IOException; + +import org.apache.hadoop.hbase.HBaseConfiguration; +import org.apache.hadoop.hbase.HColumnDescriptor; +import org.apache.hadoop.hbase.HTableDescriptor; +import org.apache.hadoop.hbase.client.Get; +import org.apache.hadoop.hbase.client.HBaseAdmin; +import org.apache.hadoop.hbase.client.HTable; +import org.apache.hadoop.hbase.client.Put; +import org.apache.hadoop.hbase.client.Result; +import org.apache.hadoop.hbase.client.ResultScanner; +import org.apache.hadoop.hbase.client.Scan; +import org.apache.hadoop.hbase.util.Bytes; + + +// Class that has nothing but a main. +// Does a Put, Get and a Scan against an hbase table. +public class MyLittleHBaseClient { + public static void main(String[] args) throws IOException { + // 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 + HBaseConfiguration config = new HBaseConfiguration(); + +// HBaseAdmin hBaseAdmin = new HBaseAdmin(config); +// { +// HTableDescriptor hTableDescriptor = new HTableDescriptor("myLittleHBaseTable2"); +// HColumnDescriptor hColumnDescriptor = new HColumnDescriptor("myLittleRow2"); +// hTableDescriptor.addFamily(hColumnDescriptor); +// hBaseAdmin.createTable(hTableDescriptor); +// } +// for (HTableDescriptor hTableDescriptor : hBaseAdmin.listTables()) { +// System.out.println(hTableDescriptor.getNameAsString()); +// for (HColumnDescriptor hColumnDescriptor : hTableDescriptor.getColumnFamilies()) { +// System.out.println("\t" + hColumnDescriptor.getNameAsString()); +// } +// } + + // This instantiates an HTable object that connects you to + // the "myLittleHBaseTable" table. + HTable table = new HTable(config, "myLittleHBaseTable"); + + // To add to a row, use Put. A Put constructor takes the name of the row + // you want to insert into as a byte array. In HBase, the Bytes class has + // utility for converting all kinds of java types to byte arrays. In the + // below, we are converting the String "myLittleRow" into a byte array to + // use as a row key for our update. Once you have a Put instance, you can + // adorn it by setting the names of columns you want to update on the row, + // the timestamp to use in your update, etc.If no timestamp, the server + // applies current time to the edits. + Put p = new Put(Bytes.toBytes("myLittleRow")); + + // To set the value you'd like to update in the row 'myLittleRow', specify + // the column family, column qualifier, and value of the table cell you'd + // like to update. The column family must already exist in your table + // schema. The qualifier can be anything. All must be specified as byte + // arrays as hbase is all about byte arrays. Lets pretend the table + // 'myLittleHBaseTable' was created with a family 'myLittleFamily'. + p.add(Bytes.toBytes("myLittleFamily"), Bytes.toBytes("someQualifier"), + Bytes.toBytes("Some Value")); + + // Once you've adorned your Put instance with all the updates you want to + // make, to commit it do the following (The HTable#put method takes the + // Put instance you've been building and pushes the changes you made into + // hbase) + table.put(p); + + // Now, to retrieve the data we just wrote. The values that come back are + // Result instances. Generally, a Result is an object that will package up + // the hbase return into the form you find most palatable. + Get g = new Get(Bytes.toBytes("myLittleRow")); + Result r = table.get(g); + byte [] value = r.getValue(Bytes.toBytes("myLittleFamily"), + Bytes.toBytes("someQualifier")); + // If we convert the value bytes, we should get back 'Some Value', the + // value we inserted at this location. + String valueStr = Bytes.toString(value); + System.out.println("GET: " + valueStr); + + // Sometimes, you won't know the row you're looking for. In this case, you + // use a Scanner. This will give you cursor-like interface to the contents + // of the table. To set up a Scanner, do like you did above making a Put + // and a Get, create a Scan. Adorn it with column names, etc. + Scan s = new Scan(); + s.addColumn(Bytes.toBytes("myLittleFamily"), Bytes.toBytes("someQualifier")); + ResultScanner scanner = table.getScanner(s); + try { + // Scanners return Result instances. + // Now, for the actual iteration. One way is to use a while loop like so: + for (Result rr = scanner.next(); rr != null; rr = scanner.next()) { + // print out the row we found and the columns we were looking for + System.out.println("Found row: " + rr); + } + + // The other approach is to use a foreach loop. Scanners are iterable! + // for (Result rr : scanner) { + // System.out.println("Found row: " + rr); + // } + } finally { + // Make sure you close your scanners when you are done! + // Thats why we have it inside a try/finally clause + scanner.close(); + } + } +} Added: trunk/msm-hbase/src/site/failedBuild_25.02.2010.txt =================================================================== --- trunk/msm-hbase/src/site/failedBuild_25.02.2010.txt (rev 0) +++ trunk/msm-hbase/src/site/failedBuild_25.02.2010.txt 2010-02-25 14:26:32 UTC (rev 127) @@ -0,0 +1,67 @@ +NetBeans: Executing 'mvn -Dexec.classpathScope=runtime -Dexec.args=-classpath %classpath org.nuiton.mapstoragemanager.plugins.hbase.MyLittleHBaseClient -Dexec.executable=/usr/java/jdk1.6.0_18/bin/java -Dnetbeans.execution=true process-classes org.codehaus.mojo:exec-maven-plugin:1.1.1:exec' +NetBeans: JAVA_HOME=/usr/java/jdk1.6.0_18 +Scanning for projects... +------------------------------------------------------------------------ +Building MSM-HBase + task-segment: [process-classes, org.codehaus.mojo:exec-maven-plugin:1.1.1:exec] +------------------------------------------------------------------------ +[enforcer:enforce] +[dependency:copy] +[resources:resources] +Using 'UTF-8' encoding to copy filtered resources. +Copying 6 resources +[compiler:compile] +Nothing to compile - all classes are up to date +[exec:exec] + INFO [main] (Environment.java:97) logEnv - Client environment:zookeeper.version=3.2.0--1, built on 05/15/2009 06:05 GMT + INFO [main] (Environment.java:97) logEnv - Client environment:host.name=devel + INFO [main] (Environment.java:97) logEnv - Client environment:java.version=1.6.0_18 + INFO [main] (Environment.java:97) logEnv - Client environment:java.vendor=Sun Microsystems Inc. + INFO [main] (Environment.java:97) logEnv - Client environment:java.home=/usr/java/jdk1.6.0_18/jre + INFO [main] (Environment.java:97) logEnv - Client environment:java.class.path=/home/langlais/devel/mapstoragemanager/msm-hbase/target/classes:/home/langlais/.m2/repository/org/nuiton/msm/0.1-SNAPSHOT/msm-0.1-SNAPSHOT.jar:/home/langlais/.m2/repository/org/nuiton/nuiton-utils/1.1.0/nuiton-utils-1.1.0.jar:/home/langlais/.m2/repository/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.jar:/home/langlais/.m2/repository/commons-primitives/commons-primitives/1.0/commons-primitives-1.0.jar:/home/langlais/.m2/repository/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.jar:/home/langlais/.m2/repository/commons-beanutils/commons-beanutils/1.8.0/commons-beanutils-1.8.0.jar:/home/langlais/.m2/repository/org/nuiton/i18n/nuiton-i18n-api/1.0.0/nuiton-i18n-api-1.0.0.jar:/home/langlais/.m2/repository/org/nuiton/jaxx/jaxx-runtime/2.0.0-beta-6-SNAPSHOT/jaxx-runtime-2.0.0-beta-6-SNAPSHOT.jar:/home/langlais/.m2/repository/commons-lang/commons-lang/2.4/commons-lang-2.4.jar:/home/langlais/.m2/repository/org/swinglabs/jxlayer/3.0.3/jxlayer-3.0.3.jar:/home/langlais/.m2/repository/commons-jxpath/commons-jxpath/1.3/commons-jxpath-1.3.jar:/home/langlais/.m2/repository/com/opensymphony/xwork/2.1.3/xwork-2.1.3.jar:/home/langlais/.m2/repository/opensymphony/ognl/2.6.11/ognl-2.6.11.jar:/home/langlais/.m2/repository/org/swinglabs/swingx/1.6/swingx-1.6.jar:/home/langlais/.m2/repository/com/jhlabs/filters/2.0.235/filters-2.0.235.jar:/home/langlais/.m2/repository/org/swinglabs/swing-worker/1.1/swing-worker-1.1.jar:/home/langlais/.m2/repository/org/nuiton/jaxx/jaxx-widgets/2.0.0-beta-6-SNAPSHOT/jaxx-widgets-2.0.0-beta-6-SNAPSHOT.jar:/home/langlais/.m2/repository/commons-io/commons-io/1.4/commons-io-1.4.jar:/home/langlais/.m2/repository/log4j/log4j/1.2.4/log4j-1.2.4.jar:/home/langlais/.m2/repository/org/apache/hadoop/zookeeper/zookeeper/r785019-hbase-1329/zookeeper-r785019-hbase-1329.jar:/home/langlais/.m2/repository/org/hadoop/hadoop/0.20.0-plus4681-core/hadoop-0.20.0-plus4681-core.jar:/home/langlais/.m2/repository/org/hadoop/hbase/0.20.0/hbase-0.20.0.jar:/home/langlais/.m2/repository/org/mortbay/jetty/jetty/6.1.8/jetty-6.1.8.jar:/home/langlais/.m2/repository/org/mortbay/jetty/jetty-util/6.1.8/jetty-util-6.1.8.jar:/home/langlais/.m2/repository/org/mortbay/jetty/servlet-api-2.5/6.1.8/servlet-api-2.5-6.1.8.jar + INFO [main] (Environment.java:97) logEnv - Client environment:java.library.path=/usr/java/jdk1.6.0_18/jre/lib/amd64/server:/usr/java/jdk1.6.0_18/jre/lib/amd64:/usr/java/jdk1.6.0_18/jre/../lib/amd64:/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib + INFO [main] (Environment.java:97) logEnv - Client environment:java.io.tmpdir=/tmp + INFO [main] (Environment.java:97) logEnv - Client environment:java.compiler=<NA> + INFO [main] (Environment.java:97) logEnv - Client environment:os.name=Linux + INFO [main] (Environment.java:97) logEnv - Client environment:os.arch=amd64 + INFO [main] (Environment.java:97) logEnv - Client environment:os.version=2.6.31-19-generic + INFO [main] (Environment.java:97) logEnv - Client environment:user.name=langlais + INFO [main] (Environment.java:97) logEnv - Client environment:user.home=/home/langlais + INFO [main] (Environment.java:97) logEnv - Client environment:user.dir=/home/langlais/devel/mapstoragemanager/msm-hbase + INFO [main] (ZooKeeper.java:342) <init> - Initiating client connection, host=localhost:2181 sessionTimeout=60000 watcher=org.apache.hadoop.hbase.client.HConnectionManager$ClientZKWatcher@2aca0115 + INFO [main] (ClientCnxn.java:91) <clinit> - zookeeper.disableAutoWatchReset is false + INFO [main-SendThread] (ClientCnxn.java:821) startConnect - Attempting connection to server localhost/127.0.0.1:2181 + INFO [main-SendThread] (ClientCnxn.java:737) primeConnection - Priming connection to java.nio.channels.SocketChannel[connected local=/127.0.0.1:47211 remote=localhost/127.0.0.1:2181] + INFO [main-SendThread] (ClientCnxn.java:889) run - Server connection successful +Exception in thread "main" java.lang.reflect.UndeclaredThrowableException + at $Proxy0.getRegionInfo(Unknown Source) + at org.apache.hadoop.hbase.client.HConnectionManager$TableServers.locateRootRegion(HConnectionManager.java:931) + at org.apache.hadoop.hbase.client.HConnectionManager$TableServers.locateRegion(HConnectionManager.java:573) + at org.apache.hadoop.hbase.client.HConnectionManager$TableServers.locateRegion(HConnectionManager.java:549) + at org.apache.hadoop.hbase.client.HConnectionManager$TableServers.locateRegionInMeta(HConnectionManager.java:623) + at org.apache.hadoop.hbase.client.HConnectionManager$TableServers.locateRegion(HConnectionManager.java:582) + at org.apache.hadoop.hbase.client.HConnectionManager$TableServers.locateRegion(HConnectionManager.java:549) + at org.apache.hadoop.hbase.client.HConnectionManager$TableServers.locateRegionInMeta(HConnectionManager.java:623) + at org.apache.hadoop.hbase.client.HConnectionManager$TableServers.locateRegion(HConnectionManager.java:586) + at org.apache.hadoop.hbase.client.HConnectionManager$TableServers.locateRegion(HConnectionManager.java:549) + at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:125) + at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:103) + at org.nuiton.mapstoragemanager.plugins.hbase.MyLittleHBaseClient.main(MyLittleHBaseClient.java:44) +Caused by: org.apache.hadoop.ipc.RemoteException: java.io.IOException: java.io.IOException: Could not find requested method, the usual cause is a version mismatch between client and server. + at org.apache.hadoop.hbase.ipc.HBaseRPC$Server.call(HBaseRPC.java:648) + at org.apache.hadoop.hbase.ipc.HBaseServer$Handler.run(HBaseServer.java:915) + + at org.apache.hadoop.hbase.ipc.HBaseClient.call(HBaseClient.java:723) + at org.apache.hadoop.hbase.ipc.HBaseRPC$Invoker.invoke(HBaseRPC.java:328) + ... 13 more +------------------------------------------------------------------------ +[ERROR]BUILD ERROR +------------------------------------------------------------------------ +Result of /bin/sh -c cd /home/langlais/devel/mapstoragemanager/msm-hbase && /usr/java/jdk1.6.0_18/bin/java -classpath /home/langlais/devel/mapstoragemanager/msm-hbase/target/classes:/home/langlais/.m2/repository/org/nuiton/msm/0.1-SNAPSHOT/msm-0.1-SNAPSHOT.jar:/home/langlais/.m2/repository/org/nuiton/nuiton-utils/1.1.0/nuiton-utils-1.1.0.jar:/home/langlais/.m2/repository/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.jar:/home/langlais/.m2/repository/commons-primitives/commons-primitives/1.0/commons-primitives-1.0.jar:/home/langlais/.m2/repository/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.jar:/home/langlais/.m2/repository/commons-beanutils/commons-beanutils/1.8.0/commons-beanutils-1.8.0.jar:/home/langlais/.m2/repository/org/nuiton/i18n/nuiton-i18n-api/1.0.0/nuiton-i18n-api-1.0.0.jar:/home/langlais/.m2/repository/org/nuiton/jaxx/jaxx-runtime/2.0.0-beta-6-SNAPSHOT/jaxx-runtime-2.0.0-beta-6-SNAPSHOT.jar:/home/langlais/.m2/repository/commons-lang/commons-lang/2.4/commons-lang-2.4.jar:/home/langlais/.m2/repository/org/swinglabs/jxlayer/3.0.3/jxlayer-3.0.3.jar:/home/langlais/.m2/repository/commons-jxpath/commons-jxpath/1.3/commons-jxpath-1.3.jar:/home/langlais/.m2/repository/com/opensymphony/xwork/2.1.3/xwork-2.1.3.jar:/home/langlais/.m2/repository/opensymphony/ognl/2.6.11/ognl-2.6.11.jar:/home/langlais/.m2/repository/org/swinglabs/swingx/1.6/swingx-1.6.jar:/home/langlais/.m2/repository/com/jhlabs/filters/2.0.235/filters-2.0.235.jar:/home/langlais/.m2/repository/org/swinglabs/swing-worker/1.1/swing-worker-1.1.jar:/home/langlais/.m2/repository/org/nuiton/jaxx/jaxx-widgets/2.0.0-beta-6-SNAPSHOT/jaxx-widgets-2.0.0-beta-6-SNAPSHOT.jar:/home/langlais/.m2/repository/commons-io/commons-io/1.4/commons-io-1.4.jar:/home/langlais/.m2/repository/log4j/log4j/1.2.4/log4j-1.2.4.jar:/home/langlais/.m2/repository/org/apache/hadoop/zookeeper/zookeeper/r785019-hbase-1329/zookeeper-r785019-hbase-1329.jar:/home/langlais/.m2/repository/org/hadoop/hadoop/0.20.0-plus4681-core/hadoop-0.20.0-plus4681-core.jar:/home/langlais/.m2/repository/org/hadoop/hbase/0.20.0/hbase-0.20.0.jar:/home/langlais/.m2/repository/org/mortbay/jetty/jetty/6.1.8/jetty-6.1.8.jar:/home/langlais/.m2/repository/org/mortbay/jetty/jetty-util/6.1.8/jetty-util-6.1.8.jar:/home/langlais/.m2/repository/org/mortbay/jetty/servlet-api-2.5/6.1.8/servlet-api-2.5-6.1.8.jar org.nuiton.mapstoragemanager.plugins.hbase.MyLittleHBaseClient execution is: '1'. +------------------------------------------------------------------------ +For more information, run Maven with the -e switch +------------------------------------------------------------------------ +Total time: 9 seconds +Finished at: Thu Feb 25 15:19:58 CET 2010 +Final Memory: 35M/84M +------------------------------------------------------------------------
participants (1)
-
dlanglais@users.nuiton.org